巧用ThinkPHP5.1和 tufanbarisyildirim 快速解析apk
发布:smiling 来源: PHP粉丝网 添加日期:2020-03-22 19:58:24 浏览: 评论:0
对于apk,我可以说只会安装,并不知道其中有什么内容需要记录下来。因为这类的项目完全没有接触过,而且网上搜一下也看不到这类的开发流程和需求。本文的主要内容是关于用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个图标转为流后保存到相应的目录
个人使用这个控件时遇到点问题,就是应用名称数组,我怎么才能知道应用名称对应的语言呢?因为应用名称中可能有简体中文、繁体中文、英文等。我怎么才能取出简体中文的应用名称呢?
Tags: ThinkPHP5 1 tufanbarisyildirim
相关文章
- ·ThinkPHP5.0版本和ThinkPHP3.2版本的区别(2018-11-02)
- ·thinkphp5的get和post数据封装的方法介绍(代码)(2019-12-25)
- ·thinkPHP5运行在nginx上的配置方法详解(2020-03-22)
- ·thinkPHP5实现的查询数据库并返回json数据实例(2021-08-15)
- ·thinkPHP5(TP5)实现改写跳转提示页面的方法(2021-08-16)
- ·ThinkPHP5邮件发送服务封装(可发附件)(2021-08-17)
- ·thinkPHP5 ajax提交表单操作实例分析(2021-08-17)
- ·ThinkPHP5联合(关联)查询、多条件查询与聚合查询实例详解(2021-08-17)
- ·ThinkPHP5查询数据及处理结果的方法小结(2021-08-17)
- ·thinkPHP5框架整合plupload实现图片批量上传功能的方法(2021-08-18)
- ·thinkPHP5框架渲染模板的3种方式简述(2021-08-18)
- ·Thinkphp5 微信公众号token验证不成功的原因及解决方法(2021-08-19)
- ·学习thinkphp5.0验证类使用方法(2021-08-19)
- ·thinkphp5.0自定义验证规则使用方法(2021-08-20)
- ·在云虚拟主机部署thinkphp5项目的步骤详解(2021-08-23)
- ·Thinkphp5行为使用方法汇总(2021-08-25)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)