好吧,這是我在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 關注
- 156 瀏覽
添加回答
舉報
0/150
提交
取消