簡體   English   中英

用preg_replace替換所有html代碼

[英]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實體,包括&auml; &x20; 和別的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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