exec 函数执行异常――应用:PHP提取apk的icon图标图片

WBOY
Freigeben: 2016-06-13 13:18:37
Original
981 Leute haben es durchsucht

exec 函数执行错误――应用:PHP提取apk的icon图标图片

作者:林子木 wolinxuebin

转载请保留:http://blog.csdn.net/wolinxuebin

 

  今天在做项目,从apk中读取图片icon信息。因为有大量的数据要读取,又因为现在自己测试的处理的都是windows环境,将数据处理完之后才上传到服务器,真心高了半天了。

   主要是做了两件事:1、读取apk的icon路径等信息 2、解压出该路径下的图片。

    直接上代码先:

<?php /**********************************
 * 作者:林子木
 * 功能:提取apk中的icon
 * 系统:windows
 */
	define("AAPTTOOL","c:/apktool/aapt");//aapt工具的路径
	define("UNZIP","E:/GnuWin32/bin/unzip.exe");//试了试winrar等,没成功,就用了unzip,而linux有自带这个的
		
    function getApkIcon($apk_file,$save_path){
    	
    	$aapt = AAPTTOOL;	//aapt工具的路径
    	exec("{$aapt} d badging {$apk_file}",$out,$return);//从apk中解除信息
    	//print_r('$out');		//可以查看输出信息
		if($return == 0){
			$str_out = implode("\n", $out);//分离信息
		}
    
		$pattern_icon = "/icon='(.+)'/isU";	//提取icon信息
		preg_match($pattern_icon, $str_out,$m);
		$info['icon']= $m[1];
		
		if($info['icon']){
			$command = UNZIP." -o -j {$apk_file} {$info['icon']} -d $save_path";
			exec($command);//解压
    	}
    }
 
    getApkIcon("c:/test.apk","c:/tmp/");

?>
Nach dem Login kopieren

用到的工具有:1、apktool  这个网上挺多的,还有安装教程,唯一麻烦是要在java环境下才能运行

                            2、unzip  :http://download.csdn.net/detail/wolinxuebin/4464939 测试了winrar不大能解压apk,可能因为我水平有限


这里再讲讲很重要的一点,exec运行出错

     今天本来我的软件是装在E:/Program Files/GnuWin32/ 下的 所以define的时候是

define("UNZIP","E:/Program Files/GnuWin32/bin/unzip.exe");
Nach dem Login kopieren
     但是始终运行没有结果,这个exec不会报错的

exec("{$aapt} d badging {$apk_file}",$out,$return);
Nach dem Login kopieren
  查看$return 始终是1 那么就是没有运行成功。

   而这命令在命令行里面是完全可以运行的。

   最后终于发现,exec()中的commod参数中的目录,不能包含空格,也就是Program Files 应该变为ProgramFiles才行,所以我就换了一个安装目录。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!