【发布时间】:2017-12-20 00:50:08
【问题描述】:
你好,我有这个下载压缩文件的 Linux 命令
curl -L -O http://www.url.com
问题是当我在 PHP 中进行 curl 时,我得到的是 HTML 代码而不是压缩文件。
PHP 代码是这样的:
$url = https://www.example.com
$filePath = '/app/storage/temp/' . $fileName;
$fp = fopen($filePath . 'me', "w");
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_FTPAPPEND, 0);
curl_setopt($ch, CURLOPT_FILE, $fp);
$data = curl_exec($ch);
fwrite($fp, $data);
curl_close($ch);
fclose($fp);
我无法分享真实的 URL,因为它包含密钥。
编辑
当我将-L -O 选项添加到它开始工作的curl 命令时,curl 命令下载了与 curl 命令相同的HTML 文件,所以这里的问题是,我如何使用@987654328 添加这些行@
【问题讨论】:
-
很难说没有实际的 URL 来试一试,但我敢打赌他们已经专门阻止了机器人或 cURL 客户端的访问。
-
你的例子没有显示 $url 被设置。 $data 中的 HTML 是什么?是错误页面吗?
-
@ceejayoz 我认为他们没有阻止 curl 客户端,因为如果我在 Linux 终端中运行该命令,它会下载文件
-
嗯。使用 google.com 作为 URL 检查您的原始代码,它工作正常。这可能特定于您点击的 URL。也许检查返回结果,转储 curl_getinfo 等?