我有一个长的网址嵌套在一个变量:$ mp4,并试图用curl下载它,但我得到了错误的错误。如果可以,请帮帮我,提前谢谢你!
以下是我在php脚本中的内容:
exec("curl -o $fnctid.mp4 \"$mp4\"");
错误讯息:
curl: (3) <url> malformed
测试下载的示例网址:
http://f26.stream.nixcdn.com/6f4df1d8c248cf149b846c24d32f1c35/514e0209/PreNCT5/22-TaylorSwift-2426783.mp4
答案 0 :(得分:2)
当前网址正在返回408 - Request Timeout
,如果修复了这个简单的代码:
$url = 'http://f26.stream.nixcdn.com/6f4df1d8c248cf149b846c24d32f1c35/514e0209/PreNCT5/22-TaylorSwift-2426783.mp4';
$useragent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2';
$file = __DIR__ . DIRECTORY_SEPARATOR . basename($url);
$fp = fopen($file, 'w+');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, 320);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
echo curl_exec($ch);
var_dump(curl_getinfo($ch)); // return request information
curl_close($ch);
fclose($fp);
答案 1 :(得分:1)
可以使用urlencode
解决此错误 $url = urlencode ( $url )
当编码要在URL的查询部分中使用的字符串时,此函数很方便,这是传递变量的便捷方式。
希望这能解决问题