tags:

views:

727

answers:

1

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?

+2  A: 

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?

Matt Lacey
Hi Matt, no worries, I re-downloaded the Wurfl file (2.0.12) and now it detects the correct screen resolution and now it works.Probably there was something wrong with the previous file
Roland