程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP入門知識 >> PHP中解析HTML字符串的問題

PHP中解析HTML字符串的問題

編輯:PHP入門知識

下午的時候同事碰到了一個小問題,是這樣的:他從別人的接口中取回一長串的HTML,但是他只需要其中的一塊。這就涉及到在PHP中解析HTML字符串的問題,花了挺長時間,找了不同的方法,在此記錄一下:

1.最簡單的就是字符串解析,靈活運用 strpos , substr 混合處理,把那一段代碼摳出來。由於他要取的是一個固定的div內的東西,而且那個div 的 class 屬性也是固定的,所以這種方法倒也簡單,直接先以<div class=”xxx” 作為needle 找到那個div,然後做一些操作就行了。

2.PHP DOMDocument 。聽到這個問題的時候首先想到的是PHP的DOM解析功能,剛開始真的以為找到了救星。但是最後發現這個東西的功能不能解決問題,反正我是沒找到。因為最好我們想要把div裡面的html代碼輸出出來,結果用 DOMDocument 提供的方法輸出的全是不帶標簽的純文本,無奈,只好棄用。(可能是我不知道它的用法,希望知道的不吝賜教。)

3. Tidy Functions 。其實 Tidy 是用來整理HTML的,不過它也可以進行HTML的解析處理。先使用tidy_parse_string() 把字符串轉換成 tidy 對象,然後就可以利用tidy的方法對其進行處理了,還算方便,不過這個東西只能在 PHP 4.3.x 和 PHP 5 的版本下才有。具體方法和使用請參考手冊。

4. strip_tags() 。無意中發現了這個函數,實在是太好用了!!上面幾種方法最好我都是結合著strip_tags()來使用的。strip_tags() 可以過濾掉HTML和PHP標簽,返回一個全新的字符串!用法如下:

string strip_tags ( string 要處理的字符串 [, string 想保留的標簽] )

如果你想保留某些標簽,比如 <a> 標簽,就可以這樣寫,strip_tags($str, “<a>”) ,如果想保留多個標簽,就可以這麼寫: strip_tags($str, “<a> <img>”);  標簽之間用空格隔開就可以了。

5.另外,據我另一個同事測試,好像使用 XMLReader 來搞,沒嘗試,有興趣的可以搞一下。

在工作中學習到的一些小東西,記錄下來,省的以後忘記了。如果大家有什麼更好的技巧,歡迎賜教,謝謝。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved