2009-11-09 55 views
0

我已經實現了Wurfl,但問題在於它給我的手機屏幕分辨率錯誤。 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); 

這是一個已知的問題,不正確的寬度被返回,或者我做錯了什麼?

+0

你可以舉一個這個錯誤的例子嗎?說一個特定的手機,你期望看到什麼,以及你實際得到了什麼? – 2009-11-09 11:56:49

回答

3

WURFL與其中的數據一樣準確。一般來說它是非常好的。

您使用的是哪個版本的WURFL數據?
你想要獲取屏幕尺寸的設備和瀏覽器? (什麼是用戶代理?)
你得到了什麼樣的價值?
你期待什麼價值?

+0

嗨馬特,不用擔心,我重新下載了Wurfl文件(2.0.12),現在它檢測到正確的屏幕分辨率,現在它的工作原理。可能是以前的文件有問題 – Roland 2009-11-09 12:18:44