[英]Replace all html codes by preg_replace
我想將所有HTML代碼替換為空白。 我想我應該使用preg_replace函數,但是我不確定在html代碼采用這種方式的情況下應該如何做:
”
β
$text="β something ” test..."
$text=preg_replace("&# [what should be here?] ;", " ", $text);
echo $text;
result = something test...
我認為它應該只是數字,因為我在這里只找到數字: http : //www.ascii.cl/htmlcodes.htm
您可以看看strip_tags正是這樣做的。 但是,這些不適用於HTML的代碼稱為HTML實體。
與您想要的匹配的正則表達式如下所示:
(&#.+?;)
相當簡單,先查找&#
然后查找任何重復的字符,直到;
。
編輯:正如Qtax指出的那樣,它們不必是數字。 點匹配所有。
HTML字符引用可以通過兩種方式定義 。 假設您只想替換數字字符引用,則需要一個正則表達式來解析以下格式:
&#D;
其中D是十進制數 &#xH;
其中H是一個十六進制數 正則表達式兼顧以下兩個方面:
/&#(\d+|x[\da-f]+);/i
如果要替換所有HTML實體,如&foo;
您可以使用類似:
preg_replace('/&(?:[a-z]+|#x[\da-f]+|#\d+);/i', ' ', $text);
如果要解碼它們,請使用html_entity_decode
。
&<something>;
是HTML實體的語法。 如果要替換所有它們,請使用此regexp:
preg_replace('/&.*?;/', '', $subject); // from ampersand till the next semicolon
它將用空字符串替換所有HTML實體,包括ä
, &x20;
和別的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.