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

这篇文章运用简单易懂的例子给大家介绍如何使用ThinkPHP5.1和 tufanbarisyildirim 快速解析apk,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

成都创新互联公司成立与2013年,先为惠农等服务建站,惠农等地企业,进行企业商务咨询服务。为惠农企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

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就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


新闻标题:如何使用ThinkPHP5.1和tufanbarisyildirim快速解析apk
链接分享:http://myzitong.com/article/jehjip.html