* Use the resulting JSON export file in other languages
 * other than PHP. Always check for 'version' key because
 * new major versions can modify the structure of the JSON file.
 *
 * The result of running this script is the export.json file.
 *
 * @license     Code and contributions have 'MIT License'
 *              More details: https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt
 *
 */
// Included nicejson function to beautify the result JSON file.
// This library is not mandatory.
if (file_exists(dirname(__FILE__) . '/nicejson/nicejson.php')) {
    include_once dirname(__FILE__) . '/nicejson/nicejson.php';
}
// Include Mobile Detect.
require_once dirname(__FILE__) . '/../Mobile_Detect.php';
$detect = new Mobile_Detect();
$json = array('version' => $detect->getScriptVersion(), 'headerMatch' => $detect->getMobileHeaders(), 'uaHttpHeaders' => $detect->getUaHttpHeaders(), 'uaMatch' => array('phones' => $detect->getPhoneDevices(), 'tablets' => $detect->getTabletDevices(), 'browsers' => $detect->getBrowsers(), 'os' => $detect->getOperatingSystems(), 'utilities' => $detect->getUtilities()));
$jsonString = function_exists('json_format') ? json_format($json) : json_encode($json);
// Write the JSON file to disk.
// You can import this file in your app.
$fileName = dirname(__FILE__) . '/../Mobile_Detect.json';
$handle = fopen($fileName, 'w');
$fwrite = fwrite($handle, $jsonString);
fclose($handle);
if ($fwrite) {
    echo 'Done. Check ' . realpath($fileName) . ' file.';
} else {
    echo 'Failed to write ' . realpath($fileName) . ' to disk.';
}
Esempio n. 2
0
 /**
  * @covers Mobile_Detect::getMobileDetectionRulesExtended
  */
 public function testRulesExtended()
 {
     $md = new Mobile_Detect();
     $count = array_sum(array(count(Mobile_Detect::getPhoneDevices()), count(Mobile_Detect::getTabletDevices()), count(Mobile_Detect::getOperatingSystems()), count(Mobile_Detect::getBrowsers()), count(Mobile_Detect::getUtilities())));
     $md->setDetectionType(Mobile_Detect::DETECTION_TYPE_EXTENDED);
     $rules = $md->getRules();
     $this->assertEquals($count, count($rules));
 }
 /**
  * Executed once or never. Sets all the information that is required for parsing the user agent string.
  * 
  * If all the user agents are taken from cache, this method is not called
  */
 protected static function initAfterCache()
 {
     if (null !== self::$uaparser) {
         return;
     }
     require_once UserAgentInfoConfig::$base_dir . UserAgentInfoConfig::DIR_IMPORTS . DIRECTORY_SEPARATOR . 'uaparser.php';
     self::$browscap_wrapper = new BrowscapWrapper(self::$browscap_source_file);
     self::$uaparser = new UAParser(self::$uaparser_source_file);
     self::$md_browsers = array_keys(self::$mobile_detect->getBrowsers());
     $md_os_list = self::$mobile_detect->getOperatingSystems();
     self::$md_os_list = array_keys($md_os_list);
     self::$md_devices = array_keys(self::$mobile_detect->getPhoneDevices() + self::$mobile_detect->getTabletDevices());
     self::$md_devices_generic = array();
     foreach (self::$md_devices as $device) {
         if (!in_array($device, self::$generic_devices)) {
             self::$md_devices_generic[] = str_replace(self::MOBILE_DETECT_TABLET_SUFFIX, '', $device);
         }
     }
     self::$md_devices_generic[] = 'Nokia';
     self::$md_devices_generic = array_unique(self::$md_devices_generic);
 }