TP5獲取上傳文件并驗(yàn)證
tp5獲取上傳文件可以說是相當(dāng)?shù)暮唵危ㄗ⒁獯颂幍?file的類型是tp5封裝的File)
$file = $this- request- file( file
這樣就可以直接的獲取上傳的文件,簡單的蛋疼。
首先驗(yàn)證文件是否上傳了并且是否為空。
if (false === ($file instanceof File)) { //文件為空,拋異常/業(yè)務(wù)處理}
然后就是驗(yàn)證文件的類型了,apk的媒體信息其實(shí)就是zip,千萬不要使用后綴名進(jìn)行判斷啊。年輕的我就是用后綴進(jìn)行判斷的。
老司機(jī)看到就建議我使用getMime方法獲取文件的媒體進(jìn)行進(jìn)行匹配。(getMime屬于tp5 File的封裝方法)
if ( application/zip !== $file- getMime()) { //文件類型錯(cuò)誤,拋異常/業(yè)務(wù)處理}
tufanbarisyildirim
加入composer
require : { tufanbarisyildirim/php-apk-parser : dev-master }
然后到項(xiàng)目路徑安裝一下,沒安裝composer就安裝composer或者直接從網(wǎng)上拉咯。
composer install
Parser解析apk
Parser位于 ApkParser目錄下,實(shí)例化時(shí)只需要傳入apk的全路徑名
$apkParser = new /ApkParser/Parser($file- getPathname());
以下為獲取apk中的參數(shù)
$apkParser- getManifest()- getPackageName(); //獲取apk包名$apkParser- getManifest()- getVersionCode(); //獲取apk版本號$apkParser- getManifest()- getVersionName(); //獲取apk版本名稱$apkParser- getManifest()- getMinSdk(); // 支持最低sdk的平臺$apkParser- getManifest()- getMinSdkLevel(); // 支持最低sdk的版本$apkParser- getManifest()- getTargetSdk(); // 目標(biāo)Sdk的平臺$apkParser- getManifest()- getTargetSdkLevel(); //目標(biāo)sdk的版本$labelIndex = $apkParser- getManifest()- getApplication()- getLabel(); //獲取應(yīng)用名稱的索引$apkParser- getResources($labelIndex); //獲取應(yīng)用名稱的數(shù)組$iconIndex = $apkParser- getManifest()- getApplication()- getIcon();//獲取圖標(biāo)的索引$icons = $apkParser- getResources($iconIndex); //獲取圖標(biāo)路徑的數(shù)組file_put_contents( 保存icon圖標(biāo)的全路徑名 , stream_get_contents($apkParser- getStream($icons[0]))); //把第1個(gè)圖標(biāo)轉(zhuǎn)為流后保存到相應(yīng)的目錄
個(gè)人使用這個(gè)控件時(shí)遇到點(diǎn)問題,就是應(yīng)用名稱數(shù)組,我怎么才能知道應(yīng)用名稱對應(yīng)的語言呢?因?yàn)閼?yīng)用名稱中可能有簡體中文、繁體中文、英文等。我怎么才能取出簡體中文的應(yīng)用名稱呢?
相關(guān)教程:PHP視頻教程
以上就是巧用ThinkPHP5.1和 tufanbarisyildirim 快速解析apk的詳細(xì)內(nèi)容,PHP教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選