隨著網路的不斷發展和使用者需求的提高,越來越多的網站需要提供文字編輯功能,使用者可以在頁面上新增、編輯或刪除內容。這些內容在保存到資料庫或在頁面上展示時,通常需要經過一些處理,使它們成為純文字格式。
對於PHP程式設計師來說,去除HTML的過程也就是把一段富文本變成純文字格式的過程是重要的技能。那麼,如何使用PHP去除HTML並得到純文字呢?下面本文將就這個主題給出一些實用方法。
PHP中有一個strip_tags()函數,可以移除HTML標籤,得到純文字格式的字串。函數格式如下:
string strip_tags ( string $str [, string $allowable_tags ] )
第一個參數是要被處理的字串,第二個參數則是允許保留的標籤元素名稱。如果沒有指定第二個參數,則會移除所有HTML標籤。
例如,以下程式碼將會去掉HTML文字中所有的標籤元素,並輸出結果:
<?php $html = '<div><p>Hello, world!</p></div>'; $text = strip_tags($html); echo $text; // 输出结果:Hello, world! ?>
可以將上述方法進行拓展,支援保留指定標籤元素。
<?php $html = '<div><p>Hello, world!</p><a href="www.google.com">Google</a></div>'; $text = strip_tags($html, '<p>'); echo $text; // 输出结果:<p>Hello, world!</p> ?>
除了 strip_tags() 函數外,使用正規表示式也是常見的方法。正規表示式可以符合HTML標籤,並移除它們。以下是一段範例程式碼:
<?php $html = '<div><p>Hello, world!</p></div>'; $text = preg_replace('/<[^>]*>/', '', $html); echo $text; // 输出结果:Hello, world! ?>
使用preg_replace()函數和正規表示式"/<1*>/",移除了HTML標籤。這個正規表示式可以匹配任何以“<”開始,“>”結束的字串,括號內的“^>”表示匹配除了“>”以外的所有字元。
上述兩種方法雖然簡單有效,但會完全移除HTML標籤,包含一些格式標記,如粗體、斜體、底線等。如果不想完全移除這些標籤,而是只想保留它們的樣式,那該怎麼辦呢?
這時我們可以利用PHP DOM擴展,來實現更精細的HTML標籤去除。 PHP DOM擴展是一個功能強大且靈活的擴展,可以解析HTML、XML文檔,然後對它們進行操作,例如查詢、插入、刪除節點等。
以下是一段範例程式碼,利用PHP DOM擴充去除了HTML標籤:
<?php $html = '<div><p><strong>Hello, </strong><i>world</i>!</p></div>'; $dom = new DOMDocument(); $dom->loadHTML($html); $body = $dom->getElementsByTagName('body')->item(0); $text = $body->textContent; echo $text; // 输出结果:Hello, world! ?>
先建立一個DOMDocument對象,然後將要處理的HTML字串傳遞給它的loadHTML()方法。接著,使用getElementsByTagName('body')->item(0)方法來取得HTML中的body元素,然後使用textContent屬性,取得body元素下所有純文字內容。最後,將得到的結果輸出到螢幕上。
本文介紹了三種以PHP為基礎的方法來移除HTML標記,得到純文字。第一種是簡單的strip_tags()函數,可以實現最基礎的HTML標記去除,第二種方法則利用正則表達式的優勢,對HTML標記進行匹配去除,第三種方法則使用PHP DOM擴展,可完全控制HTML體系,更精細的控制輸出結果。大家可以依照自己的需求,彈性選擇使用。
以上是php怎麼去除html並得到純文本的詳細內容。更多資訊請關注PHP中文網其他相關文章!