您好,登錄后才能下訂單哦!
這篇文章運用簡單易懂的例子給大家介紹如何使用ThinkPHP5.1和 tufanbarisyildirim 快速解析apk,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
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個圖標轉為流后保存到相應的目錄
關于如何使用ThinkPHP5.1和 tufanbarisyildirim 快速解析apk就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。