检查loadHTMLFile url是否存在,如果它有div,如果没有,则不执行任何操作

时间:2015-07-10 06:32:54

标签: php html dom

我正试图从网址中检测出一些东西。

  1. 有效吗
  2. 它是否有特定的div

    $url = 'http://www.google.com/aasdsasdfafddsgsagf';
    $dom = new DOMDocument;
    libxml_use_internal_errors(true);
    $request = $dom->loadHTMLFile($url);
    $DOMxpath = new DOMXPath($dom);
    
    $title = $DOMxpath->query("//span[@class='bluebar']")
    
    if(!$request || $title->length == 0){
        echo 'failed!!';
    }
    
  3. 我想要达到这个条件:

    如果页面加载且拥有div - 则不执行任何操作。

    如果页面没有加载 - 什么都不做。

    现在我收到此错误,该错误会停止正常运行后的所有内容。

    错误:

    Warning: DOMDocument::loadHTMLFile(http://www.google.com/aasdsasdfafddsgsagf): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in...
    

    我仍然得到回音'失败!!'。

    请帮助!!

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,可以通过抑制警告来解决您的问题。这可以通过在{em> Error Control Operator $dom->loadHTMLFile($url)上添加@来完成。

$request = @$dom->loadHTMLFile($url);

在示例中,设置$title后缺少分号。这会导致PHP Parse error。此代码将执行您想要的操作:

$url = 'http://www.google.com/aasdsasdfafddsgsagf';
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$request = $dom->loadHTMLFile($url); // $request === false
$DOMxpath = new DOMXPath($dom);

$title = $DOMxpath->query("//span[@class='bluebar']");

if(!$request || $title->length == 0){
    echo 'failed!!';
}