2013-10-04 16 views
0

我想通過PHP獲取Minecraft玩家的皮膚,並且它一切正常,直到用戶輸入了無效的用戶名,技術上,如果發生腳本應該替換髮現圖像與替代圖像,但由於某種原因它沒有。 全文:替代圖像(通過IF函數)不起作用

<?php 
//initial settings 
header("Content-type: image/png"); 

//declere values 
$name = $_GET['n']; 

//get the image from Minecraft main servers 
$src = imagecreatefrompng("http://s3.amazonaws.com/MinecraftSkins/{$name}.png"); 
//if not found, use an alternative image 
if(!$src){ 
$src = imagecreatefrompng("http://s3.amazonaws.com/MinecraftSkins/char.png"); 
} 

//display the skin 
imagepng($src); 
?> 

任何幫助將appriciated,謝謝。

+0

,你應該檢查一下,巴存在('file_exists()'),而不是如果'!$ src' ......我敢肯定,通過imagecreatefrompng返回的資源總是真 – Najzero

+0

@Najzero,根據http://php.net/manual/en/function.imagecreatefrompng.php,'imagecreatefrompng'「成功返回圖片資源標識符,錯誤返回FALSE。」 – Mureinik

+0

@Jordan嘿,我試圖運行你的確切代碼,它的工作。 – darshandzend

回答

0

嘗試

<?php 
//initial settings 
header("Content-type: image/png"); 

//declere values 
$name = $_GET['n']; 

//get the image from Minecraft main servers 
if(file_exists("http://s3.amazonaws.com/MinecraftSkins/{$name}.png")) { 
    $src = imagecreatefrompng("http://s3.amazonaws.com/MinecraftSkins/{$name}.png"); 
//if not found, use an alternative image 
else { 
    $src = imagecreatefrompng("http://s3.amazonaws.com/MinecraftSkins/char.png"); 
} 

//display the skin 
imagepng($src); 
?> 
+0

不,它只是顯示替代圖像,即使輸入的名稱是有效的。 –