Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php cURL在存在的文件(远程服务器)上返回404。为什么?_Php_Curl - Fatal编程技术网

Php cURL在存在的文件(远程服务器)上返回404。为什么?

Php cURL在存在的文件(远程服务器)上返回404。为什么?,php,curl,Php,Curl,我正在检查是否存在某些mp3。虽然有时没有问题,但某些有效的mp3文件显示为404,未找到。以下是我使用的代码: $ch = @curl_init($file_path); @curl_setopt($ch, CURLOPT_HEADER, true); @curl_setopt($ch, CURLOPT_NOBODY, true); @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); @curl_setopt($ch, CURLOPT_RETURN

我正在检查是否存在某些mp3。虽然有时没有问题,但某些有效的mp3文件显示为404,未找到。以下是我使用的代码:

$ch = @curl_init($file_path);
@curl_setopt($ch, CURLOPT_HEADER, true);
@curl_setopt($ch, CURLOPT_NOBODY, true);
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

@curl_exec($ch);
$header = curl_getinfo($ch);
curl_close($ch);
echo "<pre>";
print_r($header);
echo "<pre>";
$ch=@curl\u init($file\u path);
@curl_setopt($ch,CURLOPT_头,true);
@curl_setopt($ch,CURLOPT_NOBODY,true);
@curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
@curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
@curl_exec($ch);
$header=curl\u getinfo($ch);
卷曲关闭($ch);
回声“;
打印(页眉);
回声“;
我认为问题是因为网站使用了重定向,但将“CURLOPT_FOLLOWLOCATION”设置为TRUE并没有解决问题

http代码在以下MP3上显示404。您可以在浏览器中找到它们并查看它们是否正常工作。这些只是许多有这个问题的人的几个随机例子:

基本上:

假设curl exec已正确执行,并丢弃其返回值。如果执行查询时出现问题,exec将返回false和curl\u error,curl\u errno将包含关于什么爆炸以及如何爆炸的诊断信息。永远不要以为你成功了。失败的原因太多了,但成功的途径只有一条。至少,将代码更改为:


看看为什么事情会死。否则,你只会得到一些奇怪的结果,并且放弃了任何看到这些结果的机会。

在一个无关的问题上,你是否碰巧拥有这些音乐文件的版权?@DevSolar:你是在问用户371699是否真的是Lady Gaga?Lady Gaga会使用RubyI没有检查,但是,如果某些服务器端脚本无法识别您的用户Argent,
$file\u path
包含什么内容,则可能会返回404?
@curl_exec($ch);
if (curl_exec($ch) === FALSE) {
    die("Curl error: " . curl_error($ch));
}