更新時間:2018-03-20 來源:黑馬程序員 瀏覽量:
一、功能介紹
目前有很多app在用戶發(fā)布照片信息之后能夠準(zhǔn)確的顯示出手機(jī)型號、地址、高度等信息,那么這些信息是如何獲取的呢?本次專題就這個問題來闡述信息的獲取。
二、實現(xiàn)效果
* 以QQ空間相冊照片效果為例:
三、PHP獲取照片信息功能實現(xiàn)
1、具備前提
環(huán)境要求:
php必須開啟mbstring擴(kuò)展和exif擴(kuò)展;
文件要求:
讀取的照片必須是未經(jīng)處理的照片(如壓縮,裁剪等);
2、具體步驟
1. 開啟php對應(yīng)的擴(kuò)展,隨后重啟web軟件;
去掉對應(yīng)擴(kuò)展前面的注釋符號。
2.創(chuàng)建讀取照片的靜態(tài)頁面,實現(xiàn)文件的選取與上傳
效果如下:
如需要效果好看些許,可以考慮使用第三方上傳組件,此處以webuploader為例,官網(wǎng)地址:
http://fex.baidu.com/webuploader/getting-started.html#%E5%9B%BE%E7%89%87%E4%B8%8A%E4%BC%A0
可以根據(jù)官網(wǎng)步驟實現(xiàn)上述效果。
需要注意的是,以下幾個地方代碼需要進(jìn)行調(diào)整:
根據(jù)自身情況修改對應(yīng)的路徑
3.編寫上傳處理文件fileupload.php文件,實現(xiàn)文件的上傳處理
該文件中重點步驟為第23行,由于此前已經(jīng)開啟了了exif擴(kuò)展,此處可以借助exif相關(guān)函數(shù)操作文件。
第24行代碼為輸出的設(shè)備信息,交給前段模板繼續(xù)處理。
4.完善前段回調(diào)處理
在上傳模板中編寫一個空白div,用于展示返回信息
在上傳成功回調(diào)函數(shù)出完善回顯
5.測試
此時基本已經(jīng)大功告成,我們可以選擇一個手機(jī)拍攝的照片進(jìn)行測試,觀察測試結(jié)果
上傳前的效果:
上傳后的效果:
根據(jù)前后圖的對比,測試結(jié)果是正確的,說明信息讀取成功。
四、總結(jié)
php的exif擴(kuò)展除了能夠獲取拍攝設(shè)備的基本信息之外,還可以獲取更多的信息,如經(jīng)緯度,高度,曝光時間等多達(dá)50余項的信息。一個看似很高大上的功能在php中只需要依靠一個擴(kuò)展加之幾行代碼就可以實現(xiàn)了。
本文版權(quán)歸黑馬程序員PHP學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員PHP培訓(xùn)學(xué)院
首發(fā):http://php.itheima.com/