在PHP中加载HTML页面

时间:2014-12-16 15:31:59

标签: php html

我正在尝试使用网址加载HTML页面。这就是我现在要做的就是找到页面上的图像数量:

$html = "http://stackoverflow.com/";
$doc = new DOMDocument();
@$doc->loadHTML($html);

$tags = $doc->getElementsByTagName('*');

$count = 0;
foreach ($tags as $tag) {
    if (strcmp($tag->tagName, "img") == 0) {
        $count++;
    }
} 
echo $count;

我知道这不是一种有效的方法,我只是将其设置为一个例子。每次,计数为0.但页面上有图像。这让我相信页面加载不正确。我究竟做错了什么?感谢。

2 个答案:

答案 0 :(得分:1)

HTML中的标记名称是大写的,但您可以使用strcasecmp代替strcmp来避免此问题。

或者通过正确执行来避免这两个问题:

$count = $doc->getElementsByTagName('img')->length;

答案 1 :(得分:0)

来自the docs

  

DOMDocument :: loadHTML - 从字符串加载HTML

它的签名也非常清楚:

public bool DOMDocument::loadHTML ( string $source [, int $options = 0 ] )

您可以尝试使用DOMDocument::loadHTMLFile,或者只是使用file_get_contents或cURL请求获取给定网址的标记(以最适合您的方式)。

不要使用 death 的错误抑制操作符@,如果有事情发出通知/警告/错误,存在问题。不要忽视它,解决它!