首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载PHP时Browscap.ini抛出错误(命令行- PHP_CLI)

加载PHP时Browscap.ini抛出错误(命令行- PHP_CLI)
EN

Stack Overflow用户
提问于 2011-10-01 03:42:28
回答 3查看 6.7K关注 0票数 11

我有一个总结浏览器统计数据的cronjob。此cronjob加载数据,然后使用get_browser()函数解析浏览器信息。

下面是我所做的:

代码语言:javascript
复制
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运行:

代码语言:javascript
复制
php /usr/local/cron/summarizeStats.php --option=browserStats --date=yesterday

我得到了这个错误:

代码语言:javascript
复制
PHP:  syntax error, unexpected $end, expecting ']' in /etc/php5/cli/conf.d/browscap.ini on line 51

我做错了什么?谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-01 04:56:10

这些browsecap文件现在似乎有一个错误。在浏览器规范中,它们似乎包含未转义的分号";“。你可以使用这个小脚本来解决这个问题:

代码语言:javascript
复制
<?php
$browsecap = file('browscap.ini');
foreach( $browsecap as &$row )
    if ( $row[ 0 ] == '[' )
        $row = str_replace( ';', '\\;', $row );

file_put_contents( 'fixed_browscap.ini', $browsecap );
票数 28
EN

Stack Overflow用户

发布于 2019-12-05 18:35:57

有点晚了,但在没有修改的情况下使用文件仍然存在问题。我正在使用以下脚本下载和更改browscap.ini,以便它可以在我的服务器上工作。

代码语言:javascript
复制
#!/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

解释

使用\'

  • 2nd将注释返回到以前的状态(慢),仅替换4或5个分号将导致错误,因为有些部分包含类似于此(;;;;)的字符串。这可以用搜索部分中的^\;和替换部分中的单个;来优化,在我放置

  • 3ed之前,需要测试它是否转义了“让我们加密...”中使用的单引号。部分和一些其他地方,比如这个'*'

别忘了调整你的browscap.ini最终目的地。此外,更新后不需要重新启动Apache或PHP,因此请将此脚本放在某个位置并设置cron作业。

票数 1
EN

Stack Overflow用户

发布于 2017-12-20 22:50:38

sed可以用来转义分号,如下所示:

代码语言:javascript
复制
sed 's/;/\\\;/g' browscap.ini > browscap_escape.ini

这也将捕获所有的注释,但您可以再次使用sed来捕获这些注释。

如本文所述,github.com/browscap/browscap/issues/119

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7615290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档