亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法下載使用 PHP 卷發的遠程映像

無法下載使用 PHP 卷發的遠程映像

PHP
撒科打諢 2022-09-25 20:25:59
我聯系了 scrapestack 的支持人員,并確認他們的 API 不支持圖像文件。我正在嘗試使用CURL和php下載遠程圖像。以下是我的代碼。但是每當我嘗試打開下載的圖像時,我總是得到:Cannot read this file. This is not a valid bitmap file, or its format is not currently supported.有人知道我的代碼有什么問題嗎?謝謝。$image ="http://api.scrapestack.com/scrape?access_key=TOKEN-HERE&url=https://i.imgur.com/Cbiu8Ef.png";$imageName = pathinfo( $image, PATHINFO_BASENAME );$ch = curl_init();curl_setopt( $ch, CURLOPT_URL, $image );curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);curl_setopt($ch, CURLOPT_HTTP_CONTENT_DECODING, false);$source = curl_exec( $ch );$info = curl_getinfo($ch);curl_close( $ch );file_put_contents( $imageName, $source );我無法打開該文件,當我嘗試以崇高的方式打開它時,它卡在加載圖像。當我用記事本打開它時,我得到了看起來像PNG圖像的以下內容,但它不是有效的圖像。文件以 PNG 開頭IHDR       ?   q?I?    IDATx?k?]?u?o??(??_?M??m?8:???_r?G您可以在此處查看該文件:https://gofile.io/?c=cfsYf2看起來問題正在通過 Scrapestack 發出 curl 請求,因為如果我直接將 curl 指向圖像 url,圖像就會正確下載,如下所示:$image ="https://i.imgur.com/Cbiu8Ef.png";
查看完整描述

3 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

我今天玩了一下刮刀,它似乎不支持圖像抓取。最好是您可以聯系他們的客戶支持并找出答案。


@Towsif是正確的,您嘗試獲取頁面,而不是實際圖像。我很快就把一些東西放在一起,試試看這是否適合你。


$queryString = http_build_query([

  'access_key' => 'replace this with your own token',

  'url' => 'https://i.imgur.com/Cbiu8Ef.png',

]);


$ch = curl_init(sprintf('%s?%s', 'http://api.scrapestack.com/scrape', $queryString));

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);

curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);

$image_source = curl_exec( $ch );

curl_close( $ch );

file_put_contents( 'Cbiu8Ef.png' , $image_source );


查看完整回答
反對 回復 2022-09-25
?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

看起來您得到的響應是損壞的PNG圖像。

如果您使用的是5.1.3之前版本的PHP,則需要為二進制數據傳輸指定一個附加選項,例如圖像:

curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);

如果上述選項不能解決問題,您可以嘗試設置

curl_setopt($ch, CURLOPT_HTTP_CONTENT_DECODING, false);

如果響應的標頭設置錯誤,則讓 curl 對原始輸出執行不需要的解碼。Content-Type


查看完整回答
反對 回復 2022-09-25
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

你的問題是這個網址。

$image ="http://api.scrapestack.com/scrape?access_key=TOKEN-HERE&url=https://imgur.com/a/E5ehGuv";

如果您轉到此網址

https://imgur.com/a/E5ehGuv

您將看到圖像頁面,但看不到圖像路徑。 函數在這里不起作用并引發錯誤。pathinfo()

如果您右鍵單擊該圖像并在新選項卡中打開圖像,您將看到圖像路徑,在這種情況下,即

https://i.imgur.com/Cbiu8Ef.png

所以你可以試試這個網址

$image ="http://api.scrapestack.com/scrape?access_key=TOKEN-HERE&url=https://i.imgur.com/Cbiu8Ef.png";


查看完整回答
反對 回復 2022-09-25
  • 3 回答
  • 0 關注
  • 93 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號