2016-12-22 52 views
0

如何與從具有2個html標籤頁面中的履帶式讀取所有數據讀取的所有數據,例如:腓履帶從2個HTMLS

<html> 
<body> 
text text text 
</body> 
</html> 



text2 text2 text2 text 
</body> 
</html> 

我需要更換第一關閉html和body標籤,然後讀取所有數據。我怎麼做?

+0

可能出現[在PHP中如何解析和處理HTML/XML? //stackoverflow.com/questions/3577641/how-do-you-parse-and-process-html-xml-in-php) – Beloo

+0

你試過我的解決方案嗎?它有用嗎? –

回答

0

您可以使用正則表達式來取代</body></html>首次亮相,如果後一個多對同一標籤:

// https://regex101.com/r/nVuN8S/1 
$regex = '/(?<replace><\/body>\s*<\/html>)(?=(?:.|\s)*<\/body>\s*<\/html>)/'; 
$new_html = preg_replace($regex, '', $html); 

在這裏,你找</body></html>任意數量的空格分隔字符(例如新行)。然後,您使用積極的向前看來檢查它們後面是否包含任何數量的符號(包括空格),以及其後的額外</body></html>標記。

改爲「所有數據」(假設這意味着<body>標籤之間的一切),你可以使用另一個正則表達式如:

// https://regex101.com/r/nVuN8S/2 
$regex = '/<body>(?<data>(?:.|\s)+)<\/body>'/; 

當然,你可以使用幾個不同的方法來獲得數據:簡單的字符串處理(在<body>之前和</body>之後以及標籤本身之前刪除文本),DOM文檔功能等。