我从this question那里得到了答案,并根据我的需要对其进行了修改,但显然效果不明显。
我正在修改的插件有一个功能,可以使用函数“预清理”内容
function aiosc_preclean_content($string) {
$rplc = array(
"\\'"=>"'",
'\\"'=>'"',
"\\\\"=>"\\",
);
return str_replace(array_keys($rplc),array_values($rplc),$string);
}
这会查找引号和多个反斜杠并替换它们。函数工作正常,所以我想修改它,以便<code>
和<
中的>
标记(特别是html)中的任何内容都将替换为<
和{{1 }}
首先我尝试了原来的答案,没有奏效。然后我尝试了自己的:
>
我添加了引号作为先行检查。现在的问题是,它会转换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('<' => '<','>' => '>');
$text = str_replace(array_keys($replace),array_values($replace),$match[1]);
return $text;
}
中<code>
的{{1}}标签,这些标签根本不是很好(我需要<code>
标签才能使代码正常工作。“
我在这里做错了什么?我尝试在<code>
的回调函数中为返回的文本添加<code>
标记,但这样做也不行。
编辑:奇怪的部分是当我在沙盒中在线尝试时它起作用:\
EDIT2
我也尝试了这个(还有另一种清理功能可以刺激标签)
preg_replace_callback
仍然没有。