這就是我想做的事:PHP的爆炸未正常工作與字符串作爲分隔符
- 從中
使用得到一個HTML頁面,並帶HTML標籤的身體部位爆炸返回給定的字符串
$html = file_get_contents($url); $html = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8"); $dom = new DOMDocument; $dom->loadHTML($html); $xpath = new DOMXPath($dom); $query = $xpath->query("/html/body"); $body = $dom->saveXML($query->item(0)); $body = strip_tags($body); echo end(explode('Item description', $body));
,因爲我希望最後一行不起作用下面的文字。如果我用一個空格作爲分隔符的字符串,它不起作用(只返回所有內容)。當我使用一個沒有空格的單詞時,例如「描述」,它的工作原理。我需要做些什麼來使它與短語一起工作?我有與strpos相同的問題 - 如果$ needle有一個空格,它不會給出正確的結果。
UPDATE:
HTML源代碼,曾在explode
的2個字,我用作爲分隔符之間的
即Item description
我想這樣做str_replace(" ", ' ', $body);
,但沒有做任何事情。 但是,當我做了str_replace(" ", ' ', $html);
到HTML之前,它是由$dom->saveXML
處理,解決了這個問題。
This blog post讓我覺得$dom->saveXML
很可能會改變html;
你試過用preg_split()嗎? – mohkhan
也許這個空間實際上不是一個空間,試着用'#Item \ s + description#'作爲模式的preg_split()。 – silkfire
您是否嘗試過使用雙引號:echo end(explode(「Item description」,$ body)); – khushalbokadey