gpt4 book ai didi

仅限 上的 php htmlentities!

转载 作者:太空宇宙 更新时间:2023-11-04 15:24:09 24 4
gpt4 key购买 nike

我只想对 things to strip 中的内容运行 htmlentities()

我写了一个函数,它接受一个字符串并找到 之间的内容


函数 parse_code($string) {



//测试字符串并使用  查找内容
preg_match('@(.*?)@s', $string, $matches);

//如果匹配成功则返回匹配
如果($匹配){
返回 $matches[1];
}别的 {
返回假;
}
}

但是我需要一些帮助来实现一个函数,这个函数将实际运行 htmlentities(); 中的内容,然后 implode() 将它们全部放回原处。例如,假设我们有以下字符串。

<div class="myclass" rel="stuff"> things in here </div><code> only run htmlentites() here so strip out things like < > " ' & </code><div> things in here </div>

再一次,该函数需要保持字符串的所有内容相同,但只修改 的内容并运行 htmlentities()

最佳答案

您可以使用自定义回调函数来简化此操作:

$html = preg_replace_callback(
"@ (?<= <code>) .*? (?= </code>) @six",
"htmlentities_cb", $html
);

function htmlentities_cb($matches) {
return htmlentities($matches[0], ENT_QUOTES, "UTF-8");
}

匹配封闭代码标签的语法称为lookbehind and lookahead assertion .它简化了回调并避免了稍后的 implode(),因为断言匹配本身不会成为 $matches[0] 的一部分。 @six 用于不区分大小写的标记匹配,并允许在正则表达式中使用空格以使其更具可读性。

关于仅限 <code></code> 上的 php htmlentities!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4989017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com