php获取照片时间,PHP中读取照片exif信息的方法

这篇文章主要介绍了PHP中读取照片exif信息的方法,本文从什么是exif信息开始讲解,使用PHP需要什么扩展、及它的安装方法和使用代码示例等,需要的朋友可以参考下

先来了解什么是图片的Exif信息

Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的。实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统(GPS)、缩略图等。简单地说,Exif=JPEG+拍摄参数。因此,你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息。

以上引自百度百科。

读取照片的exif在很多时候都没有必要,但相对于一些探讨摄影技术的站点,那么读取照片的exif信息就显得尤为重要了,比如摄影论坛蜂鸟。

0J3321Y8_1.jpg&

截图自蜂鸟论坛,红圈信息部分就是程序读取照片的exif信息。我们把图片下载到本地,使用光影魔术手打开图片看看它的Exif信息,当BG然除了光影还有很多工具都能查看图片的Exif值。

0J3321Y8_0.jpg&

除了Exif信息里的镜头值读不出来以外其余的值都能正确读出来。

开启PHP模块

默认情况下,PHP读取图片Exif信息模块是不开启的,我们需要先开启这个模块。

开启Exif模块需要mbstring支持,所以先来安装mbstring,以下是以Linux环境为例,其它环境类似。

安装mbstring模块

首先找到php源码包位置,直接进入ext/mbstring,执行以下命令安装,具体参数得看自己的环境。

复制代码 代码如下:

[root@lee ext]# cd /data0/software/php/ext/mbstring

[root@lee mbstring]# /usr/local/webserver/php/bin/phpize

Configuring for:

PHP Api Version:         20090626

Zend Module Api No:      20090626

Zend Extension Api No:   220090626

[root@lee exif]# ./configure --with-php-config=/usr/local/webserver/php/bin/php-config

[root@lee mbstring]# make && make install

Installing shared extensions:     /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/

Installing header files:          /usr/local/webserver/php/include/php/

[root@lee mbstring]#

安装好以后,我们可以进入extensions目录看看模块是否存在,存在表示安装成功。

复制代码 代码如下:

[root@lee mbstring]# cd /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/

[root@lee no-debug-non-zts-20090626]# ll

总用量 1880

-rwxr-xr-x. 1 root root  414405 6月  12 2012 eaccelerator.so

-rwxr-xr-x. 1 root root 1091242 9月  23 2011 imagick.so

-rwxr-xr-x. 1 root root    5285 2月  20 15:07 mbstring.so

-rwxr-xr-x. 1 root root  246752 9月  23 2011 memcache.so

-rwxr-xr-x. 1 root root  154252 9月  23 2011 pdo_mysql.so

安装exif模块

同安装mbstring模块类似,先找到源码位置并cd进去并配置安装,具体参数得看自己的环境。

复制代码 代码如下:

[root@lee exif]# cd /data0/software/php-5.3.13/ext/exif

[root@lee exif]# ./configure --with-php-config=/usr/local/webserver/php/bin/php-config

[root@lee exif]# make && make install

Installing shared extensions:     /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/

[root@lee exif]#

进入extensions目录验证是否安装成功

复制代码 代码如下:

[root@lee exif]# cd /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/

[root@lee no-debug-non-zts-20090626]# ll

总用量 2036

-rwxr-xr-x. 1 root root  414405 6月  12 2012 eaccelerator.so

-rwxr-xr-x. 1 root root  158554 2月  20 15:25 exif.so

-rwxr-xr-x. 1 root root 1091242 9月  23 2011 imagick.so

-rwxr-xr-x. 1 root root    5285 2月  20 15:07 mbstring.so

-rwxr-xr-x. 1 root root  246752 9月  23 2011 memcache.so

-rwxr-xr-x. 1 root root  154252 9月  23 2011 pdo_mysql.so

[root@lee no-debug-non-zts-20090626]#

exif.so模块已经存在。

在php.ini中添加模块

打开php.ini添加以下两行

复制代码 代码如下:

extension = "mbstring.so"

extension = "exif.so"

并且确认你的extension_dir值与你安装模块时提示的Installing shared extensions值一致,比如我安装模块时提示我的extensions位置是

复制代码 代码如下:

/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/

那么你的php.ini里的extension_dir要指向正确目录

复制代码 代码如下:

extension_dir="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/"

保存php.ini,重启webserver。

打开phpinfo()找到相应属性看看是否已正常工作

正常情况下你会看到如下两个模块信息

0J331H14_1.jpg&

0J331H14_0.jpg&

使用exif_read_data()读取图片的exif信息

支持读取exif信息的图片类型在phpinfo里已经写明了,只能是jpeg或者tiff类型,其中jpeg是常用类型,这就已经足够。

我们来看看exif_read_data()函数的使用手册

复制代码 代码如下:

array exif_read_data ( string $filename [, string $sections = NULL [, bool $arrays = false [, bool $thumbnail = false ]]] )

参数:

filename :要读取图片exif信息的图片路径,这里不能是URL

sections:是需要存在于文件中的逗号分隔的区段列表用来产生结果数组。如果未找到所请求的区段则返回值为 FALSE。

FILE

FileName, FileSize, FileDateTime, SectionsFound

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值