替换<和>代码标签之间无效

时间:2016-08-26 07:35:47

标签: php wordpress

我从this question那里得到了答案,并根据我的需要对其进行了修改,但显然效果不明显。

我正在修改的插件有一个功能,可以使用函数“预清理”内容

function aiosc_preclean_content($string) {

    $rplc = array(
        "\\'"=>"'",
        '\\"'=>'"',
        "\\\\"=>"\\",
    );

    return str_replace(array_keys($rplc),array_values($rplc),$string);
}

这会查找引号和多个反斜杠并替换它们。函数工作正常,所以我想修改它,以便<code><中的>标记(特别是html)中的任何内容都将替换为&lt;和{{1 }}

首先我尝试了原来的答案,没有奏效。然后我尝试了自己的:

&gt;

我添加了引号作为先行检查。现在的问题是,它会转换function aiosc_preclean_content($string) { $rplc = array( "\\'"=>"'", '\\"'=>'"', "\\\\"=>"\\", "‘"=>"'", "’"=>"'", "“"=>'"', "”"=>'"', ); $pre_returned_content = str_replace(array_keys($rplc),array_values($rplc),$string); $text = preg_replace_callback("~<code>(.*?)<\/code>~",'replaceInCode',$pre_returned_content); // $new_content = htmlspecialchars($text); return $text; } function replaceInCode($match){ $replace = array('<' => '&lt','>' => '&gt'); $text = str_replace(array_keys($replace),array_values($replace),$match[1]); return $text; } <code>的{​​{1}}标签,这些标签根本不是很好(我需要&lt;code&gt;标签才能使代码正常工作。“

我在这里做错了什么?我尝试在<code>的回调函数中为返回的文本添加<code>标记,但这样做也不行。

编辑:奇怪的部分是当我在沙盒中在线尝试时它起作用:\

EDIT2

我也尝试了这个(还有另一种清理功能可以刺激标签)

preg_replace_callback

仍然没有。

0 个答案:

没有答案