PHP-字符串过滤(正则表达式?)

PHP-字符串过滤(正则表达式?),php,regex,string,Php,Regex,String,我有多个PHP字符串(每个10-100k个字符),希望从中获得精确的元素及其子元素 例如: $bbc_string = file_get_contents('http://www.bbc.co.uk/'); echo $bbc_string; 给出90544个字符并显示整个页面。但谁需要整个页面,包括导航、页脚等 如果我只想显示,比如说: <div id="news_container"> everything in it </div> 里面的一切 或:

我有多个PHP字符串(每个10-100k个字符),希望从中获得精确的元素及其子元素

例如:

$bbc_string = file_get_contents('http://www.bbc.co.uk/');
echo $bbc_string;
给出90544个字符并显示整个页面。但谁需要整个页面,包括导航、页脚等

如果我只想显示,比如说:

<div id="news_container">
   everything in it
</div>

里面的一切
或:


里面的一切
如何过滤或解析$bbc_字符串输出以显示我想要的内容

我认为正则表达式是解决方案,我发现了以下模式:

preg_match('/<div id=\"".$id."\">(.*?)</div>/', $string, $matches);
preg_match(“/(.*?/”,$string,$matches);
但它不起作用,应该只对div起作用,而不是所有元素


附近有PHP/regex忍者吗?

你应该用它来解析HTML

用PHP解析HTML在这里已经被问过/回答过很多次了,我甚至不想费心去查找重复的内容-直接投票结束。使用一些xml/dom解析器为您解析结构,您只访问对象树如何?@Marc B,对不起,在这个主题上还没有找到任何明确的答案。XPath:
//div[@id=“worldService_title”]
@Wordpressor:Word of warning:stackoverflow这里有一个很大(大多数)的崇拜者,他们都认为用正则表达式解析HTML是不可能的。他们对这个概念的信念是绝对的和不可改变的。所以要注意,无论何时你说出“REGEX”和“HTML”这两个词在同一句话中,你会得到一个自动的、即时的下意识反应,说:“不要这样做!”(即使正则表达式可能是解决手头特定问题的最佳工具。)他们会经常关闭这样一个线程。别把它当回事。
preg_match('/<div id=\"".$id."\">(.*?)</div>/', $string, $matches);