我想從遠程複製圖片到我的服務器,但它有時會複製錯誤的圖片。我嘗試了幾乎所有的解決方案,但是我會在最下面添加最簡單的一個一個例子。PHP - 從遠程服務器複製圖像時出現的大問題
這個問題很奇怪。如果我從捲曲中解析出一個變量值爲http://www.domain.com/image.jpg,然後我從這裏下載圖像,那麼我得到一個錯誤的圖像。
1)這不工作($形象的價值http://www.domain.com/image.jpg)
//url of a picture
$image = $result->xpath('image-url');
$image = (string)$image[0];
copy($image, '/patch/image.jpg');
2)這工作 - 當我直接定義圖像的URL。
//url of a picture pulled by curl
$image = $result->xpath('image-url');
$image = (string)$image[0];
if($image == 'http://www.domain.com/image.jpg') {
$image = 'http://www.domain.com/image.jpg';
}
copy($image, '/patch/image.jpg');
在這兩種情況下,$形象價值是完全一樣的,但是第一個有時下載錯誤的圖像,而第二個總下載正確的。
你能幫忙嗎?
I have tried few variation:
1) $img = file_get_contents('http://placehold.it/150x150'); - WORKS
2) $img = file_get_contents('http://www.domain.com/image.jpg'); -WORKS
3) $img = file_get_contents($image); where
var_dump($image) = string(66) "http://www.domain.com/image.jpg"
echo $image = http://www.domain.com/image.jpg Doesn't work.
我懷疑他們是一樣的。在第一個示例中執行'var_dump($ image)'並查看圖像的實際值 –
請記住,哪一個適用,哪個不適用。 –
第二個總是起作用,有時第一個起作用。它通常會產生錯誤的圖像。 – Zox