这就是我想做的事: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