我正在使用 Magento 并在管理员回滚数据库期间遇到 PHP 段错误。我做了调查,发现原因是这样的:
preg_replace("/'(\\'|\\\\{2}|[^'])*'/", '', $sql);
$sql 字符串足够大,我正在附加它。
https://drive.google.com/file/d/0B9UbKYbywcABOTRSVG5KRl9La0k/edit?usp=sharing
您可以使用这样的脚本来重现问题:
<?php
$test = file_get_contents('test.txt');
$sql = preg_replace("/'(\\'|\\\\{2}|[^'])*'/", '', $test);
可能有人知道这个问题,可以帮我解决吗?
附言直接导致问题的类是抽象类Zend_Db_Statement 204:208
最佳答案
我自己一直在努力解决这个问题,偶然发现了这个建议更改 php.ini 值的线程:
[PCRE]
pcre.recursion_limit = 1000
对我来说就像一个魅力。希望这对您有所帮助!
编辑:也提供方便的 .htaccess 格式:
php_value pcre.recursion_limit 1000
关于preg_replace 期间的 PHP 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20750757/