使用 Wurfl 检测手机屏幕分辨率?

发布于 2024-08-11 06:36:47 字数 3191 浏览 1 评论 0原文

我已经实现了 Wurfl,但问题是它为我的手机提供了错误的屏幕分辨率。 wurfl 有多准确,我不知道我做错了什么。

require_once 'wurfl_config.php';

require_once WURFL_CLASS_FILE;

$ua = strtolower($_SERVER['HTTP_USER_AGENT']);


$wurflObj = new wurfl_class();
$wurflObj->GetDeviceCapabilitiesFromAgent($ua);

$width = $wurflObj->capabilities['display']['resolution_width'];

//Config file
    // Single define to be checked when starting the parser and/or the class
define("WURFL_CONFIG", true);

// Where all data is stored (wurfl.xml, cache file, logs, etc)
$data = '/var/www/html/includes/wurfl/';
define("DATADIR", $data);

// Path and filename of wurfl_parser.php
define("WURFL_PARSER_FILE", 'wurfl_parser.php');

// Path and filename of wurfl_class.php
define("WURFL_CLASS_FILE", 'wurfl_class.php');

// Path and name of the wurfl
define ("WURFL_FILE", DATADIR."wurfl.xml");

// Path and name of the log file
define ("WURFL_LOG_FILE", DATADIR."wurfl.log");

// suggested log level for normal use (default PHP logging constants)
//define ("LOG_LEVEL", LOG_ERROR );
// suggested log level for debug use
define ("LOG_LEVEL", LOG_INFO);

// Set this true if you want to use cache. Strongly suggested
define ("WURFL_USE_CACHE", true);

// Set this true if you want to avoid using cache.php file, and
// generate a single file for each device user agent and use that as a cache
// NOTICE: using Multicache will still generate cache.php and agent2id.php,
//  but will not dump the entire XML as PHP into cache.php. As a result
//  cache.php will be MUCH smaller and load WAY faster; as a drawback you will
//  have many more I/O accesses to the single tiny files.
define ("WURFL_USE_MULTICACHE", true);

// Path and name of the cache file
define ("CACHE_FILE", DATADIR."cache.php");

// Set path of the Multicache directory where all the little caches will be
// stored. Should be a directory that contains *only* these files, so that its
// content can be safely cleaned when a new cache is created.
// If not using Multicache, this parameter will not be used.
define ("MULTICACHE_DIR", DATADIR."multicache/");

// Temporary directory for manual updates.
define ("MULTICACHE_TMP_DIR", DATADIR."multicache_tmp/");
// This file is created and removed when manually updating multicache files
define ("MULTICACHE_TOUCH", DATADIR."multicache.lockfile");

// File suffix for Multicache files
define ("MULTICACHE_SUFFIX",".php");

// Autoload set to false, I will load it when needed
define ("WURFL_AUTOLOAD", false);

// This parameter tells the class to automatically update cache files when a
// new XML is found.
// Using the multicache is not suggested to automatically update it. Use the
// external scripts.
define ("WURFL_CACHE_AUTOUPDATE", true);

// Path and name of the file to store user_agent->id relation
// (ignored if caching is disabled)
define ("WURFL_AGENT2ID_FILE", DATADIR."agent2id.php4");

// Configure a patch file
define("WURFL_PATCH_FILE", DATADIR.'wurfl_patch.xml');
define("WURFL_PATCH_DEBUG", false);

//define("WURFL_PATCH_FILE", DATADIR.'web_browsers_patch.xml');

// Set the maximum number of user_agents to cache
define ("MAX_UA_CACHE", 30);

这是一个已知问题,即返回的宽度不正确,还是我做错了什么?

I've implemented Wurfl, but the problem with this is that it's giving me the wrong screen resolution for my phones. How accurate is wurfl and I do not know what I'm doing wrong.

require_once 'wurfl_config.php';

require_once WURFL_CLASS_FILE;

$ua = strtolower($_SERVER['HTTP_USER_AGENT']);


$wurflObj = new wurfl_class();
$wurflObj->GetDeviceCapabilitiesFromAgent($ua);

$width = $wurflObj->capabilities['display']['resolution_width'];

//Config file
    // Single define to be checked when starting the parser and/or the class
define("WURFL_CONFIG", true);

// Where all data is stored (wurfl.xml, cache file, logs, etc)
$data = '/var/www/html/includes/wurfl/';
define("DATADIR", $data);

// Path and filename of wurfl_parser.php
define("WURFL_PARSER_FILE", 'wurfl_parser.php');

// Path and filename of wurfl_class.php
define("WURFL_CLASS_FILE", 'wurfl_class.php');

// Path and name of the wurfl
define ("WURFL_FILE", DATADIR."wurfl.xml");

// Path and name of the log file
define ("WURFL_LOG_FILE", DATADIR."wurfl.log");

// suggested log level for normal use (default PHP logging constants)
//define ("LOG_LEVEL", LOG_ERROR );
// suggested log level for debug use
define ("LOG_LEVEL", LOG_INFO);

// Set this true if you want to use cache. Strongly suggested
define ("WURFL_USE_CACHE", true);

// Set this true if you want to avoid using cache.php file, and
// generate a single file for each device user agent and use that as a cache
// NOTICE: using Multicache will still generate cache.php and agent2id.php,
//  but will not dump the entire XML as PHP into cache.php. As a result
//  cache.php will be MUCH smaller and load WAY faster; as a drawback you will
//  have many more I/O accesses to the single tiny files.
define ("WURFL_USE_MULTICACHE", true);

// Path and name of the cache file
define ("CACHE_FILE", DATADIR."cache.php");

// Set path of the Multicache directory where all the little caches will be
// stored. Should be a directory that contains *only* these files, so that its
// content can be safely cleaned when a new cache is created.
// If not using Multicache, this parameter will not be used.
define ("MULTICACHE_DIR", DATADIR."multicache/");

// Temporary directory for manual updates.
define ("MULTICACHE_TMP_DIR", DATADIR."multicache_tmp/");
// This file is created and removed when manually updating multicache files
define ("MULTICACHE_TOUCH", DATADIR."multicache.lockfile");

// File suffix for Multicache files
define ("MULTICACHE_SUFFIX",".php");

// Autoload set to false, I will load it when needed
define ("WURFL_AUTOLOAD", false);

// This parameter tells the class to automatically update cache files when a
// new XML is found.
// Using the multicache is not suggested to automatically update it. Use the
// external scripts.
define ("WURFL_CACHE_AUTOUPDATE", true);

// Path and name of the file to store user_agent->id relation
// (ignored if caching is disabled)
define ("WURFL_AGENT2ID_FILE", DATADIR."agent2id.php4");

// Configure a patch file
define("WURFL_PATCH_FILE", DATADIR.'wurfl_patch.xml');
define("WURFL_PATCH_DEBUG", false);

//define("WURFL_PATCH_FILE", DATADIR.'web_browsers_patch.xml');

// Set the maximum number of user_agents to cache
define ("MAX_UA_CACHE", 30);

Is this a known issue that the incorrect width is being returned, or do I do something wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妥活 2024-08-18 06:36:47

WURFL 与其中的数据一样准确。一般来说,它是非常好的。

您使用的是哪个版本的 WURFL 数据?
您想要获取什么设备和浏览器的屏幕尺寸? (什么是用户代理?)
您获得什么价值?
您期望什么值?

WURFL is as accurate as the data in it. Generally it is very good though.

Which version of the WURFL data are you using?
What device and browser are you trying to get the screen dimensions for? (What is the user agent?)
What value(s) are you getting?
What value(s) were you expecting?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文