簡體   English   中英

從文本中刪除所有類型的標簽

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM