Php curl404错误请求

Php curl404错误请求,php,curl,http-status-code-400,Php,Curl,Http Status Code 400,我正在编写一个脚本来检查站点是否关闭,并使用下面的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_get

我正在编写一个脚本来检查站点是否关闭,并使用下面的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 options中提到的一些站点会返回400代码

这个url也不起作用

我尝试了本地主机和远程服务器,但同样的情况也发生了

我也尝试添加,但仍然不起作用


我做错了什么?

在调用HTTPs URL时,需要添加此
cURL
param

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
此外,您还需要添加此

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
以及
curl_setopt($ch,CURLOPT_NOBODY,true)的注释这将为您提供404

工作守则。。
你要求在一个特定的URL上加一个标题。然后,服务器向您发送404响应,表示页面/资源不存在

这实际上不是客户端问题,服务器说该页面不存在。如果您在没有设置的情况下得到不同的结果(有时是这样),那么实际上您可以责怪服务器没有正确地兼容HTTP,但这不会让任何人更高兴


(其他答案可能涉及诸如和CURLOPT_RETURNTRANSFER之类的细节,但它们在这里当然不相关。)

删除空白
str_replace(“,'%20',$url”)

404错误是由请求的服务器主动发送的,而不是某些传输问题或类似问题。因此,假设您尝试的URL是正确的,那么服务器必须做出一些积极的决定来回答此类错误。例如,这可能是为了防止页面刮取器读取内容。
<?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);
int 200