I’ve just lost a day because of this stupid browser_name_regex property:
e.g. “§^mozilla/5\.0 \(.*windows nt 6\.1.*wow64.*\) gecko/.* firefox/29\.0.*$§”
To replicate the issue and work around bloody ‘§’ character, please see below.
Whose idea was it to use that character?!
$ua = $_SERVER['HTTP_USER_AGENT'];
echo '$_SERVER[\'HTTP_USER_AGENT\'] => "' . $ua . '"
';
$browser = get_browser($ua);
echo 'get_browser($ua) => <'.'pre>';
var_dump($browser);
echo ''.'pre>
';
$json = json_encode($browser, JSON_PRETTY_PRINT);
echo 'json_encode($browser) => <'.'pre>';
echo $json;
echo ''.'pre>
';
echo 'json_last_error() => "' . json_last_error() . '"<'.'br />';
//echo 'unsetting $browser->browser_name_regex
';
//unset($browser->browser_name_regex);
//or
echo '$browser->browser_name_regex = utf8_encode($browser->browser_name_regex);
';
$browser->browser_name_regex = utf8_encode($browser->browser_name_regex);
$json = json_encode($browser, JSON_PRETTY_PRINT);
echo 'json_encode($browser) => <'.'pre>';
echo $json;
echo ''.'pre>
';
echo 'json_last_error() => "' . json_last_error() . '"';
Categories: