Search code examples
cronsyntax-errorphpbrowscap

Browscap.ini throwing an error when loading PHP (command line - PHP_CLI)


I have a cronjob that summarize browser statistics. This cronjob loads data and then use the get_browser() PHP function to parse the browser information.

Here's what I did:

cd /etc/php5/cli/conf.d
me@ubutnu:/etc/php5/cli/conf.d$ sudo wget http://browsers.garykeith.com/stream.asp?Lite_PHP_BrowsCapINI -O browscap.ini
2011-09-30 15:14:18 (890 KB/s) - `browscap.ini' saved [185384/185384]

Then the cronjob run:

php /usr/local/cron/summarizeStats.php --option=browserStats --date=yesterday

and I get this error:

PHP:  syntax error, unexpected $end, expecting ']' in /etc/php5/cli/conf.d/browscap.ini on line 51

What am I doing wrong? Thanks


Solution

  • There is seemingly right now an error with those browsecap files. They seem to contain unescaped semicolons ";" in the browser spec. You can fix that using this little script:

    <?php
    $browsecap = file('browscap.ini');
    foreach( $browsecap as &$row )
        if ( $row[ 0 ] == '[' )
            $row = str_replace( ';', '\\;', $row );
    
    file_put_contents( 'fixed_browscap.ini', $browsecap );