--- browscap.module 2011-03-02 07:48:00.000000000 +0800 +++ /home/alexey/work/vhosts/drupal-dev/docs/sites/all/modules/browscap/browscap.module 2011-03-11 05:06:31.357195319 +0800 @@ -336,11 +336,6 @@ function _browscap_import($cron = TRUE) return; } - // Fetch the new version, and dump it in the temp directory - $server = $_SERVER['SERVER_NAME']; - $path = variable_get('file_directory_temp', '/tmp'); - $browscapfile = "$path/browscap_$server.ini"; - $browscap = drupal_http_request('http://browsers.garykeith.com/stream.asp?PHP_BrowsCapINI'); if (isset($browscap->error) || empty($browscap)) { watchdog('browscap', t("Couldn't retrieve updated browscap: ") . $browscap->error); @@ -350,21 +345,11 @@ function _browscap_import($cron = TRUE) return; } - // The file as downloaded from browser.garykeith.com has semicolon (;) and - // single-quote (') characters in the section strings, either of which will - // cause parse_ini_file() to abort and return FALSE. To fix this, simply - // escape them with the backslash character. - $browscap->data = preg_replace(array("/(?data); - - $browscapfp = fopen($browscapfile, "w"); - fwrite($browscapfp, $browscap->data); - fclose($browscapfp); - if (version_compare(PHP_VERSION, '5.3.0', '>=')) { - $a = parse_ini_file($browscapfile, TRUE, INI_SCANNER_RAW); + $a = parse_ini_string(strtr($browscap->data, array("=true\r" => "=1\r", "=false\r" => "=0\r")), TRUE, INI_SCANNER_RAW); } else { - $a = parse_ini_file($browscapfile, TRUE); + $a = parse_ini_string($browscap->data, TRUE); } if ($a) { // the first entry in the array is the version info