好吧,这是我在bash中的cURL脚本,可以正常工作!#!/bin/bashfileid="1yvklOFopnep8twiqAQecmMUoAbQVzU0r"filename="MyFile.mp4"curl -c ./cookie -s -L "https://drive.google.com/uc?export=download&id=${fileid}" > /dev/nullcurl -Lb ./cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=${fileid}" -o ${filename}但是,我试图将其重写为一个简单的PHP脚本,尽管它似乎无法正常工作;代码如下:<?php define('FILENAME', 'MyFile.mp4'); define('FILE_ID', '1yvklOFopnep8twiqAQecmMUoAbQVzU0r'); $GlobalFileHandle = null; function get_confirm($id) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://drive.google.com/uc?export=download&id=".$id); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close($ch); preg_match_all("/confirm=([0-9A-Za-z]+)&/", $result, $output_array); return $output_array[1][0]; } function get_file($id, $confirm) { global $GlobalFileHandle; $GlobalFileHandle = fopen(FILENAME, 'w+'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://drive.google.com/uc?export=download&confirm='.$confirm.'&id='.$id); curl_setopt($ch, CURLOPT_FILE, $GlobalFileHandle); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'curlWriteFile'); curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close($ch); fclose($GlobalFileHandle); }但是,文件似乎没有被下载 &'我的文件.mp4仍然为空?
2 回答

一只斗牛犬
TA贡献1784条经验 获得超2个赞
您似乎在这里以无效的方式混合了几个选项。
由于您设置了数据,因此由 返回。CURLOPT_RETURNTRANSFER
curl_exec()
所以
$data = curl_exec($ch); fwrite($GlobalFileHandle, $data);
应该做这个伎俩。如果要使用回调,则根本不设置。CURLOPT_RETURNTRANSFER
另一个选项是,设置为将数据直接写入文件句柄(则不要设置):CURLOPT_FILE
CURLOPT_RETURNTRANSFER
curl_setopt(CURL_FILE, $GlobalFileHandle);
此外,您需要将 设置为您的饼干,以便正确读取饼干。该选项仅设置存储 Cookie 的文件。您需要两者,因此请添加:CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR
curl_setopt(CURL_COOKIEFILE, 'cookies.txt');
有关更多详细信息,请参阅 PHP 手册页curl_setopt
- 2 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消