Php 替代图像(通过IF函数)不';行不通

Php 替代图像(通过IF函数)不';行不通,php,image,http,Php,Image,Http,我试图通过PHP获取一个Minecraft玩家的皮肤,并且它都可以工作,直到用户输入无效的用户名,技术上,如果发生了这种情况,脚本应该用另一个映像替换未找到的映像,但由于某种原因它没有。 完整脚本: <?php //initial settings header("Content-type: image/png"); //declere values $name = $_GET['n']; //get the image from Minecraft main servers $src

我试图通过PHP获取一个Minecraft玩家的皮肤,并且它都可以工作,直到用户输入无效的用户名,技术上,如果发生了这种情况,脚本应该用另一个映像替换未找到的映像,但由于某种原因它没有。 完整脚本:

<?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);
?>

如有任何帮助,将不胜感激。

请尝试

<?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);
?>


您应该检查png是否存在(
文件_exists()
),而不是
$src
。。。我非常确定imagecreatefrompng返回的资源总是true@Najzero,根据,
imagecreatefrompng
“成功时返回图像资源标识符,错误时返回FALSE。”@Jordan Hey我尝试运行您的精确代码,结果成功。不,它只显示备选图像,即使输入的名称有效。