【发布时间】:2013-05-08 14:38:13
【问题描述】:
我使用的是 PHP 5.2.17。我想从 JSON 字符串中删除一些多余的数据,我认为我可以使用一些替换功能来做到这一点。具体来说,我将 ereg_replace 与下一个表达式一起使用:
'^.*?(?=\"created_at)'
我已在 http://www.regexpal.com 进行了验证。我已经将我的 JSON 字符串粘贴在那里并且匹配是正确的。但是,当我拨打电话时:
$tweets = eregi_replace('^.*?(?=\"created_at)', $temp, 'something');
然后我回显 $tweets 变量,有输出。控制台中也没有错误。但是,Apache 错误日志抱怨称为 REG_BADRPT 的错误。 eregi_replace 的 php 文档中有一条评论表明这可能是因为我需要转义特殊字符,但我已经转义了 " 字符。我试图转义其他人但没有不同的行为。
那么问题出在哪里?
【问题讨论】:
-
请不要在PHP中使用
ereg函数;它们已被弃用。你应该改用preg_replace()。 -
您确实应该使用
json_decode并删除您不需要的数据,然后将其编码回来。 -
$tweets = preg_replace('/^.*?(?=\"created_at)/', $temp, 'something');