pionix-labs / 51degrees-php
51Degrees composer包
3.1.7
2018-07-26 10:53 UTC
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-15 05:23:39 UTC
README
关于
51Degrees for PHP可以通过composer安装。可以像基本示例中使用。
重要信息
请注意,原生PHP API不再积极开发。请改用C扩展或云实现。
由于原生PHP无法在内存中持久存储数据,API只能以流模式工作,这依赖于加载所需的最小头文件,然后使用磁盘上的数据文件执行检测。通常,在Java和C#等语言中,头文件只会在应用程序启动时加载一次,然后用于多次检测。然而,在原生PHP中,这必须为每个请求执行,这很慢且效率低下。
如果您有权访问运行您网站/服务的服务器,请考虑使用C扩展实现。
如果您在具有受限访问权限的环境中运行,例如共享主机上的WordPress博客,则应使用云实现。
此API仍在维护中,且处于工作状态,但维护仅限于修复错误。
另外,请注意,原生PHP API需要版本3.1的文件。
安装
composer require pionix-labs/51degrees-php
用法
基本用法
$fiftyOneDegrees = new PionixLabs\FiftyOneDegrees\DeviceDetection(); $fiftyOneDegrees->setDataFilePath(__DIR__ . '/../resources/tests/51Degrees-Lite.dat'); $_51d = $fiftyOneDegrees->getDeviceData(); // Detection results are stored in the $_51d global. $isMobile = $_51d['IsMobile']; // Use like: if ($isMobile) { echo "<h3>Mobile device.</h3>"; } else { echo "<h3>Non-Mobile device.</h3>"; }
匹配指标
$fiftyOneDegrees = new PionixLabs\FiftyOneDegrees\DeviceDetection(); $fiftyOneDegrees->setDataFilePath(__DIR__ . '/../resources/tests/51Degrees-Lite.dat'); $_51d = $fiftyOneDegrees->getDeviceData(); // Match metrics: echo "<p>DeviceId: " . $_51d["DeviceId"] . "</p>"; echo "<p>Method: " . $_51d["Method"] . "</p>"; echo "<p>Difference: " . $_51d["debug_info"]["difference"] . "</p>";
元数据
要检索特定属性的描述:metadata.php
$fiftyOneDegrees = new PionixLabs\FiftyOneDegrees\DeviceDetection(); $fiftyOneDegrees->setDataFilePath(__DIR__ . '/../resources/tests/51Degrees-Lite.dat'); $_51d_meta_data = $fiftyOneDegrees->getMetadata(); // $_51d_meta_data global contains metadata for properties and values. // Print description for the IsMobile property. echo $_51d_meta_data['IsMobile']['Description'];
要打印所选属性的所有可能值:metadata-possible-values.php
$fiftyOneDegrees = new PionixLabs\FiftyOneDegrees\DeviceDetection(); $fiftyOneDegrees->setDataFilePath(__DIR__ . '/../resources/tests/51Degrees-Lite.dat'); $_51d_meta_data = $fiftyOneDegrees->getMetadata(); // Shows all possible valus for the IsMobile property and a // description for each value. echo "<pre>"; var_dump($_51d_meta_data['IsMobile']['Values']); echo "</pre>";
附加选项
51Degrees for PHP允许一些全局值改变其行为。如果未设置,它们将使用默认选项。
$fiftyOneDegrees = new PionixLabs\FiftyOneDegrees\DeviceDetection(); $fiftyOneDegrees->setDataFilePath(__DIR__ . '/../resources/tests/51Degrees-Lite.dat'); /** * Controls if property values are set to their typed values or strings. * Defaults to TRUE, set to FALSE to disable. */ $fiftyOneDegrees->setReturnStrings(true); // NOTE: Much of the metadata for this property has not been set, // so you may see strings for things which should not be strings. } /** * Controls which property values should be returned from detection. * Greater performance can be gained from a restricted list of properties. * By default all values are returned. */ $fiftyOneDegrees->setProperties(['IsMobile', 'HardwareModel', 'PlatformName', 'BrowserName']); $_51d = $fiftyOneDegrees->getDeviceData();