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