我写了以下内容,看看提交的URL是否有有效的http响应代码,以及它是否快速响应。
这样使用代码:
<?php程序
$is_ok(_O)=http_响应($网址);?>
第二个参数是可选的,它允许您检查特定的响应代码
<?php程序
http_响应($网址,'400');?>
第三个选项允许您指定等待响应的时间。
<?php程序
http_响应($网址,'200',三);?>
<?php程序
功能http_响应($网址,$状态=无效的,$等待=三)
{
$时间=微时间(真的);
$过期=$时间+$等待;
$pid=pcntl叉();
如果($pid== -1) {
模具('无法分叉');
}否则,如果($pid) {
美元ch=卷曲_ init();
当前设置选项(美元ch,曲线_ URL,$网址);
卷曲_顶点(美元ch,CURLOPT_HEADER(光标_页眉),真的);
卷曲_顶点(美元ch,CURLOPT_无人,真的);卷曲_顶点(美元ch,CURLOPT_返回传输,真的);
$头=卷曲_执行(美元ch);
$httpCode(美元httpCode)=curl_getinfo(卷发信息)(美元ch,CURLINFO_HTTP_代码);
curl_close(卷曲_闭合)(美元ch);
如果(!$头)
{
返回错误的;
}
如果($状态===无效的)
{
如果($httpCode(美元httpCode)<400)
{
返回真的;
}
其他的
{
返回错误的;
}
}
埃尔塞夫($状态==$httpCode(美元httpCode))
{
返回真的;
}
返回错误的;
pcntl等待($状态);}其他{
同时(微时间(真的) <$过期)
{
睡觉(0.5);
}
返回错误的;
}
}
?>
希望这个例子能有所帮助。它没有经过100%的测试,所以任何反馈(通过电子邮件直接发送给我)都非常感谢。