2012-11-16 54 views
0

可能重複:
How to parse and process HTML with PHP?JSON包裹在一些HTML,HTML刪除

我試圖刮PHP頁面中使用的file_get_contents()。 這個頁面有一些JSON封裝在一些HTML中。我想去掉這個HTML,以便能夠在刮掉的字符串上使用json_decode(),這樣我就可以單獨處理JSON。 有沒有乾淨的方法來做到這一點?快速搜索並沒有帶來任何結果。 謝謝

回答

1

解析/剝離HTML內容始終是一個棘手的問題,因爲通過正則表達式的解決方案可能會崩潰,如果HTML標記格式不正確,並且痛苦緩慢btw。我會建議使用這個小HTML DOM解析器類:從subcomment添加

http://simplehtmldom.sourceforge.net/


編輯&:

好吧,這是一個壞的,因爲內嵌的JavaScript未正確包裹CDATA-標籤。否則像這樣的東西可能會工作:

$html = new simple_html_dom(); 
$html->load_file('your-external-file'); 

foreach($html->find("script") as $obj) { 
    if(isset($obj->innertext) && strpos($obj->innertext, 'window._jscalls')) 
     echo $obj->innertext; 
} 
+0

是的使用正則表達式是不可能的。我想過簡單的HTML DOM,但因爲它是JSON我想解析,我不能真正去那,因爲返回的字符串將只包含HTML而不是JSON ... – sf89

+0

你能否提供一個例子的HTML/JSON標記? – simplyray

+0

我現在正在使用我的電話,但客戶做出了與您在Instagram頁面上找到的內容非常相似的內容(如http://instagram.com/kevin)。 Thx – sf89