我撰寫了以下程式碼,以檢查提交的 URL 是否具有有效的 http 回應代碼,以及是否快速回應。
像這樣使用程式碼
<?php
$is_ok = http_response($url); ?>
第二個參數是可選的,它允許您檢查特定的回應代碼
<?php
http_response($url,'400'); ?>
第三個允許您指定願意等待回應的時間長度。
<?php
http_response($url,'200',3); ?>
<?php
function http_response($url, $status = null, $wait = 3)
{
$time = microtime(true);
$expire = $time + $wait;
$pid = pcntl_fork();
if ($pid == -1) {
die('無法 fork');
} else if ($pid) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$head = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if(!$head)
{
return FALSE;
}
if($status === null)
{
if($httpCode < 400)
{
return TRUE;
}
else
{
return FALSE;
}
}
elseif($status == $httpCode)
{
return TRUE;
}
return FALSE;
pcntl_wait($status); } else {
while(microtime(true) < $expire)
{
sleep(0.5);
}
return FALSE;
}
}
?>
希望這個範例對您有幫助。它並非 100% 測試過,因此任何意見回饋(請直接寄電子郵件給我)都將不勝感激。