微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP preg_match_all在长字符串上失败

这是我的代码

$long = str_repeat('a very long string text', 100); // try changing 100 to 5000

$str = <<<STR
<abc>a short string text</abc>
<abc>$long</abc>
STR;

preg_match_all('@<abc>([^<>]+)</abc>@sU', $str, $matched);

print_r($matched);

并且它完全按预期工作.但是,将100次重复更改为5000次后,运行

print_r($matched);

而且您只会得到短字符串出现的结果.

我的问题是如何使preg_match或preg_match_all与大型字符串文本(最大1MB或更大)一起使用?

解决方法:

您可能需要增加PCRE限制.

http://www.php.net/manual/en/pcre.configuration.php

编辑:但是,正如ThiefMaster所说,不要这样做.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐