preg_replace の preg_replace_callback の書き換えに関する問題

WBOY
リリース: 2016-06-23 13:50:13
オリジナル
995 人が閲覧しました

原代码如下:

        $pattern = array(            '/<!--[^>|\n]*?({.+?})[^<|{|\n]*?-->/', // 替换smarty注释            '/<!--[^<|>|{|\n]*?-->/',               // 替换不换行的html注释            '/(href=["|\'])\.\.\/(.*?)(["|\'])/i',  // 替换相对链接            '/((?:background|src)\s*=\s*["|\'])(?:\.\/|\.\.\/)?(images\/.*?["|\'])/is', // 在images前加上 $tmp_dir            '/((?:background|background-image):\s*?url\()(?:\.\/|\.\.\/)?(images\/)/is', // 在images前加上 $tmp_dir            '/{nocache}(.+?){\/nocache}/ise', //无缓存模块            );        $replace = array(            '\1',            '',            '\1\2\3',            '\1' . $tmp_dir . '\2',            '\1' . $tmp_dir . '\2',            "'{insert name=\"nocache\" ' . '" . $this->_echash . "' . base64_encode('\\1') . '}'",            );        return preg_replace($pattern, $replace, $source);
ログイン後にコピー

原本服务器是php5.2,现在升级成php5.5之后,发现程序出错


回复讨论(解决方案)

        $pattern = array(            '/<!--[^>|\n]*?({.+?})[^<|{|\n]*?-->/', // 替换smarty注释            '/<!--[^<|>|{|\n]*?-->/',               // 替换不换行的html注释            '/(href=["|\'])\.\.\/(.*?)(["|\'])/i',  // 替换相对链接            '/((?:background|src)\s*=\s*["|\'])(?:\.\/|\.\.\/)?(images\/.*?["|\'])/is', // 在images前加上 $tmp_dir            '/((?:background|background-image):\s*?url\()(?:\.\/|\.\.\/)?(images\/)/is', // 在images前加上 $tmp_dir            );        $replace = array(            '\1',            '',            '\1\2\3',            '\1' . $tmp_dir . '\2',            '\1' . $tmp_dir . '\2',            );        $source = preg_replace($pattern, $replace, $source);        return preg_replace_callback('/{nocache}(.+?){\/nocache}/is', function($m) {            return '{insert name="nocache" ' . $this->echash . base64_encode($m[1]) . '}';        }, $source);
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!