php 获取apk,php读取apk包信息,提取应用图标

\S+)=)?\'(?P.*?)\'/', $value, $matches, PREG_SET_ORDER); foreach ($matches as $match) { if ($match['key']) { $lineana[$match['key']] = $match['value']; } else { $lineana[] = $match['value']; } } $apkInfo[$key][] = $lineana; } //checkRet会把上面读出来的配置整理一下 $ret = $this->checkRet($apkInfo); } catch (Exception $e) { echo $e->getMessage(); $ret = array(); } return $ret; } /** * 从Apk包中提取指定文件,并移到$toFile * * @param $apkFile apk文件 * @param $sourceFile apk文件中相应文件路径 * @param $toFile 输出文件 * @return bool */ function getFileFromApk($apkFile, $sourceFile, $toFile) { exec('unzip ' . $apkFile . ' $sourceFile -d /tmp', $out, $return); if (rename("/tmp/" . $sourceFile, $toFile)) { return true; } else { return false; } } /** * 辅助函数,处理Apk信息数组 * * @param $info * @return mixed */ function checkRet($info) { foreach ($info as $key => $lineana) { if (is_array($lineana)) { $info[$key] = $this->checkRet($lineana); if (count($info[$key]) == 1) { $info[$key] = current($info[$key]); } } else { } } return $info; }} 一段使用示例:getApkInfo($apk);var_dump($res);$packageName = $res['package']['name'];$appName = $res['application-label']; $android->getFileFromApk($apk,$res['application']['icon'],$iconFile);注意事项:1 运行该程序需要PHP有exec权限2 获取的apk包信息中,APP名称可能会有多国语言名称,ICON会有多种尺寸; 如果有需要,请自行根据需要修改,上面只介绍了使用默认信息.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值