PHP 使用 browscap.ini 出現 ”PHP: syntax error, unexpected $end, expecting ‘]’ in 錯誤訊息
原因 :
在 browscap.ini 出現了某些孝造成誤判
需處理的字
(1) [ 開頭,含有 ; 的資料行,需將 ; 換成 \;
(2) 某行含有 Let’s Encrypt validation server*] : 將 Let’s 改成 Let\’s
可使用下列代碼處理
<?php $browsecap = file('browscap.ini'); foreach( $browsecap as &$row ) if ( $row[ 0 ] == '[' ) $row = str_replace( ';', '\\;', $row ); file_put_contents( 'fixed_browscap.ini', $browsecap );
#!/bin/sh url="http://browscap.org/stream?q=PHP_BrowsCapINI" curl -L -o browscap.ini ${url} sed -I "" -E 's/;/\\;/g' browscap.ini sed -I "" -E 's/[\\;]{40}/;;;/g' browscap.ini sed -I "" -E "s/\'/\\\'/g" browscap.ini mv browscap.ini /usr/local/etc/php/browscap.ini
參考資料:
https://stackoverflow.com/questions/7615290/browscap-ini-throwing-an-error-when-loading-php-command-line-php-cli