我正在编写一个脚本来检查网站是否已关闭并使用以下php代码
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://help.github.com/articles/why-are-my-commits-linked-to-the-wrong-user ');
curl_setopt($ch, CURLOPT_NOBODY, true);
$return_val = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE );
var_dump($code);
它适用于某些网站,但有一些像CURLOPT_URL选项中提到的网站返回400代码
http://www.djangobook.com/en/2.0/chapter10.html这个网址也不起作用
我在我的localhost和远程服务器上尝试过但同样的事情发生了
我还试图添加https://github.com/twilio/twilio-php/blob/master/Services/cacert.pem但仍无法正常工作
我做错了什么???
答案 0 :(得分:0)
您要求在特定网址上使用HEAD。然后,服务器通过向您发回404响应来说明页面/资源不存在。
这不是客户端问题,服务器说该页面不存在。如果你在没有设置CURLOPT_NOBODY的情况下获得了不同的结果(有时候就是这种情况),那么你实际上可能会责怪服务器没有正确的HTTP兼容性,但这不会让任何人更快乐。
(其他答案可能涉及CURLOPT_SSL_VERIFYPEER和CURLOPT_RETURNTRANSFER等详细信息,但它们当然无关紧要。)
答案 1 :(得分:0)
删除空格str_replace(" ", '%20', $url);
答案 2 :(得分:-2)
您在调用HTTPs URL时需要添加此cURL
参数。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
此外,您需要添加此..
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
给{404}的curl_setopt($ch, CURLOPT_NOBODY, true);
评论。
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://help.github.com/articles/why-are-my-commits-linked-to-the-wrong-user');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_NOBODY, true);
$return_val = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE );
var_dump($code);
<强> OUTPUT :
强>
int 200