此函数检查URL是否存在。检查时间最长为300毫秒,但您可以在cURL选项CURLOPT_TIMEOUT_MS
中更改该参数。
function is_url_exists($url, $strict = false)
{
if (is_int($strict) && $strict >= 100 && $strict < 600 || is_array($strict)) {
if(is_array($strict)) {
$response = $strict;
} else {
$response = [$strict];
}
} else if ($strict === true || $strict === 1) {
$response = [200];
} else {
$response = [200,202,301,302,303];
}
$ch = curl_init( $url );
$options = [
CURLOPT_NOBODY => true,
CURLOPT_FAILONERROR => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_NOSIGNAL => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_HEADER => false,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_VERBOSE => false,
CURLOPT_USERAGENT => ( $_SERVER['HTTP_USER_AGENT'] ?? '' ),
CURLOPT_TIMEOUT_MS => 300,
CURLOPT_MAXREDIRS => 2,
];
curl_setopt_array($ch, $options);
$return = curl_exec($ch);
$errno = curl_errno($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if (!$errno && $return !== false) {
return ( in_array($httpcode, $response) !== false );
}
return false;
}
您可以检查任何URL,从域名、IP地址到图像、文件等。我认为这是最快的方式,并且已被证明是有用的。
200
的空白页面是“up”吗? - webbiedave