巧用ThinkPHP5.1和 tufanbarisyildirim 快速解析apk
- little bottle 2019-04-20 17:48 3325浏览 转载
对于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个图标转为流后保存到相应的目录
个人使用这个控件时遇到点问题,就是应用名称数组,我怎么才能知道应用名称对应的语言呢?因为应用名称中可能有简体中文、繁体中文、英文等。我怎么才能取出简体中文的应用名称呢?
相关教程:PHP视频教程
php免费学习视频:立即学习
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!
声明:本文转载于:博客园,如有侵犯,请联系admin@php.cn删除
相关文章
查看更多- 欧易交易所网页版注册入口
- 币安Binance交易所官网登陆最新入口
- MEXC(抹茶)交易所官网下载地址是什么
- PHP怎么给图片添加滤镜_PHP应用各种图片滤镜效果
- CodeIgniter模型怎么创建_CodeIgniter模型创建与使用指南
- 配置php连接mssql的连接池_提升php连接mssql的并发效率
- PHP安全怎么保障_PHP常见安全漏洞与防护方法详解
- 如何在PHP中模拟一个无限递增的序列_PHP无限递增序列实现
- Yii2命令行工具怎么用_Yii2框架Console应用开发
- 如何在PHP框架中进行单元测试_PHP框架单元测试入门指南
- PHP实时输出在HTTP/2下有何变化_PHP HTTP/2实时输出新特性
- PHP如何实现进度条实时显示_PHP实时输出实现动态进度条
- PHPSocket编程怎么学_PHPSocket网络通信示例
- php图文教程
最新文章
查看更多- 中国正规的三大数字货币交易平台(2024国内三大虚拟币交易所)
- 币安Binance交易平台官网入口网址
- 欧易官方下载入口 2025欧易官方手机版下载入口
- PHP怎么给图片添加滤镜_PHP应用各种图片滤镜效果
- CodeIgniter模型怎么创建_CodeIgniter模型创建与使用指南
- 配置php连接mssql的连接池_提升php连接mssql的并发效率
- PHP安全怎么保障_PHP常见安全漏洞与防护方法详解
- 如何在PHP中模拟一个无限递增的序列_PHP无限递增序列实现
- Yii2命令行工具怎么用_Yii2框架Console应用开发
- 如何在PHP框架中进行单元测试_PHP框架单元测试入门指南
- PHP实时输出在HTTP/2下有何变化_PHP HTTP/2实时输出新特性
- PHP如何实现进度条实时显示_PHP实时输出实现动态进度条
- PHPSocket编程怎么学_PHPSocket网络通信示例
-
- 最新Python教程 从入门到精通
-
¥0
已抢1812个
抢
-
- Node.js 教程
-
¥0
已抢29871个
抢
-
-
-
-
- PostgreSQL 教程
-
¥0
已抢25402个
抢