[英]detect if string contains unclosed html tags [php]
我想知道是否有可能檢測字符串是否包含未關閉的標簽,如果是這樣,請剝離該標簽或關閉他。 所以例如我有:
<p>lorem ipsum dolor..</p> some other text <em> em tag unclosed
如您所見,存在未關閉的標簽,如果我們將其呈現為 HTML,則會導致瀏覽器出現問題。 所以我想關閉那個標簽或者如果沒有關閉就剝離他(剝離實際上很容易,難的是檢測)。
在 PHP 中可能嗎?
您可以為此使用DOMDocument
$doc = new \DomDocument();
$stringToTest = \mb_convert_encoding($stringToTest, 'HTML-ENTITIES', 'UTF-8');
$doc->loadHTML($stringToTest, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
echo $doc->saveHTML();
對於您產生的示例
<p>lorem ipsum dolor..<p> some other text <em> em tag unclosed</em></p></p>
注意:首先,最好不要生成損壞的 HTML。 作為備份,您應該將其留給修復它的瀏覽器(因為瀏覽器在這方面非常出色)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.