Loving Coding & Visual Design

preg-replace error: regular expression is too large

进行模板替换的时候出现如下错误:
Error msg: preg_replace() [function.preg-replace]: Compilation failed: regular expression is too large at offset 62894

根据PHP.net的解释:
这个错误是由PCRE的倒带(backtracking)和递归(recursion)限制造成,可以通过修改ini解决。
print_r(ini_get_all("pcre"));
[pcre.backtrack_limit] => Array
(
[global_value] => 100000
[local_value] => 100000
[access] => 7
)
[pcre.recursion_limit] => Array
(
[global_value] => 100000
[local_value] => 100000
[access] => 7
)
ini_set('pcre.backtrack_limit', '300000');

如果使用的虚拟主机,也只有重新修改程序,换一种替换方式了。

究其原因在于我用的模板里面把loop嵌套在if里面,导致if语块的字符串太长造成的,所以应该尽量避免把loop嵌套在if里面。

另外一种常见的错误是:fopen() [function.fopen]: URL file-access is disabled in the server configuration
虚拟主机禁止了fopen非本地文件的访问,解决办法可以用:fsockopen



下一页


最 近 文 章

  1. Javascript错误:Expected identifier, string or number - Mon, 02 Aug 2010 15:04:50 +0000
  2. Google Chrome下字体模糊的问题 - Sun, 01 Aug 2010 08:46:04 +0000
  3. 我对"Lost"迷失结局的理解 - Sun, 01 Aug 2010 06:56:51 +0000
  4. 分享阅读 - Fri, 30 Jul 2010 05:57:32 +0000
  5. 收到陌生人套近乎的电话 - Thu, 29 Jul 2010 08:50:09 +0000
  6. 影响网站排名的因素 - Wed, 28 Jul 2010 14:48:44 +0000
  7. WordPress3升级导致博客scheduled maintenance - Tue, 27 Jul 2010 15:47:46 +0000
  8. 神州行手机丢了怎么办? - Tue, 27 Jul 2010 02:23:29 +0000
  9. 用OAuth协议测试Twitter API - Sun, 25 Jul 2010 15:46:21 +0000
  10. 终于把Blogger的日志导入Wordpress - Fri, 23 Jul 2010 15:08:02 +0000