如何对长字符串执行 preg_replace
我希望能够找到并替换一长行 JavaScript 代码。代码中也有很多 / 和 \ 。
这可能吗?
I want to be able to find and replace a long line javascript code. The code has a lot / and \ in it too.
Is this even possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以手动修改限制,以便 PHP 允许您处理很长的字符串。
在调用 preg_replace 之前将以下行放在某处。
更好的是,如果可以修改 php.ini 文件,您可以从那里更改 pcre.backtrack_limit 的值,以便新的限制将在全局可用。
You can modify the limit manually so PHP will allow you to handle very long strings.
Put the following line somewhere before calling preg_replace.
Even better, if can modify your php.ini file, you can change the value of pcre.backtrack_limit from there so the new limit will be globally available.
这取决于多长 - 有一个长度上限(请参阅 http: //nz.php.net/manual/en/function.preg-last-error.php 了解如何检测是否到达它)。
如果需要,您可以使用 preg_quote 转义进入模式的变量,它会处理 / 和 \ 字符。
It depends how long - there is an upper length limit (see http://nz.php.net/manual/en/function.preg-last-error.php for how to detect if you reach it).
You can escape variables going into your pattern with preg_quote if you need to, which takes care of the / and \ characters.
PHP 字符串函数有大小限制,遗憾的是没有指定这些限制...您必须将整个字符串分成较小的字符串块...然后运行 preg_replace
在每个字符串上..然后将这些字符串组合在一起..这就是我所做的。
PHP string functions have size limit and sadly those limits are not specified...you will have to divide the whole sting into chunk of smaller strings ....then run preg_replace
on each of the string..then combine those strings together..that is what I did.