用php回应只有一个div

时间:2011-02-03 00:43:34

标签: php foreach echo

我正在尝试创建一个脚本,只回显在Google上隐藏图像的div。

$url = "http://www.google.com/";
$page = file($url);

foreach($page as $theArray) {
echo $theArray;
}

问题在于整个页面的回声。 我想只回显<div id="lga">和下一个</div>之间的部分 注意:我尝试使用if,但它没有工作,所以我删除了它们

由于

2 个答案:

答案 0 :(得分:2)

为此,您需要解析DOM,然后获取您要查找的ID。查看一个像http://simplehtmldom.sourceforge.net/manual.htm

这样的解析库

将html文档送入解析器后,您可以调用类似的内容:

$html = str_get_html($page); 
$element = $html->find('div[id=lga]'); 
echo $element->plaintext;

我认为,这将是您最快捷,最简单的解决方案。

答案 1 :(得分:2)

使用内置DOM方法:

<?php

$page = file_get_contents("http://www.google.com");

$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML($page);
libxml_use_internal_errors(false);

$domx = new DOMXPath($domd);
$lga = $domx->query("//*[@id='lga']")->item(0);

$domd2 = new DOMDocument();
$domd2->appendChild($domd2->importNode($lga, true));

echo $domd2->saveHTML();