人人商城

up.func.php 5.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. <?php
  2. /**
  3. * [淘淘源码铺微擎系统 System] Copyright (c) 2018 www.330code.com
  4. */
  5. defined('IN_IA') or exit('Access Denied');
  6. function get_file($url,$name,$folder = './') {
  7. set_time_limit((240 * 60) * 3600);
  8. $destination_folder = $folder . '/';
  9. $newfname = $destination_folder.$name;
  10. $file = fopen($url, 'rb');
  11. if ($file) {
  12. $newf = fopen($newfname, 'wb');
  13. if ($newf) {
  14. while (!feof($file)) {
  15. fwrite($newf, fread($file, 1024 * 8), 1024 * 8);
  16. }
  17. }
  18. }
  19. if ($file) {
  20. fclose($file);
  21. }
  22. if ($newf) {
  23. fclose($newf);
  24. }
  25. return true;
  26. }
  27. function runquery($sql) {
  28. $file_path = $sql;
  29. if(file_exists($file_path)){
  30. if($fp=fopen($file_path,"a+")){
  31. $buffer=1024;
  32. $str="";
  33. while(!feof($fp)){
  34. $str.=fread($fp,$buffer);
  35. }
  36. }
  37. }
  38. $query = $str;
  39. pdo_run($query);
  40. }
  41. function deldir($dir) {
  42. $dh=opendir($dir);
  43. while ($file=readdir($dh)) {
  44. if($file!="." && $file!="..") {
  45. $fullpath=$dir."/".$file;
  46. if(!is_dir($fullpath)) {
  47. unlink($fullpath);
  48. } else {
  49. deldir($fullpath);
  50. }
  51. }
  52. }
  53. closedir($dh);
  54. if(rmdir($dir)) {
  55. return true;
  56. } else {
  57. return false;
  58. }
  59. }
  60. function my_scandir($dir){
  61. $files = array();
  62. $result = array();
  63. if(is_dir($dir))
  64. {
  65. if($handle=opendir($dir))
  66. {
  67. while(($file=readdir($handle))!==false)
  68. {
  69. if($file!="." && $file!=".." && $file!="addons" && $file!="cloud.mod.php" && $file!="data" && $file!="db.class.php")
  70. {
  71. if(is_dir($dir."/".$file))
  72. {
  73. $files[$file]=my_scandir($dir."/".$file);
  74. }
  75. else
  76. {
  77. $files[]=$dir."/".$file;
  78. }
  79. }
  80. }
  81. closedir($handle);
  82. array_walk_recursive($files, function($value) use (&$result) {
  83. array_push($result, $value);
  84. });
  85. return $result;
  86. }
  87. }
  88. }
  89. function to_md5($dir){
  90. $result = array();
  91. $dir = my_scandir($dir);
  92. foreach( $dir as $key){
  93. $result[$key] = md5_file($key);
  94. $dir['a'][$key] = $result[$key];
  95. }
  96. return array_unique(array_values($dir['a']));
  97. }
  98. function SendCurl($url,$data=array()){
  99. $url = str_replace(' ','',$url);
  100. $ch = curl_init();
  101. curl_setopt($ch, CURLOPT_URL, $url);
  102. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  103. curl_setopt($ch, CURLOPT_HEADER, 0);
  104. curl_setopt($ch,CURLOPT_TIMEOUT,60);
  105. //POST传递
  106. curl_setopt($ch, CURLOPT_POST, 1);
  107. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  108. $result = curl_exec($ch);
  109. $error = curl_errno($ch);
  110. curl_close($ch);
  111. if($error) {
  112. return false;
  113. }
  114. return json_decode($result,TRUE);
  115. }
  116. function down_f($zipurl,$updatedir,$lastver,$updatehost,$hosturl){
  117. $arr = array();
  118. $zipname = 'we7up.zip';
  119. $isgot = get_file($zipurl, $zipname, $updatedir);
  120. if($isgot){
  121. $updatezip = $updatedir.'/'.$zipname;
  122. require_once IA_ROOT.'/framework/library/phpexcel/PHPExcel/Shared/PCLZip/pclzip.lib.php';
  123. $thisfolder = new PclZip($updatezip);
  124. $isextract = $thisfolder->extract(PCLZIP_OPT_PATH, $updatedir);
  125. if ($isextract == 0) {
  126. return 22222;
  127. }
  128. SendCurl($updatehost.'?a=delete&u='.$hosturl,$arr);
  129. /*$archive = new PclZip($updatezip);
  130. $list = $archive->extract(PCLZIP_OPT_PATH, IA_ROOT, PCLZIP_OPT_REPLACE_NEWER);
  131. $newver = "<?php return array ('ver' => '$lastver');?>";
  132. $f = fopen(IA_ROOT.'/data/version.php','w+');
  133. fwrite($f,$newver);
  134. fclose($f);
  135. deldir($updatedir);
  136. die;*/
  137. }else{
  138. return 22222;
  139. }
  140. }
  141. function mkDirsc($dir){
  142. if(!is_dir($dir)){
  143. if(!mkDirsc(dirname($dir))){
  144. return false;
  145. }
  146. if(!mkdir($dir,0777)){
  147. return false;
  148. }
  149. @chmod($dir,0777);
  150. }
  151. return true;
  152. }
  153. function file_back($src, $bin, $des, $filter) {
  154. if(!is_dir($des)){
  155. @mkDirsc($des);
  156. }
  157. $content = base64_decode($bin);
  158. $filterdir = dirname($filter);
  159. $source = $src.$filter;
  160. if(is_file($source)){
  161. $backdat = get_newback($des);
  162. if(!is_dir($backdat.$filterdir)){
  163. @mkDirsc($backdat.$filterdir);
  164. }
  165. if(copy($source, $backdat.$filter)){
  166. if(!is_dir($src.$filterdir)){
  167. @mkDirsc($src.$filterdir);
  168. }
  169. $res = file_put_contents($source, $content, true);
  170. if(!$res){
  171. return 1111;
  172. }
  173. }else{
  174. return 1111;
  175. }
  176. }else{
  177. if(!is_dir($src.$filterdir)){
  178. @mkDirsc($src.$filterdir);
  179. }
  180. $res = file_put_contents($source, $content, true);
  181. if(!$res){
  182. return 1111;
  183. }
  184. }
  185. }
  186. function get_newback($des) {
  187. $path = glob($des.'/*/');
  188. $path = implode('',$path);
  189. $path = str_replace($des.'/','', $path);
  190. $path = explode('/',$path);
  191. rsort($path,1);
  192. return $des.'/'.$path[0];
  193. }
  194. function to_arr($arr) {
  195. $result = array();
  196. array_walk_recursive($arr, function($value) use (&$result) {
  197. array_push($result, $value);
  198. });
  199. return $result;
  200. }
  201. function del_key($res) {
  202. foreach($res as $key => $val){
  203. $res['a'][$key] = array_values($val);
  204. }
  205. return $res['a'];
  206. }