ホームページ  >  記事  >  バックエンド開発  >  ThinkPHP5.1 と tufanbarisyildirim を上手に使って apk を素早く分析する

ThinkPHP5.1 と tufanbarisyildirim を上手に使って apk を素早く分析する

little bottle
little bottle転載
2019-04-20 17:48:283132ブラウズ

apk については、インストールするだけと言えますが、どのようなコンテンツを記録する必要があるかはわかりません。なぜなら、私はこの種のプロジェクトに携わったことがなく、オンラインで検索してもこの種の開発プロセスや要件を見つけることができないからです。この記事の主な内容は、ThinkPHP5.1 と tufanbarisyildirim を使用して APK を解析することです。興味のある友人は、それについて学びに来てください。

TP5 アップロードされたファイルを取得し、それを検証します

TP5 アップロードされたファイルを取得します。これは非常に単純であると言えます (型に注意してください)これは tp5 でカプセル化されたファイルです)


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

この方法で、アップロードされたファイルを直接取得できます。これは非常に簡単です。

最初に、ファイルがアップロードされているかどうか、およびファイルが空であるかどうかを確認します。


if (false === ($file instanceof File)) {
  //文件为空,抛异常/业务处理}

次のステップはファイルの種類を確認することです。APK のメディア情報は実際には zip です。接尾辞名を判断に使用しないでください。若い頃は接尾辞を使って判断していました。

ベテラン ドライバーは、getMime メソッドを使用して、照合するファイルのメディアを取得することを提案しました。 (getMime は tp5 ファイルのカプセル化メソッドに属します)


if ('application/zip' !== $file->getMime()) {
  //文件类型错误,抛异常/业务处理}

tufanbarisyildirim

composer に参加


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

次に、プロジェクト パスに移動してインストールします。composer がインストールされていない場合は、composer をインストールするか、インターネットから直接取得します。


composer install

パーサーは apk を解析します

パーサーは次の場所にあります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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。