使用get_meta_tags()和get_headers()进行异常处理?

rob*_*rob 3 php exception-handling get-headers

在PHP中,我使用的get_meta_tags()get_headers(),但是,当有一个404,这两个函数抛出一个警告.有什么办法让我抓住它吗?谢谢!

Flo*_*ern 6

get_headers不会在404上抛出警告/错误,但get_meta_tags确实如此.

所以你可以检查标题响应并做一些事情,当它不正常时:

$url = 'http://www.example.com/';

$headers = array();
$metatags = array();

$validhost = filter_var(gethostbyname(parse_url($url,PHP_URL_HOST)), FILTER_VALIDATE_IP);
if($validhost){
    // get headers only when Domain is valid
    $headers = get_headers($url, 1);

    if(substr($headers[0], 9, 3) == '200'){
        // read Metatags only when Statuscode OK
        $metatags = get_meta_tags($url);
    }
}
Run Code Online (Sandbox Code Playgroud)