Mah*_*esh 2 php facebook try-catch
try{
$src = imagecreatefromjpeg('https://graph.facebook.com/'.$jsonfriends["data"][$randf]["id"].'/picture');
} catch (Exception $z){
$src = imagecreatefromgif('https://graph.facebook.com/'.$jsonfriends["data"][$randf]["id"].'/picture');
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,当'try'块中的代码失败时,控件不会传递给'catch'块.我得到输出错误,因为https://graph.facebook.com/xxxxxx/picture不是有效的JPEG.实际上,如果它不是JPEG,那么在这种情况下它就是GIF.所以有人可以帮我这个吗?
imagecreatefromjpeg如果失败则不会抛出异常.有关它的更多信息,请参阅PHP:如何正常管理错误?.
你最好使用函数的PHP文档的注释中提到的函数:
function open_image ($file) {
$size = getimagesize($file);
switch($size["mime"]){
case "image/jpeg":
$im = imagecreatefromjpeg($file); //jpeg file
break;
case "image/gif":
$im = imagecreatefromgif($file); //gif file
break;
case "image/png":
$im = imagecreatefrompng($file); //png file
break;
default:
$im=false;
break;
}
return $im;
}
Run Code Online (Sandbox Code Playgroud)
这样,您可以完全避免这个问题,因为它不会尝试将文件解析为JPEG(如果不是一个).
| 归档时间: |
|
| 查看次数: |
3084 次 |
| 最近记录: |