pionix-labs/51degrees-php

51Degrees composer包

3.1.7 2018-07-26 10:53 UTC

This package is not auto-updated.

Last update: 2024-09-15 05:23:39 UTC


README

51Degrees 原生PHP中的设备检测

Build Status

关于

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

用法

基本用法

basic-usage.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>";
}

匹配指标

match-metrics.php

$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();