public static function isSmartphone() { $wurflDir = OW_DIR_LIB . 'wurfl' . DS; $resourcesDir = OW_DIR_PLUGINFILES . 'base' . DS . 'wurfl' . DS; if (defined('OW_PLUGIN_XP') && OW_PLUGIN_XP) { $resourcesDir = OW_DIR_STATIC_PLUGIN . 'base' . DS . 'wurfl' . DS; } require_once $wurflDir . 'Application.php'; $persistenceDir = $resourcesDir . 'persistence' . DS; $cacheDir = $resourcesDir . 'cache' . DS; // if ( !file_exists($wurflDir) ) // { // mkdir($wurflDir); // chmod($wurflDir, 0777); // mkdir($persistenceDir); // chmod($persistenceDir, 0777); // mkdir($cacheDir); // chmod($cacheDir, 0777); // } $wurflConfig = new WURFL_Configuration_InMemoryConfig(); $wurflConfig->wurflFile($wurflDir . 'wurfl.zip'); $wurflConfig->matchMode('accuracy'); $wurflConfig->allowReload(true); $wurflConfig->capabilityFilter(array("device_os", "device_os_version", "is_tablet", "is_wireless_device", "mobile_browser", "mobile_browser_version", "pointing_method", "preferred_markup", "resolution_height", "resolution_width", "ux_full_desktop", "xhtml_support_level")); $wurflConfig->persistence('file', array('dir' => $persistenceDir)); $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000)); $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig); $wurflManager = $wurflManagerFactory->create(); $requestingDevice = $wurflManager->getDeviceForHttpRequest($_SERVER); return filter_var($requestingDevice->getVirtualCapability('is_smartphone'), FILTER_VALIDATE_BOOLEAN); }
<?php define("WURFL_DIR", dirname(__FILE__) . '/../WURFL/'); define("RESOURCES_DIR", WURFL_DIR . "../examples/resources/"); require_once dirname(__FILE__) . '/../WURFL/Application.php'; $persistenceDir = RESOURCES_DIR . "storage/persistence"; $wurflConfig = new WURFL_Configuration_InMemoryConfig(); $wurflConfig->wurflFile(RESOURCES_DIR . "wurfl.zip"); $wurflConfig->persistence("file", array(WURFL_Configuration_Config::DIR => $persistenceDir)); $wurflConfig->capabilityFilter(array('is_wireless_device', 'preferred_markup', 'xhtml_support_level', 'xhtmlmp_preferred_mime_type', 'device_os', 'device_os_version', 'is_tablet', 'mobile_browser_version', 'pointing_method', 'mobile_browser', 'resolution_width')); function buildPersistenceWith($wurflConfig) { $force_rebuild = true; $persistenceStorage = WURFL_Storage_Factory::create($wurflConfig->persistence); if ($force_rebuild) { $persistenceStorage->clear(); } $context = new WURFL_Context($persistenceStorage); $userAgentHandlerChain = WURFL_UserAgentHandlerChainFactory::createFrom($context); $devicePatcher = new WURFL_Xml_DevicePatcher(); $deviceRepositoryBuilder = new WURFL_DeviceRepositoryBuilder($persistenceStorage, $userAgentHandlerChain, $devicePatcher); return $deviceRepositoryBuilder->build($wurflConfig->wurflFile, $wurflConfig->wurflPatches, $wurflConfig->capabilityFilter); } buildPersistenceWith($wurflConfig); echo "OK";