第一段代码:
if(strpos($msglower, '[/url]') !== FALSE) {
$message = preg_replace("/\[url(=(( https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.|mailto:)?([^\r\n\[\"']+?))?\](.+?)\[\/url\]/ies", "parseurl('\\1', '\\5', '\\2')", $message);
}
第二段代码:
if($pid && !defined('IN_MOBILE')) {
$message = preg_replace("/\s?\[postbg\]\s*([^\[\<\r\n;'\"\?\(\)]+?)\s*\[\/postbg\]\s?/ies", "parsepostbg('\\1', '$pid')", $message);
} else {
$message = preg_replace("/\s?\[postbg\]\s*([^\[\<\r\n;'\"\?\(\)]+?)\s*\[\/postbg\]\s?/is", "", $message);
}
我在改一个程序,有一部分内容输出不了,我一行一行的打印调试,在第一段代码前面能正常打印,在后面就打印不出来了,估计问题是这一段代码,我不太懂正则,是他这个表达式有问题吗,还是哪的原因, 希望来个大神帮我看下,其实也可以删掉这段能正常执行下去,但是需要这一段替换
把第一段删掉再往下调试,就是第二段有问题了,但是这一段不重要,有没有都行,但是能改好是最好的了,谢谢大家了
1
eoo 2017-10-18 08:54:42 +08:00 via Android
PHP 版本是多少?
|
2
dlpliu 2017-10-18 19:34:12 +08:00
第二段代码 if 为 true 的正则中使用了 e 修饰符,php7 之后移除了 PCRE 正则的 e 修饰符。
|