我有一个包含许多HTML行的页面:
<ul><li><a href='a_silly_link_that_changes_each_line.php'>the_content_i_need</a></li></ul>
现在你可以看到,该行中有一个链接,不幸的是每一行都有变化。
所以我需要一种方法来抓取该行中的内容,而不会让链接妨碍。
我也试图像这样:.php'>(*.)</a></li></ul>
但这没有用,因为它会返回不需要的内容。
另外,因为页面上有很多行我需要从中获取内容,我能不能以某种方式loop
通过?
我正在使用preg_match
和file_get_contents
,但我愿意接受其他建议。 :)
答案 0 :(得分:0)
尝试使用
$match = array();
preg_match_all( '~\\.php>(.*?)</a></li></ul>~', file_get_contents( $filename), $matches, PREG_SET_ORDER)`.
这将匹配文件中的所有链接。 *?
表示“匹配0-inf字符但尽可能少的字符”(贪婪的杀手),这样您就不会得到任何未被破坏的内容。
答案 1 :(得分:0)
使用类似:
$str = '<ul><li><a src="test.html">linky</a></li></ul>';
$DOM = new DOMDocument;
$DOM->loadHTML($str);
$items = $DOM->getElementsByTagName('ul');
for($i =0;$i<$items->length;$i++){
$ul = $items->item($i);
$li=$ul->firstChild;
if($li->nodeName=='li' && $li->firstChild->nodeName=='a'){
//do something with $li->firstChild->nodeValue
}
}
在这种情况下,$li->firstChild->nodeValue
将为linky
。
应该这样做:)