PHP-GD 如何使用 facebook 的 url 检查类型(jpeg、gif ..)?

Posted

技术标签:

【中文标题】PHP-GD 如何使用 facebook 的 url 检查类型(jpeg、gif ..)?【英文标题】:PHP-GD How I can check the type (jpeg, gif ..) with a url of facebook? 【发布时间】:2014-07-01 07:51:51 【问题描述】:

如果用户没有照片 facebook 而不是 jpeg,则获取 gif。 如何检查类型?

我尝试了以下方法:

$PIC_Friend = imagecreatefromstring(file_get_contents('http://graph.facebook.com/'. id .'/picture?width=50&height=50')); 
if(imagejpeg($PIC_Friend))  
..
 elseif (imagegif($PIC_Friend))  
...

这可行,但替换了我所有的模板(php 的其余元素),并且只显示被指控的 imagejpg 方法 imagegif 等的照片。..

【问题讨论】:

【参考方案1】:

好的。

解决方法很简单..只需使用php方法exif_imagetype

http://php.net/manual/en/function.exif-imagetype.php

【讨论】:

【参考方案2】:
$img_info = getimagesize($file_path);
if($img_info['mime'] == 'image/pjpeg' || $img_info['mime'] == 'image/jpeg') 
    echo 'It is a .jpeg';

【讨论】:

【参考方案3】:

您可以使用exif_imagetype

$type = exif_imagetype('path/to/yourImage');

$type 可以是IMAGETYPE_GIF,IMAGETYPE_JPEG,IMAGETYPE_PNG,...。 这种方法比getimagesize 快得多。如果您的文件不是图像,它将输出false

【讨论】:

【参考方案4】:

您可以使用get_headers阅读标题

$headers = get_headers('http://graph.facebook.com/'. id .'/picture?width=50&height=50');

输出

array(22) 

  [0]=> string(23) "HTTP/1.1 302 forced.302"
  ...
  [14]=> string(24) "Content-Type: image/jpeg"
  ...
  string(17) "Connection: close"

【讨论】:

以上是关于PHP-GD 如何使用 facebook 的 url 检查类型(jpeg、gif ..)?的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Docker 官方镜像中添加 freetype 到 php-gd

PHP-GD 使文本换行上的所有字体的行高兼容

php-gd库的使用——跟招财圆一起玩php

php-gd库的使用——跟招财圆一起玩php

Facebook 图表获取个人资料图片图像类型

已安装 php-gd 但在 centos 7(php 7.3 版本)中无法运行