php 的eval解析失败与500 Internal Server Error

在使用php的eval解析代码时,会出现二种极端的可能.

第一种是解析失败,就会导致输出500 Internal Server Error;如果同时这里使用jquery获取响应话,会出现error和success都无法捕捉到内容,在firebug中会看到这个请求是红的;

对于这种情况可以使用下面的代码来进行提示,新的php版本好像在这种情况下,并不会输入500 Internal Server Error的.而在旧的版本,使用try+catch和@都无法防止输出500 Internal Server Error;


会在firebug中看到响应头如下:


响应头信息格式化头信息

HTTP/1.1 500 Internal Server Error
Server: Apache/2.2.14 (Ubuntu)
X-Powered-By: PHP/5.3.2-1ubuntu4.15
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
X-Cacheable: NO: obj.status
X-Cacheable-status: 500
Content-Length: 2391
Date: Mon, 06 Aug 2012 07:33:16 GMT
X-Varnish: 630534718
Age: 0
Via: 1.1 varnish
Connection: keep-alive
X-Cache: MISS


//这种情况如 array((); 这样的拼写就会导致.

if (false === @eval('@$obj = ' .$row['post'].';') ) {
        echo "<!--解析出错id(防止在php4下面解析错误导致exit script;在这里输出id以备查看出错rec id用,有一种是只是导致服务器出错的header状态,还有一种是直接终止代码):{$row['_id']}-->";
    }


第二种情况是解析出错,直接终止解析代码;

在这里没有遇到,就没有例子了.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值