gpt4 book ai didi

php - PHP中只替换之间的特定字符

转载 作者:行者123 更新时间:2023-12-04 05:27:11 27 4
gpt4 key购买 nike

我有类似 <code> <1> <2> </code> 的东西我想得到这个:<code> &lt;1&gt; &lt;2&gt; </code>但我只想在 <code></code> 中应用它标签而不是其他任何地方。

我已经有了这个:

$txt = $this->input->post('field');
$patterns = array(
"other stuff to find", "/<code>.*(<).*<\/code>/m"
);
$replacements = array(
"other stuff to replace", "&lt;"
);

$records = preg_replace($patterns,$replacements, $txt);

它成功替换了字符,但删除了被包围的 <code></code>标签

任何帮助将不胜感激!谢谢

最佳答案

其他可能性,使用回调函数:

<?php
$test = "<code> <1> <2></code> some other text <code> other code <1> <2></code>";
$text = preg_replace_callback("#<code>(.*?)</code>#s",'replaceInCode',$test);
echo htmlspecialchars($test."<br />".$text);

function replaceInCode($row){
$replace = array('<' => '&lt','>' => '&gt');
$text=str_replace(array_keys($replace),array_values($replace),$row[1]);
return "<code>$text</code>";
}

如果没有第二个功能,要实现这一点并不容易(甚至不确定),因为块内可以有多个 < 符号。

在此处阅读更多信息:
http://php.net/preg_replace_callback

关于php - PHP中只替换<tag>和</tag>之间的特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13068755/

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