PHP保存遠程圖片無法打開的原因是什么?如何解決這個問題?

PHP保存遠程圖片無法打開的原因是什么?如何解決這個問題?

php保存遠程圖片問題及解決方案

在PHP開發中,保存遠程圖片經常遇到保存成功但無法打開的情況。本文將通過代碼示例分析問題原因并提供解決方案。

問題描述:

以下PHP代碼意圖將遠程圖片保存到本地:

$url = 'https://img.alicdn.com/i3/85764793/o1cn0128vx5s1lhfa4aj2ym_!!85764793.jpg'; file_put_contents('aaa.jpg', $url);

運行后,aaa.jpg文件雖然創建成功,但無法正常打開,而原鏈接卻可以正常訪問圖片。

立即學習PHP免費學習筆記(深入)”;

問題分析:

問題在于file_put_contents()函數直接將URL字符串寫入文件,而非圖片數據本身。因此,文件內容是URL文本而非圖片二進制數據。

解決方案:

正確的做法是先使用file_get_contents()獲取圖片的二進制數據,再寫入文件。修改后的代碼如下:

<?php $url = 'https://img.alicdn.com/i3/85764793/O1CN0128vX5s1lHFA4aj2YM_!!85764793.jpg'; $imageData = file_get_contents($url); file_put_contents('aaa.jpg', $imageData); ?>

此代碼先用file_get_contents($url)獲取圖片數據,再用file_put_contents(‘aaa.jpg’, $imageData)將數據寫入文件。這樣,aaa.jpg文件將包含正確的圖片二進制數據,從而可以正常打開。 需要注意的是,遠程服務器可能存在訪問限制或圖片不存在的情況,需要進行相應的錯誤處理。

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享