function outPut($img,$filename,$newName=''){
$imginfo = getimagesize($filename);
switch($imginfo['mime']){
case 'image/jpeg':
if(empty($newName)){
$img = imagejpeg($img);
}else{
$img = imagejpeg($img,$newName);
}
break;
case 'image/gif':
if(empty($newName)){
$img = imagegif($img);
}else{
$img = imagegif($img,$newName);
}
break;
case 'image/png':
if(empty($newName)){
$img = imagepng($img);
}else{
$img = imagepng($img,$newName);
}
break;
default:
return false;
}
return $img;
}
这样写的好处是什么?为什么不直接
case 'image/jpeg':
$img = imagejpeg($img);
那么执行的时候就是imagejpeg($img); 如果传了第三个参数 那么if条件语句就判断不通过,那么将会执行imagejpeg($img,$newName)
imagejpeg函数有第二个参数的时候 是将img指定输出到第二个参数所指定的文件名,
如果没有第二个参数,默认输出到浏览器
这里有个问题if(empty($newName))这个在php最新版本里会有错误的
empty这个内置函数会慢慢消失掉所以这里建议改成
if ( $newName === '' )