gpt4 book ai didi

PHP - 从字符串中删除解码的 HTML 实体

转载 作者:行者123 更新时间:2023-12-04 00:04:22 25 4
gpt4 key购买 nike

我正在尝试清理字符串并最终得到以下结果:

Characterisation of the arsenic resistance genes in lt i gt Bacillus lt i gt sp UWC isolated from maturing fly ash acid mine drainage neutralised solids



我正在尝试删除 lt、i、gt,因为它们是减少的 HTML 实体,它们似乎没有被删除。处理这个或我可以查看的其他解决方案的最佳方法是什么?

这是我目前的解决方案:
/**
* @return string
*/
public function getFormattedTitle()
{
$string = preg_replace('/[^A-Za-z0-9\-]/', ' ', filter_var($this->getTitle(), FILTER_SANITIZE_STRING));
return $string;
}

这是一个示例输入字符串:
Assessing <i>Clivia</i> taxonomy using the core DNA barcode regions, <i>matK</i> and <i>rbcLa</i>

谢谢!

最佳答案

告密者 ltgt在您的输出中告诉我您拥有的字符串实际上更像是:

“使用核心 DNA 条形码区域matKrbcLa 评估君子兰 分类法”

当被视为纯文本时。

您上面显示的字符串将在浏览器中显示,它将“<”解释为“<”,将“>”解释为“>”。 (这些通常被称为“HTML 实体”,并提供了一种编码字符的方法,否则将被解释为 HTML。)

一种选择是这样处理:

$s = "Assessing &lt;i&gt;Clivia&lt;/i&gt; taxonomy …";
$s = html_entity_decode($s); // $s is now "Assessing <i>Clivia</i> taxonomy …"
$s = strip_tags($s); // $s is now "Assessing Clivia taxonomy"

但请注意,strip_tags 是一个非常幼稚的函数。例如,它会将 '1<5 and 6>2' 变成 '12'!所以你需要确保你的所有输入文本都是双 HTML 编码的,因为这个例子是为了让它完美地工作。

关于PHP - 从字符串中删除解码的 HTML 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51620965/

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