关于一个 php 报错的问题

2016-06-30 16:12:47 +08:00
 william23

首先 本地环境 wnmp 和虚拟机 lnmp 跑下来都没问题

但是放到了线上,突然报了这个错误

FastCGI sent in stderr: "PHP message: PHP Parse error: syntax error, unexpected '@'

而且不仅仅是一处,这个 @是用来加载文件的,本身是没有语法错误的。

所以没有思路,所以发帖求助

4047 次点击
所在节点    PHP
26 条回复
william23
2016-06-30 16:20:18 +08:00
我是感觉不像代码的问题,更像配置的问题,但是 lnmp 的环境虚拟机也跑了,也没发现这个问题
lynnworld
2016-06-30 16:21:11 +08:00
不贴代码么?
qiayue
2016-06-30 16:22:26 +08:00
php 的版本跟你本地不一致,你用了某个比较旧的函数
realpg
2016-06-30 16:31:20 +08:00
代码报错不贴代码……
doushiyinweini
2016-06-30 16:42:18 +08:00
我瞎猜一下 allow_url_fopen
Scholer
2016-06-30 16:43:30 +08:00
我猜是 curl 要改成 curlFile
william23
2016-06-30 17:10:45 +08:00
@qiayue 你是说我本地环境比较高?线上的环境低?
william23
2016-06-30 17:11:44 +08:00
@realpg 没代码贴啊,因为这个只是所语法错误,但是并不是语法错误,而且去掉这个还有其他的
realpg
2016-06-30 17:15:26 +08:00
@william23
先把双引号改成单引号看看
b821025551b
2016-06-30 17:19:30 +08:00
我想了好久 php 有 import 这个函数么?后来意识到这是 ThinkPHP 吧??
william23
2016-06-30 17:23:06 +08:00
@b821025551b 是的
qiayue
2016-06-30 17:23:50 +08:00
我之前以为你的 @ 是为了频闭函数的报错信息,所以猜你用了某个比较旧的函数,而你的线上环境是比较新版本的 PHP
william23
2016-06-30 17:34:02 +08:00
@realpg
这行报错会消失,但是又会有其他报错
报错信息
5 FastCGI sent in stderr: "PHP message: PHP Parse error: syntax error, unexpected '' . __URL__ . '' (T_CONSTANT_ENCAPSED_STRING)
报错行
$str .= ' <a href="' . __URL__ . '/tag/name/' . urlencode($tag) . '">' . $tag . '</a> ';

我觉得不是语法的问题,因为毕竟其他环境是 i 没影响的
william23
2016-06-30 17:34:38 +08:00
@qiayue 那现在觉得是什么问题呢?
xuxu
2016-06-30 17:35:40 +08:00
用单引号试试 import('@.ORG.IpLocation');
william23
2016-06-30 17:37:41 +08:00
@xuxu 这个的确可以,但是会一直报下去其他错误,难道全都有错?
cxbig
2016-06-30 17:39:12 +08:00
先看 php 版本有没有不同
从错误看很可能用了特殊字符
看看代码在什么系统下写的,如果是 windows 要特别小心,建议用 sublime text 等编辑器, utf8 无 bom 存一遍。
或者用 PhpStorm 之类的 IDE 做一次静态代码分析
qiayue
2016-06-30 17:44:28 +08:00
应该就是线上 PHP 版本问题,初步怀疑是线上版本较低
william23
2016-06-30 17:48:16 +08:00
@cxbig 恩,我用的就是 phpstorm ,是没有语法报错的,在虚拟机的环境是 ubuntu 和线上是一样的,我先 check 下 php 的版本吧。
william23
2016-06-30 18:04:20 +08:00
@qiayue
@cxbig
看了下版本,虚拟机和线上都是 5.5.9 ubuntu 都是 14.17
这下又没有头绪了~~~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/289371

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX