Browscap.ini выдает ошибку при загрузке PHP (командная строка - PHP_CLI) - PullRequest
11 голосов
/ 30 сентября 2011

У меня есть cronjob, который обобщает статистику браузера.Этот cronjob загружает данные и затем использует PHP-функцию get_browser () для анализа информации браузера.

Вот что я сделал:

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]

Затем запустился cronjob:

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

и я получаю эту ошибку:

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

Что я делаю не так?Спасибо

Ответы [ 2 ]

26 голосов
/ 01 октября 2011

Похоже, сейчас возникает ошибка с этими файлами browsecap.Кажется, они содержат незапятые точки с запятой ";"в браузере спец.Вы можете исправить это, используя этот маленький скрипт:

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

file_put_contents( 'fixed_browscap.ini', $browsecap );
0 голосов
/ 20 декабря 2017

sed может использоваться для экранирования точки с запятой следующим образом:

sed 's/;/\\\;/g' browscap.ini > browscap_escape.ini

Это также перехватит все комментарии, но вы можете снова использовать sed, чтобы их перехватить.

Как описано здесь github.com / browscap / browscap / Issues / 119

...