用php验证链接

时间:2010-03-29 17:28:05

标签: php

有人能告诉我是否有可能验证与php的链接?通过验证,我的意思是检查链接是否处于活动状态,并且不仅仅是链接的实际格式。

1 个答案:

答案 0 :(得分:8)

您需要执行HEAD请求并检查响应。 200表示请求成功。您可能希望将其他found here视为有效。 (301和302重定向重新定向)

如果你使用cURL,你可以使用类似的东西

$ch = curl_init($url);
curl_setopt($ch,  CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch,  CURLOPT_HEADER, TRUE); //Include the headers
curl_setopt($ch,  CURLOPT_NOBODY, TRUE); //Make HEAD request

$response = curl_exec($ch);

if ( $response === false ){
    //something went wrong, assume not valid
}

//list of status codes you want to treat as valid:    
$validStatus = array(200, 301, 302, 303, 307);

if( !in_array(curl_getinfo($ch, CURLINFO_HTTP_CODE), $validStatus) ) {
    //the HTTP code is not valid. The url is not valid
}

curl_close($ch);