共计 3062 个字符,预计需要花费 8 分钟才能阅读完成。
在新版的 WordPress 中,系统已经多次提示升级 PHP,考虑到新版本更高效更安全,所以决定升级。
可是,升级完成后,网站出现大量报错,报错信息如下:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /home/wwwroot/www.pingzz.com/wp–content/plugins/crayon–syntax–highlighter/crayon_langs.class.php on line 340
Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /home/wwwroot/www.pingzz.com/wp–content/plugins/crayon–syntax–highlighter/crayon_langs.class.php on line 340
Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /home/wwwroot/www.pingzz.com/wp–content/plugins/crayon–syntax–highlighter/crayon_langs.class.php on line 340
Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /home/wwwroot/www.pingzz.com/wp–content/plugins/crayon–syntax–highlighter/crayon_langs.class.php on line 340
Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /home/wwwroot/www.pingzz.com/wp–content/plugins/crayon–syntax–highlighter/crayon_langs.class.php on line 340
Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /home/wwwroot/www.pingzz.com/wp–content/plugins/crayon–syntax–highlighter/crayon_langs.class.php on line 340
Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /home/wwwroot/www.pingzz.com/wp–content/plugins/crayon–syntax–highlighter/crayon_langs.class.php on line 340
|
如果上面的代码不直观的话,可以看下图,满屏的报错。
可以很直观的看出错误是来自一款叫 Crayon Syntax Highlighter 的代码高亮 插件,在 7.1 等版本中并没有这个报错,显而易见的是,肯定是新版本语法或表达的变化造成的报错。
解决的办法也很简单,找到报错的文件与行数,进行修改即可,报错的文件是 crayon_langs.class.php的 340 行。
一般我们可以通过更新插件能适配到最新版的 wordpress 和 PHP,但遗憾的是:
这款插件已经于 4 年前停止更新了,所以我们需要自己解决,解决的方法很简单:
修改这行代码为下方即可解决该报错信息。
PHP
1
|
return preg_replace(‘/[^w-+#]/msi’, ”, $id);
|
即加上转义符好就能解决。
正文完