溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用ThinkPHP5.1和 tufanbarisyildirim 快速解析apk

發(fā)布時間:2020-07-21 09:34:58 來源:億速云 閱讀:223 作者:Leah 欄目:編程語言

這篇文章運用簡單易懂的例子給大家介紹如何使用ThinkPHP5.1和 tufanbarisyildirim 快速解析apk,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

TP5獲取上傳文件并驗證

tp5獲取上傳文件可以說是相當(dāng)?shù)暮唵?,(注意此處?file的類型是tp5封裝的File)

$file = $this->request->file('file');

這樣就可以直接的獲取上傳的文件,簡單的蛋疼。

首先驗證文件是否上傳了并且是否為空。

if (false === ($file instanceof File)) {
  //文件為空,拋異常/業(yè)務(wù)處理}

然后就是驗證文件的類型了,apk的媒體信息其實就是zip,千萬不要使用后綴名進(jìn)行判斷啊。年輕的我就是用后綴進(jìn)行判斷的。

老司機看到就建議我使用getMime方法獲取文件的媒體進(jìn)行進(jìn)行匹配。(getMime屬于tp5 File的封裝方法)

if ('application/zip' !== $file->getMime()) {
  //文件類型錯誤,拋異常/業(yè)務(wù)處理}

tufanbarisyildirim

加入composer

"require": {        "tufanbarisyildirim/php-apk-parser":"dev-master"
    }

然后到項目路徑安裝一下,沒安裝composer就安裝composer或者直接從網(wǎng)上拉咯。

composer install

Parser解析apk

Parser位于 ApkParser目錄下,實例化時只需要傳入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個圖標(biāo)轉(zhuǎn)為流后保存到相應(yīng)的目錄


關(guān)于如何使用ThinkPHP5.1和 tufanbarisyildirim 快速解析apk就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI