thinkphp利用ZipArchive獲取zip中的apk信息

1.獲取apk

/*
 獲取zip文件中的apk文件
 $zip_path  zip路徑
*/
function get_apk_path($zip_path){
	$zip = new \ZipArchive;
	if ($zip->open($zip_path) === true) {
		$num = $zip->numFiles;
	    for($i = 0; $i < $num; $i++) {
	        $apk_name = $zip->getNameIndex($i);
	        $apk_info = pathinfo($apk_name);
	        $exts = strtolower($apk_info["extension"]);
	        if($exts == 'apk'){
	        	$apk_path_file = C('UPLOAD_PATH').'apk/';
	        	$res = $zip->extractTo($apk_path_file, array($apk_name));
	        	if($res){
	        		$zip->close();
	        		if($filename = getUploadsDir('apk')){
						$save_name = uniqid();
						//獲取後綴
						$apk_path = $filename.'/'.$save_name.'.'.$exts;
			       		if(copy($apk_path_file.$apk_name, $apk_path_file.$apk_path)){
							return $apk_path;
						}
					}
	        	}else{
	        		return false;
	        	}
	    	} 
	    }                 
	    $zip->close();                   
	}
	return false;
}


2.利用ApkParser類獲取apk基本信息

/*
 解析apk並獲取信息
 $apk_path  apk路徑
*/
function apk_parser($apk_path){
<span style="white-space:pre">	</span>Vendor('Apk.ApkParser'); 
<span style="white-space:pre">	</span>$appObj  = new \ApkParser();  

<span style="white-space:pre">	</span>//apk所在的路徑地址 
<span style="white-space:pre">	</span>$res = $appObj->open($apk_path); 
<span style="white-space:pre">	</span>$data['app_name']=$appObj->getAppName();     // 應用名稱 
<span style="white-space:pre">	</span>$data['package_name']=$appObj->getPackage();    // 應用包名 
<span style="white-space:pre">	</span>$data['version_name']=$appObj->getVersionName();  // 版本名稱 
<span style="white-space:pre">	</span>$data['version_code']=$appObj->getVersionCode();  // 版本代碼 
<span style="white-space:pre">	</span>return $data;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章