[英]remove all kind of tags from text
我正在做一個項目,並且遇到一個問題,即“ span>”也會在文本的開頭打印,我試圖刪除所有標簽,但除上面提到的那些標簽外,其他所有標簽都行得通,
這是我的PHP代碼
<p>
<?php
$desc = $top_news['headline_des'];
$aa = preg_replace( '/style=(["\'])[^\1]*?\1/i', '', $desc, 2 );
if(strlen($top_news['headline_des'])>100)
{
$description = substr($aa, 1 ,850)."...";
}else{
$description = $aa;
}
echo strip_tags($description);
?>
</p>
這是輸出
span> IPOR有國際共和黨研究所(IRI)和美國國際局。
問題是substr($aa, 1 ,850)
調用。 substr
從位置0而不是1開始,所以會發生什么:
Input: <span>Foobar</span>
substr($input, 1, 850)
Output: span>Foobar</span>
substr
高興地切掉第一個字符。 因此, strip_tags
不能將span>
識別為整個標簽,而只是將其保留。
修復:使用substr($aa, 0, 850)
。
$intro = ereg_replace("[</*>]", "", $intro);
你可以使用用strip_tags 只能去除標簽
與preg_replace
$desc = $top_news['headline_des'];
$search = array(
'@<style[^>]*?>.*?</style>@siU',
'@<[\/\!]*?[^<>]*?>@si'
);
echo $pregReplacedContent = preg_replace($search, "", $aa);
$text = preg_replace("/<.+?>/", "", $text);
這樣的事情應該刪除$text
變量中的所有標簽。
如果不起作用,則應檢查要刪除標簽的初始文本是否正確。 例如, span >
不會被刪除,因為它不是標簽,但是<span >
會被毫無問題地刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.