2011-09-30 19 views
11

Tarayıcı istatistiklerini özetleyen bir cronjob var. Bu cronjob verileri yükler ve daha sonra tarayıcı bilgilerini ayrıştırmak için get_browser() PHP işlevini kullanır.Browscap.ini PHP yüklenirken bir hata atıyor (komut satırı - PHP_CLI)

İşte ne yaptım:

cd /etc/php5/cli/conf.d 
[email protected]:/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] 

Sonra cronjob çalışma:

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

ve bu hatayı alıyorum:

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

yanlış yapıyorum? Teşekkürler

+0

Sadece php için en son browsecap dosyasını indirdim ve 20.000'den fazla çizgiler, bu yüzden hat 51'de beklenmeyen $ ucunu söylediğini, o zaman sahip dosya eksik. Beklenmeyen $ end, php'nin beklemediği bir dosyanın sonuna geldiği anlamına gelir. PHP uyumlu browsecap dosyasını indirdiniz mi? İşte [en yeni php browsecap.ini] (http://browsers.garykeith.com/stream.asp?PHP_BrowsCapINI) – drew010

cevap

26

Şu anda tarayıcıdaki dosyalarla ilgili bir hata var gibi görünüyor. Çıkışsız noktalı virgül içeren ";" tarayıcıda

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

file_put_contents('fixed_browscap.ini', $browsecap); 
+1

için bir bağlantıdır. Teşekkürler :) – Tech4Wilco

+0

Benim için işe yaramadı. IE'ler tanınmadı. Ben noktalı virgülle değiştirdim ve kabuk betiğimde yıldız işaretleri ile keneler ve tekrar çalıştı. Örnek: 'sed -e '/^\ [/ s /;/*/g' /etc/php5/apache2/browscap_orig.ini> /etc/php5/apache2/browscap.ini sed -i"/^ \ [/ s/'/ */g "/ etc/php5/apache2/browscap.ini' –

0

sed şöyle virgül kaçmak için kullanılabilir:: Bu küçük script kullanarak onu düzeltirim

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

Bu durum tüm yorumlar yakalayacak ama yine sed kullanabilirsiniz Bunları yakalamak için.

burada anlatıldığı gibi github.com/browscap/browscap/issues/119

İlgili konular