尝试用正则表达式来解决的问题,HTML,很快你有两个问题。 但是,如果你真的想用一个肮脏的正则表达式来做到这一点,就可以做到。你不应该依赖它。最简单的正则表达式是这样的:
preg_match_all(
"/<td class=bilgi_satir width=\"..%\"><b>(.*)<\/b>/i",
$your_html_here, $m
);
这大致返回你想要print_r($m[1]);
什么(我加了1,2,3告诉他们分开)
Array (
[0] => (PLACE I WANT TO FETCH 1)
[1] => (PLACE I WANT TO FETCH 2)
[2] => (PLACE I WANT TO FETCH 3)
)
这样做是最好的方法DOM解析。例如:
$doc = new DOMDocument();
$doc->loadHTML($your_html_here);
$x = new DOMXPath($doc);
$results = $x->query("//td[@class='bilgi_satir']//b");
# $results->length now shows 3
$ret = array();
foreach($results as $count => $result) {
printf("item # %s = %s\n", $count, $result->nodeValue); # debug only
$ret[] = $result->nodeValue;
}
这将显示:
item # 0 = (PLACE I WANT TO FETCH 1)
item # 1 = (PLACE I WANT TO FETCH 2)
item # 2 = (PLACE I WANT TO FETCH 3)
编辑:明明倾销节点值到一个数组,您可以通过访问数组,你想要的。
使用HTML解析器。 – nickb
@nick我真的在PHP中noob,你可以发送一个例子吗? – 1342
**不要使用正则表达式来解析HTML **。你不能用正则表达式可靠地解析HTML,你将面临悲伤和挫折。只要HTML从你的期望改变,你的代码就会被破坏。有关如何使用已经编写,测试和调试的PHP模块正确解析HTML的示例,请参阅http://htmlparsing.com/php。 –