function_common.php 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190
  1. <?php
  2. class iFile
  3. {
  4. protected $Fp;
  5. protected $File;
  6. protected $OpenMode;
  7. function __construct($File, $Mode)
  8. {
  9. $this->File = $File;
  10. $this->OpenMode = $Mode;
  11. $this->OpenFile();
  12. }
  13. private function OpenFile()
  14. {
  15. $this->Fp = fopen($this->File, $this->OpenMode);
  16. }
  17. private function CloseFile()
  18. {
  19. fclose($this->Fp);
  20. }
  21. public function WriteFile($Data4Write, $Mode)
  22. {
  23. flock($this->Fp, $Mode);
  24. fwrite($this->Fp, $Data4Write);
  25. $this->CloseFile();
  26. }
  27. }
  28. spl_autoload_register("myautoload");
  29. function downloadFile($filename, $rename = '')
  30. {
  31. if (is_file($filename)) {
  32. $rename = $rename ?: basename($filename);
  33. $_var_0 = filesize($filename);
  34. $_var_1 = fopen($filename, "rb");
  35. header("Content-type: application/octet-stream");
  36. header("Accept-Ranges: bytes");
  37. header("Accept-Length: " . $_var_0);
  38. header("Content-Disposition: attachment; filename=" . $rename);
  39. echo fread($_var_1, $_var_0);
  40. fclose($_var_1);
  41. } else {
  42. header("HTTP/1.1 404 NOT FOUND");
  43. exit("file not exists");
  44. }
  45. exit;
  46. }
  47. function certMoveToNew($_var_2)
  48. {
  49. $_var_3 = bees_encrypt($_var_2["iss"]) . "/" . $_var_2["iss"];
  50. @rename(IN_CERT_PATH . $_var_2["iss"], IN_CERT_PATH . bees_encrypt($_var_2["iss"]));
  51. foreach (["cer", "p8", "p12", "pem"] as $_var_4) {
  52. $_var_5 = getCert($_var_2["iss"], $_var_2["kid"], $_var_4);
  53. @rename(IN_CERT_PATH . $_var_3 . "." . $_var_4, IN_CERT_PATH . $_var_5);
  54. }
  55. }
  56. function getCert($iss, $kid, $type = 'p8')
  57. {
  58. return bees_encrypt($iss) . "/" . bees_encrypt($kid) . "." . $type;
  59. }
  60. function get_user_in_filesize($_var_6, $_var_7 = false)
  61. {
  62. $_var_6 = is_numeric($_var_6) ? db("user")->where("in_userid", $_var_6)->find() : $_var_6;
  63. $_var_8 = [IN_UPSIZE, IN_PVIPUPLOAD, IN_IVIPUPLOAD, IN_SVIPUPLOAD];
  64. $_var_6["in_filesize"] += $_var_8[$_var_6["in_svip"]] * 1048576;
  65. return $_var_7 ? formatsize($_var_6["in_filesize"]) : $_var_6["in_filesize"];
  66. }
  67. function get_user_in_spacetotal($user, $formatsize = false)
  68. {
  69. $user = is_numeric($user) ? db("user")->where("in_userid", $user)->find() : $user;
  70. $_var_9 = [IN_REGSPACE, IN_PVIPCAPACITY, IN_IVIPCAPACITY, IN_SVIPCAPACITY];
  71. $user["in_spacetotal"] += $_var_9[$user["in_svip"]] * 1048576;
  72. return $formatsize ? formatsize($user["in_spacetotal"]) : $user["in_spacetotal"];
  73. }
  74. function app_file_exists($_var_10)
  75. {
  76. if ($_var_10["in_form"] == "iOS" && $_var_10["in_sign_type"] == 1 && IN_SIGNMETHOD) {
  77. $_var_11 = db("sign")->where("in_aid", $_var_10["in_id"])->value("api_aid");
  78. if ($_var_11) {
  79. return $_var_11;
  80. }
  81. $_var_12 = http_build_query(["site" => $_SERVER["HTTP_HOST"], "secret" => IN_SECRET, "site_aid" => $_var_10["in_id"], "site_uid" => $_var_10["in_uid"]]);
  82. $_var_13 = IN_API . "/open/apps/get?" . $_var_12;
  83. $_var_14 = file_get_contents($_var_13);
  84. return $_var_14;
  85. }
  86. return is_file(IN_ATTACHMENT_PATH . $_var_10["in_app"]);
  87. }
  88. function getDeduct($_var_15, $_var_16 = false)
  89. {
  90. $_var_17 = json_decode(IN_POINTSRULE, true);
  91. if ($_var_15 >= 1 && $_var_15 <= 52428800) {
  92. $_var_18 = $_var_17[0];
  93. } elseif ($_var_15 > 52428800 && $_var_15 <= 104857600) {
  94. $_var_18 = $_var_17[1];
  95. } elseif ($_var_15 > 104857600 && $_var_15 <= 314572800) {
  96. $_var_18 = $_var_17[2];
  97. } elseif ($_var_15 > 314572800 && $_var_15 <= 629145600) {
  98. $_var_18 = $_var_17[3];
  99. } elseif ($_var_15 > 629145600 && $_var_15 <= 1073741824) {
  100. $_var_18 = $_var_17[4];
  101. } elseif ($_var_15 > 1073741824 && $_var_15 <= 1.5 * 1024 * 1024 * 1024) {
  102. $_var_18 = $_var_17[5];
  103. } elseif ($_var_15 > 1.5 * 1024 * 1024 * 1024) {
  104. $_var_18 = $_var_17[6];
  105. }
  106. if ($_var_16) {
  107. $_var_18 = $_var_18 * IN_CDNPOINTS;
  108. }
  109. return $_var_18;
  110. }
  111. function isAJax()
  112. {
  113. if (isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"]) == "xmlhttprequest") {
  114. return true;
  115. } else {
  116. return false;
  117. }
  118. }
  119. function aclog_save($_var_19, $_var_20, $_var_21, $_var_22, $_var_23 = '')
  120. {
  121. $_var_23 = $_var_23 ? $_var_23 : "管理员" . ($_var_20 > $_var_21 ? "添加" : "扣除");
  122. $_var_24 = ["user_id" => $_var_19, "type" => $_var_22, "value" => $_var_20 - $_var_21, "after_value" => $_var_20, "before_value" => $_var_21, "note" => $_var_23, "create_time" => time()];
  123. if ($_var_20 - $_var_21 > 0) {
  124. db("user_recharge")->insert($_var_24);
  125. }
  126. return db("user_aclog")->insert($_var_24);
  127. }
  128. function changeAc($_var_25, $_var_26, $_var_27, $_var_28 = '')
  129. {
  130. if ($_var_25 && $_var_26) {
  131. $_var_26 = is_numeric($_var_26) ? db("user")->where("in_userid", $_var_26)->find() : $_var_26;
  132. if ($_var_26[$_var_27] + $_var_25 >= 0) {
  133. $_var_28 = $_var_28 ?: "管理员" . ($_var_25 > 0 ? "添加" : "扣除");
  134. $_var_29 = ["user_id" => $_var_26["in_userid"], "type" => $_var_27, "before_value" => $_var_26[$_var_27], "value" => $_var_25, "after_value" => $_var_26[$_var_27] + $_var_25, "note" => $_var_28, "create_time" => time()];
  135. if ($_var_25 > 0) {
  136. db("user_recharge")->insert($_var_29);
  137. }
  138. $_var_30 = db("user_aclog")->insert($_var_29);
  139. return $_var_30 && db("user")->where("in_userid", $_var_26["in_userid"])->inc($_var_27, $_var_25)->update();
  140. }
  141. }
  142. return false;
  143. }
  144. function dump()
  145. {
  146. echo "<pre>";
  147. var_dump(...func_get_args());
  148. echo "</pre>";
  149. }
  150. function halt()
  151. {
  152. dump(...func_get_args());
  153. exit;
  154. }
  155. function get_site_url($_var_31 = '')
  156. {
  157. $_var_32 = $_SERVER["HTTP_HOST"];
  158. $_var_33 = is_ssl() || $_var_31 == "s" ? "https://" : "http://";
  159. return $_var_33 . $_var_32;
  160. }
  161. function creatLink($id = 0)
  162. {
  163. $_var_34 = Randomstr();
  164. $_var_35 = db("appid")->where("in_link", $_var_34)->where("in_id", "<>", $id)->count();
  165. if ($_var_35) {
  166. return creatLink($id);
  167. }
  168. return $_var_34;
  169. }
  170. function promote_code($_var_36 = 0)
  171. {
  172. $_var_37 = Randomstr(8);
  173. $_var_38 = db("user")->where("promote_code", $_var_37)->where("in_userid", "<>", $_var_36)->count();
  174. if ($_var_38) {
  175. return promote_code($_var_36);
  176. }
  177. return $_var_37;
  178. }
  179. function Randomstr($length = 6, $type = 'string', $convert = -1)
  180. {
  181. $_var_39 = array("number" => "1234567890", "letter" => "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", "string" => "abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789", "all" => "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");
  182. if (!isset($_var_39[$type])) {
  183. $type = "string";
  184. }
  185. $_var_40 = $_var_39[$type];
  186. $_var_41 = "";
  187. $_var_42 = strlen($_var_40) - 1;
  188. for ($_var_43 = 0; $_var_43 < $length; $_var_43++) {
  189. $_var_41 .= $_var_40[mt_rand(0, $_var_42)];
  190. }
  191. if (!empty($convert)) {
  192. $_var_41 = $convert > 0 ? strtoupper($_var_41) : strtolower($_var_41);
  193. }
  194. return $_var_41;
  195. }
  196. function getTopDomainhuo()
  197. {
  198. $_var_44 = $_SERVER["HTTP_HOST"];
  199. $_var_45 = explode(".", $_var_44);
  200. $_var_46 = count($_var_45);
  201. $_var_47 = true;
  202. $_var_48 = "com.cn,net.cn,org.cn,gov.cn";
  203. $_var_48 = explode(",", $_var_48);
  204. foreach ($_var_48 as $_var_49) {
  205. if (strpos($_var_44, $_var_49)) {
  206. $_var_47 = false;
  207. }
  208. }
  209. if ($_var_47 == true) {
  210. $_var_49 = $_var_45[$_var_46 - 2] . "." . $_var_45[$_var_46 - 1];
  211. } else {
  212. $_var_49 = $_var_45[$_var_46 - 3] . "." . $_var_45[$_var_46 - 2] . "." . $_var_45[$_var_46 - 1];
  213. }
  214. return $_var_49;
  215. }
  216. function base62($x)
  217. {
  218. $_var_50 = "";
  219. while ($x > 0) {
  220. $_var_51 = $x % 62;
  221. if ($_var_51 > 35) {
  222. $_var_51 = chr($_var_51 + 61);
  223. } elseif ($_var_51 > 9 && $_var_51 <= 35) {
  224. $_var_51 = chr($_var_51 + 55);
  225. }
  226. $_var_50 .= $_var_51;
  227. $x = floor($x / 62);
  228. }
  229. return $_var_50;
  230. }
  231. function urlShort($url)
  232. {
  233. $url = crc32($url);
  234. $_var_52 = sprintf("%u", $url);
  235. return base62($_var_52);
  236. }
  237. function getlink($id, $super = false)
  238. {
  239. $_var_53 = db("appid")->where("in_id", $id)->find();
  240. if (!$_var_53["in_link"]) {
  241. $_var_54 = creatLink($id);
  242. !db("appid")->where("in_id", $id)->update(["in_link" => $_var_54]) && ($_var_54 = "");
  243. } else {
  244. $_var_54 = $_var_53["in_link"];
  245. }
  246. if (IN_CNAME && ($_var_55 = db("app_domain")->where("uid", $_var_53["in_uid"])->order("id desc")->value("domain"))) {
  247. } else {
  248. $_var_55 = IN_TZDOMAIN ?: $_SERVER["HTTP_HOST"];
  249. }
  250. $_var_56 = "http://" . $_var_55 . IN_PATH;
  251. $_var_54 = $super ? $_var_54 . "/s" : $_var_54;
  252. $_var_57 = IN_REWRITE && $_var_54 ? $_var_56 . $_var_54 : $_var_56 . auth_codes($id);
  253. return is_ssl() ? str_replace("http://", "https://", $_var_57) : $_var_57;
  254. }
  255. function geticon($file, $type = 'app')
  256. {
  257. $file = "http://" . $_SERVER["HTTP_HOST"] . IN_PATH . "data/image/" . $type . "/" . $file;
  258. return is_ssl() ? str_replace("http://", "https://", $file . "?v=" . time()) : $file . "?v=" . time();
  259. }
  260. function getapp($_var_58, $_var_59 = 0)
  261. {
  262. $_var_60 = is_numeric($_var_58) ? db("appid")->field("in_id,remote,in_app,in_originalName")->where("in_id", $_var_58)->find() : $_var_58;
  263. if ($_var_59) {
  264. if (!$_var_60["remote"]) {
  265. $_var_61 = "http://" . $_SERVER["HTTP_HOST"] . IN_PATH . "data/attachment/" . $_var_60["in_app"];
  266. $_var_61 = is_ssl() ? str_replace("http://", "https://", $_var_61) : $_var_61;
  267. } else {
  268. $_var_62 = $_var_60["in_form"] == "Android" ? "?attname=" . $_var_60["in_originalName"] : "";
  269. $_var_61 = getremoteurl($_var_60["in_app"] . $_var_62, $_var_60["remote"]);
  270. }
  271. return $_var_61;
  272. } else {
  273. return $_var_60["remote"] ? true : false;
  274. }
  275. }
  276. function getapp_history($id, $type = 0)
  277. {
  278. $_var_63 = db("app")->field("in_id,remote,in_app,in_originalName")->where("in_id", $id)->find();
  279. if ($type) {
  280. if (!$_var_63["remote"]) {
  281. $_var_64 = "http://" . $_SERVER["HTTP_HOST"] . IN_PATH . "download/app/" . bees_encrypt($_var_63["in_id"] . ".app." . time());
  282. $_var_64 = is_ssl() ? str_replace("http://", "https://", $_var_64) : $_var_64;
  283. } else {
  284. $_var_64 = getremoteurl($_var_63["in_app"] . "?attname=" . $_var_63["in_originalName"], $_var_63["remote"]);
  285. }
  286. return $_var_64;
  287. } else {
  288. return $_var_63["remote"] ? true : false;
  289. }
  290. }
  291. function getverify($_var_65, $_var_66, $_var_67 = 0)
  292. {
  293. if ($_var_67) {
  294. $_var_68 = "http://" . $_SERVER["HTTP_HOST"] . IN_PATH . "data/attachment/avatar/" . $_var_65 . "-" . $_var_66 . ".jpg?v=" . time();
  295. return is_ssl() ? str_replace("http://", "https://", $_var_68) : $_var_68;
  296. } else {
  297. return is_file(IN_ATTACHMENT_PATH . "avatar/" . $_var_65 . "-" . $_var_66 . ".jpg") ? true : false;
  298. }
  299. }
  300. function getavatar($_var_69)
  301. {
  302. if (is_file(IN_ATTACHMENT_PATH . "avatar/" . $_var_69 . ".jpg")) {
  303. $_var_70 = "http://" . $_SERVER["HTTP_HOST"] . IN_PATH . "data/attachment/avatar/" . $_var_69 . ".jpg?v=" . time();
  304. } else {
  305. $_var_70 = "http://" . $_SERVER["HTTP_HOST"] . IN_PATH . "static/index/image/avatar.jpg";
  306. }
  307. return is_ssl() ? str_replace("http://", "https://", $_var_70) : $_var_70;
  308. }
  309. function formatsize($_var_71)
  310. {
  311. $_var_72 = 3;
  312. $_var_71 = round(abs($_var_71));
  313. $_var_73 = array(0 => " B", 1 => " KB", 2 => " MB", 3 => " GB", 4 => " TB");
  314. if ($_var_71 == 0) {
  315. return str_repeat(" ", $_var_72) . "0" . $_var_73[0];
  316. }
  317. $_var_74 = min(4, floor(log($_var_71) / log(2) / 10));
  318. $_var_71 = $_var_71 * pow(2, -10 * $_var_74);
  319. $_var_75 = $_var_72 - 1 - floor(log($_var_71) / log(10));
  320. $_var_71 = round($_var_71 * pow(10, $_var_75)) * pow(10, -$_var_75);
  321. return $_var_71 . $_var_73[$_var_74];
  322. }
  323. function fileext($file)
  324. {
  325. return strtolower(trim(substr(strrchr($file, "."), 1)));
  326. }
  327. function tname($name)
  328. {
  329. return IN_DBTABLE . $name;
  330. }
  331. function convert_charset($_var_76, $_var_77 = 0)
  332. {
  333. if ($_var_77 == 1) {
  334. return IN_CHARSET == "gbk" ? iconv("UTF-8", "GBK//IGNORE", $_var_76) : $_var_76;
  335. } else {
  336. return IN_CHARSET == "gbk" ? iconv("GBK", "UTF-8//IGNORE", $_var_76) : $_var_76;
  337. }
  338. }
  339. function set_chars()
  340. {
  341. return IN_CHARSET == "gbk" ? "GB2312" : "UTF-8";
  342. }
  343. function SafeSql($value)
  344. {
  345. return htmlspecialchars(str_replace("\\", "", $value), ENT_QUOTES, set_chars(), false);
  346. }
  347. function detect_encoding($str)
  348. {
  349. $_var_78 = NULL;
  350. $_var_79 = array("GBK", "UTF-8");
  351. foreach ($_var_79 as $_var_80) {
  352. $_var_81 = mb_convert_encoding($str, $_var_80, $_var_80);
  353. if (md5($_var_81) == md5($str)) {
  354. $_var_78 = $_var_80;
  355. }
  356. }
  357. return strtolower($_var_78) !== IN_CHARSET ? iconv($_var_78, strtoupper(IN_CHARSET) . "//IGNORE", $str) : $str;
  358. }
  359. function is_utf8($_var_82)
  360. {
  361. if (IN_CHARSET == "utf-8") {
  362. return detect_encoding($_var_82);
  363. } else {
  364. if (preg_match("%^(?:[\\x09\\x0A\\x0D\\x20-\\x7E] | [\\xC2-\\xDF][\\x80-\\xBF] | \\xE0[\\xA0-\\xBF][\\x80-\\xBF] | [\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2} | \\xED[\\x80-\\x9F][\\x80-\\xBF] | \\xF0[\\x90-\\xBF][\\x80-\\xBF]{2} | [\\xF1-\\xF3][\\x80-\\xBF]{3} | \\xF4[\\x80-\\x8F][\\x80-\\xBF]{2})*\$%xs", $_var_82)) {
  365. return iconv("UTF-8", "GBK//IGNORE", $_var_82);
  366. } else {
  367. return $_var_82;
  368. }
  369. }
  370. }
  371. function unescape($_var_83)
  372. {
  373. $_var_84 = PHP_OS == "Linux" ? "UCS-2BE" : "UCS-2";
  374. $_var_83 = rawurldecode($_var_83);
  375. preg_match_all("/%u.{4}|&#x.{4};|&#d+;|.+/U", $_var_83, $_var_85);
  376. $_var_86 = $_var_85[0];
  377. foreach ($_var_86 as $_var_87 => $_var_88) {
  378. if (substr($_var_88, 0, 2) == "%u") {
  379. $_var_86[$_var_87] = iconv($_var_84, strtoupper(IN_CHARSET) . "//IGNORE", pack("H4", substr($_var_88, -4)));
  380. } elseif (substr($_var_88, 0, 3) == "&#x") {
  381. $_var_86[$_var_87] = iconv($_var_84, strtoupper(IN_CHARSET) . "//IGNORE", pack("H4", substr($_var_88, 3, -1)));
  382. } elseif (substr($_var_88, 0, 2) == "&#") {
  383. $_var_86[$_var_87] = iconv($_var_84, strtoupper(IN_CHARSET) . "//IGNORE", pack("H4", substr($_var_88, 2, -1)));
  384. }
  385. }
  386. return SafeSql(join("", $_var_86));
  387. }
  388. function SafeRequest($key, $mode = 'post', $type = 0)
  389. {
  390. $_var_89 = [];
  391. switch ($mode) {
  392. case "post":
  393. $_var_89 = $_POST;
  394. break 1;
  395. case "get":
  396. $_var_89 = $_GET;
  397. break 1;
  398. }
  399. return isset($_var_89[$key]) ? SafeFilter($_var_89[$key], $type) : null;
  400. }
  401. function SafeFilter($var, $type = 0)
  402. {
  403. if (is_array($var)) {
  404. foreach ($var as $_var_90 => $_var_91) {
  405. $var[$_var_90] = SafeFilter($_var_91);
  406. }
  407. return $var;
  408. } else {
  409. if ($type) {
  410. return $var;
  411. }
  412. $_var_92 = isset($var) ? addslashes(trim($var)) : NULL;
  413. return $type ? $_var_92 : htmlspecialchars(str_replace("\\" . "\\", "", $_var_92), ENT_QUOTES, set_chars(), false);
  414. }
  415. }
  416. function RequestBox($_var_93)
  417. {
  418. $_var_94 = isset($_POST[$_var_93]) ? $_POST[$_var_93] : NULL;
  419. if (empty($_var_94)) {
  420. $_var_95 = 0;
  421. } else {
  422. for ($_var_96 = 0; $_var_96 < count($_var_94); $_var_96++) {
  423. $_var_97[] = intval($_var_94[$_var_96]);
  424. }
  425. $_var_95 = implode(",", $_var_97);
  426. }
  427. return $_var_95;
  428. }
  429. function creatdir($dir)
  430. {
  431. if (!is_dir($dir)) {
  432. @mkdir($dir, 0777, true);
  433. }
  434. }
  435. function is_empty_dir($dir)
  436. {
  437. if ($dir && is_dir($dir)) {
  438. $_var_98 = array_diff(scandir($dir), array("..", "."));
  439. return !count($_var_98);
  440. }
  441. return true;
  442. }
  443. function destroyDir($dir, $oc = 0)
  444. {
  445. $_var_99 = DIRECTORY_SEPARATOR;
  446. $dir = substr($dir, -1) == $_var_99 ? substr($dir, 0, -1) : $dir;
  447. if (is_dir($dir) && ($_var_100 = opendir($dir))) {
  448. while ($_var_101 = readdir($_var_100)) {
  449. if ($_var_101 == "." || $_var_101 == "..") {
  450. continue 1;
  451. } elseif (is_dir($dir . $_var_99 . $_var_101)) {
  452. destroyDir($dir . $_var_99 . $_var_101);
  453. } else {
  454. unlink($dir . $_var_99 . $_var_101);
  455. }
  456. }
  457. closedir($_var_100);
  458. if (!$oc) {
  459. rmdir($dir);
  460. }
  461. }
  462. }
  463. function lightnum($_var_102, $_var_103 = true)
  464. {
  465. $_var_103 = $_var_103 === true ? [$_var_102] : (is_array($_var_103) ? $_var_103 : [$_var_103]);
  466. foreach ($_var_103 as $_var_104) {
  467. $_var_102 = str_replace($_var_104, "<em class=\"lightnum\">" . $_var_104 . "</em>", $_var_102);
  468. }
  469. return $_var_102;
  470. }
  471. function path_info()
  472. {
  473. $_var_105 = isset($_SERVER["PATH_INFO"]) ? $_SERVER["PATH_INFO"] : "";
  474. $_var_106 = explode("/", $_var_105);
  475. return [isset($_var_106[1]) ? $_var_106[1] : "index", isset($_var_106[2]) ? $_var_106[2] : "index", isset($_var_106[3]) ? $_var_106[3] : "index"];
  476. }
  477. function password($val)
  478. {
  479. return substr(md5($val), 8, 16);
  480. }
  481. function mFile_put_contents($_var_107, $_var_108, $_var_109 = 0, $_var_110 = null)
  482. {
  483. creatdir(dirname($_var_107));
  484. return file_put_contents($_var_107, $_var_108, $_var_109, $_var_110);
  485. }
  486. function characet($_var_111)
  487. {
  488. if (!empty($_var_111)) {
  489. $_var_112 = mb_detect_encoding($_var_111, array("UTF-8", "GBK", "LATIN1", "BIG5"));
  490. if ($_var_112 != "UTF-8") {
  491. $_var_111 = mb_convert_encoding($_var_111, "utf-8", $_var_112);
  492. }
  493. }
  494. return $_var_111;
  495. }
  496. function isAdminLogin()
  497. {
  498. return !(empty($_COOKIE["in_adminid"]) || empty($_COOKIE["in_adminname"]) || empty($_COOKIE["in_adminpassword"]) || empty($_COOKIE["in_permission"]) || empty($_COOKIE["in_adminexpire"]) || !db("admin")->where("in_adminid", intval($_COOKIE["in_adminid"]))->where("in_adminpassword", $_COOKIE["in_adminpassword"])->count());
  499. }
  500. function isEmail($email)
  501. {
  502. return filter_var($email, FILTER_VALIDATE_EMAIL);
  503. }
  504. function isPhone($_var_113)
  505. {
  506. if (strlen($_var_113) != 11 || !preg_match("/^1[3-9][0-9]\\d{4,8}\$/", $_var_113)) {
  507. return false;
  508. } else {
  509. return true;
  510. }
  511. }
  512. function redirect($url = '/', $code = '')
  513. {
  514. if ($code == 301) {
  515. header("HTTP/1.1 301 Moved Permanently");
  516. }
  517. exit(header("location:" . $url));
  518. }
  519. function image_crop($_var_114, $_var_115, $_var_116, $_var_117)
  520. {
  521. list($_var_118, $_var_119, $_var_120) = getimagesize($_var_116);
  522. switch ($_var_120) {
  523. case IMAGETYPE_GIF:
  524. $_var_121 = imagecreatefromgif($_var_116);
  525. break 1;
  526. case IMAGETYPE_JPEG:
  527. $_var_121 = imagecreatefromjpeg($_var_116);
  528. break 1;
  529. default:
  530. $_var_121 = imagecreatefrompng($_var_116);
  531. break 1;
  532. }
  533. $_var_122 = imagecreatetruecolor($_var_114, $_var_115);
  534. $_var_123 = imagecolorallocatealpha($_var_122, 255, 255, 255, 0);
  535. imagefill($_var_122, 0, 0, $_var_123);
  536. imagecolortransparent($_var_122, $_var_123);
  537. $_var_124 = 1.0 * $_var_114 / $_var_118;
  538. $_var_125 = 1.0 * $_var_115 / $_var_119;
  539. $_var_126 = $_var_124 < $_var_125 ? $_var_125 : $_var_124;
  540. $_var_127 = (int) ($_var_114 / $_var_126);
  541. $_var_128 = (int) ($_var_115 / $_var_126);
  542. $_var_129 = imagecreatetruecolor($_var_127, $_var_128);
  543. $_var_130 = imagecolorallocate($_var_129, 255, 255, 255);
  544. imagecolortransparent($_var_129, $_var_130);
  545. imagefill($_var_129, 0, 0, $_var_130);
  546. $_var_131 = (int) (($_var_118 - $_var_127) / 2);
  547. $_var_132 = (int) (($_var_119 - $_var_128) / 2);
  548. imagecopy($_var_129, $_var_121, 0, 0, $_var_131, $_var_132, $_var_127, $_var_128);
  549. imagecopyresampled($_var_122, $_var_129, 0, 0, 0, 0, $_var_114, $_var_115, $_var_127, $_var_128);
  550. imagedestroy($_var_129);
  551. imagesavealpha($_var_122, true);
  552. imagepng($_var_122, $_var_117);
  553. imagedestroy($_var_121);
  554. imagedestroy($_var_122);
  555. }
  556. function checkmobile()
  557. {
  558. $_var_133 = array("iphone", "ipad", "ipod", "android", "phone", "mobile", "wap", "netfront", "java", "opera mobi", "opera mini", "ucweb", "windows ce", "symbian", "series", "webos", "sony", "blackberry", "dopod", "nokia", "samsung", "palmsource", "xda", "pieplus", "meizu", "midp", "cldc", "motorola", "foma", "docomo", "up.browser", "up.link", "blazer", "helio", "hosin", "huawei", "novarra", "coolpad", "webos", "techfaith", "palmsource", "alcatel", "amoi", "ktouch", "nexian", "ericsson", "philips", "sagem", "wellcom", "bunjalloo", "maui", "smartphone", "iemobile", "spice", "bird", "zte-", "longcos", "pantech", "gionee", "portalmmm", "jig browser", "hiptop", "benq", "haier", "^lct", "320x320", "240x320", "176x220", "windows phone");
  559. $_var_134 = array("cect", "compal", "ctl", "lg", "nec", "tcl", "alcatel", "ericsson", "bird", "daxian", "dbtel", "eastcom", "pantech", "dopod", "philips", "haier", "konka", "kejian", "lenovo", "benq", "mot", "soutec", "nokia", "sagem", "sgh", "sed", "capitel", "panasonic", "sonyericsson", "sharp", "amoi", "panda", "zte");
  560. $_var_135 = array("micromessenger");
  561. if (dstrpos($_SERVER["HTTP_USER_AGENT"], $_var_133)) {
  562. return true;
  563. } elseif (dstrpos($_SERVER["HTTP_USER_AGENT"], $_var_134)) {
  564. return true;
  565. } elseif (dstrpos($_SERVER["HTTP_USER_AGENT"], $_var_135)) {
  566. return true;
  567. } else {
  568. return false;
  569. }
  570. }
  571. function dstrpos($string, $arr)
  572. {
  573. if (!empty($string)) {
  574. foreach ((array) $arr as $_var_136) {
  575. if (strpos(strtolower($string), $_var_136) !== false) {
  576. return true;
  577. }
  578. }
  579. }
  580. return false;
  581. }
  582. function html_message($_var_137, $_var_138, $_var_139 = '')
  583. {
  584. return "<html lang=\"\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=" . IN_CHARSET . "\" /><title>站点提示</title></head><body bgcolor=\"#FFFFFF\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"850\" align=\"center\" height=\"85%\"><tr align=\"center\" valign=\"middle\"><td><table cellpadding=\"20\" cellspacing=\"0\" border=\"0\" width=\"80%\" align=\"center\" style=\"font-family: Verdana, Tahoma; color: #666666; font-size: 12px\"><tr><td valign=\"middle\" align=\"center\" bgcolor=\"#EBEBEB\"><b style=\"font-size: 16px\">" . $_var_137 . "</b><br /><br /><p style=\"text-align:left;\">" . $_var_138 . "</p><br /><br /></td></tr></table></td></tr></table>" . $_var_139 . "</body></html>";
  585. }
  586. function iframe_message($msg)
  587. {
  588. return "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=" . IN_CHARSET . "\" /><table style=\"border:1px solid #09C\" align=\"center\"><tr><td><div style=\"text-align:center;color:#09C\">" . $msg . "</div></td></tr></table>";
  589. }
  590. function close_browse($_var_140 = 'Access denied')
  591. {
  592. if (empty($_SERVER["HTTP_REFERER"])) {
  593. exit($_var_140);
  594. } elseif (!preg_match("/^(https?:\\/\\/" . $_SERVER["HTTP_HOST"] . ")/i", $_SERVER["HTTP_REFERER"])) {
  595. exit($_var_140);
  596. }
  597. }
  598. function core_entry($read)
  599. {
  600. if (is_file($read)) {
  601. include_once $read;
  602. } else {
  603. redirect();
  604. }
  605. }
  606. function ergodic_array($str, $key)
  607. {
  608. if (!empty($str)) {
  609. $_var_141 = explode(",", $str);
  610. for ($_var_142 = 0; $_var_142 < count($_var_141); $_var_142++) {
  611. if ($_var_141[$_var_142] == $key) {
  612. return true;
  613. }
  614. }
  615. }
  616. return false;
  617. }
  618. function is_ssl()
  619. {
  620. if (isset($_SERVER["HTTPS"]) && ("1" == $_SERVER["HTTPS"] || "on" == strtolower($_SERVER["HTTPS"]))) {
  621. return true;
  622. } elseif (isset($_SERVER["SERVER_PORT"]) && "443" == $_SERVER["SERVER_PORT"]) {
  623. return true;
  624. } elseif (isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) && $_SERVER["HTTP_X_FORWARDED_PROTO"] == "https") {
  625. return true;
  626. }
  627. return false;
  628. }
  629. function submitcheck($var, $token = 0)
  630. {
  631. if ($token < 0) {
  632. return empty($_GET[$var]) || $_GET[$var] !== $_COOKIE["in_adminpassword"] ? false : true;
  633. } elseif (!empty($_POST[$var]) && $_SERVER["REQUEST_METHOD"] == "POST") {
  634. if (empty($_SERVER["HTTP_REFERER"]) || preg_replace("/https?:\\/\\/([^\\:\\/]+).*/i", "\\1", $_SERVER["HTTP_REFERER"]) == preg_replace("/([^\\:]+).*/", "\\1", $_SERVER["HTTP_HOST"])) {
  635. return $token ? $_POST[$var] !== $_COOKIE["in_adminpassword"] ? false : true : true;
  636. } else {
  637. return false;
  638. }
  639. } else {
  640. return false;
  641. }
  642. }
  643. function getonlineip()
  644. {
  645. if (isset($_SERVER["REMOTE_ADDR"]) && $_SERVER["REMOTE_ADDR"] && strcasecmp($_SERVER["REMOTE_ADDR"], "unknown")) {
  646. $_var_143 = $_SERVER["REMOTE_ADDR"];
  647. } elseif (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) {
  648. $_var_143 = getenv("HTTP_CLIENT_IP");
  649. } elseif (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) {
  650. $_var_143 = getenv("HTTP_X_FORWARDED_FOR");
  651. } elseif (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) {
  652. $_var_143 = getenv("REMOTE_ADDR");
  653. }
  654. preg_match("/[\\d\\.]{7,15}/", isset($_var_143) ? $_var_143 : NULL, $_var_144);
  655. return isset($_var_144[0]) ? $_var_144[0] : "unknown";
  656. }
  657. function auth_codes($str, $mode = 'en', $key = '')
  658. {
  659. if (empty($key)) {
  660. return $mode == "de" ? base64_decode($str) : base64_encode($str);
  661. } else {
  662. return $mode == "de" ? base64_decode(str_replace(md5($key), "", $str)) : md5($key) . base64_encode($str);
  663. }
  664. }
  665. function convert_utf8($str, $charset)
  666. {
  667. if ($charset !== IN_CHARSET) {
  668. return IN_CHARSET == "gbk" ? iconv("UTF-8", "GBK//IGNORE", auth_codes(preg_replace("/\\s/", "+", $str), "de")) : iconv("GBK", "UTF-8//IGNORE", auth_codes($str, "de"));
  669. } else {
  670. return $charset == "gbk" ? auth_codes($str, "de") : auth_codes(preg_replace("/\\s/", "+", $str), "de");
  671. }
  672. }
  673. function hideStar($_var_145)
  674. {
  675. if (strpos($_var_145, "@")) {
  676. $_var_146 = explode("@", $_var_145);
  677. $_var_147 = strlen($_var_146[0]) < 4 ? "" : substr($_var_145, 0, 3);
  678. $_var_148 = 0;
  679. $_var_145 = preg_replace("/([\\d\\w+_-]{0,100})@/", "***@", $_var_145, -1, $_var_148);
  680. $_var_149 = $_var_147 . $_var_145;
  681. } else {
  682. $_var_150 = "/(1[3458]{1}[0-9])[0-9]{4}([0-9]{4})/i";
  683. if (preg_match($_var_150, $_var_145)) {
  684. $_var_149 = preg_replace($_var_150, "\$1****\$2", $_var_145);
  685. } else {
  686. $_var_149 = substr($_var_145, 0, 3) . "***" . substr($_var_145, -1);
  687. }
  688. }
  689. return $_var_149;
  690. }
  691. function dataDesensitization($_var_151, $_var_152 = 0, $_var_153 = 0, $_var_154 = '*')
  692. {
  693. if (empty($_var_151)) {
  694. return false;
  695. }
  696. $_var_155 = array();
  697. $_var_156 = mb_strlen($_var_151);
  698. while ($_var_156) {
  699. $_var_155[] = mb_substr($_var_151, 0, 1, "utf8");
  700. $_var_151 = mb_substr($_var_151, 1, $_var_156, "utf8");
  701. $_var_156 = mb_strlen($_var_151);
  702. }
  703. $_var_157 = count($_var_155);
  704. $_var_158 = $_var_152 >= 0 ? $_var_152 : $_var_157 - abs($_var_152);
  705. $_var_159 = $_var_160 = $_var_157 - 1;
  706. if ($_var_153 > 0) {
  707. $_var_159 = $_var_158 + $_var_153 - 1;
  708. } elseif ($_var_153 < 0) {
  709. $_var_159 -= abs($_var_153);
  710. }
  711. for ($_var_161 = $_var_158; $_var_161 <= $_var_159; $_var_161++) {
  712. $_var_155[$_var_161] = $_var_154;
  713. }
  714. if ($_var_158 >= $_var_159 || $_var_158 >= $_var_160 || $_var_159 > $_var_160) {
  715. return false;
  716. }
  717. return implode("", $_var_155);
  718. }
  719. function create_order_no($uid)
  720. {
  721. $_var_162 = date("YmdHis") . $uid . substr(time(), 3) . rand(1000, 9999);
  722. return $_var_162;
  723. }
  724. function getremoteurl($app, $remote)
  725. {
  726. return $remote == 1 ? gettimestamp($app) : ($remote == 2 ? getaliosslink($app) : "http://" . $_SERVER["HTTP_HOST"] . "/data/attachment/" . $app);
  727. }
  728. function getaliosslink($_var_163)
  729. {
  730. $_var_164 = IN_ALIYUNOSS_CDN ? IN_ALIYUNOSS_CDN : IN_ALIYUNOSS_EP;
  731. $_var_165 = "http://" . IN_ALIYUNOSS_BK . "." . $_var_164 . "/" . $_var_163;
  732. $_var_165 = is_ssl() ? str_replace("http://", "https://", $_var_165) : $_var_165;
  733. return $_var_165;
  734. }
  735. function gettimestamp($url)
  736. {
  737. $url = IN_REMOTEDK . $url;
  738. try {
  739. $_var_166 = parse_url($url);
  740. $_var_167 = time() + 3600;
  741. $_var_168 = dechex($_var_167);
  742. $_var_169 = IN_MAINKEY;
  743. $_var_170 = $_var_169 . $_var_166["path"] . $_var_168;
  744. $_var_171 = strtolower(md5($_var_170));
  745. if (isset($_var_166["query"])) {
  746. $url = $url . "&sign=" . $_var_171 . "&t=" . $_var_168;
  747. } else {
  748. $url = $url . "?sign=" . $_var_171 . "&t=" . $_var_168;
  749. }
  750. return $url;
  751. } catch (\Exception $_var_172) {
  752. echo $_var_172->getMessage();
  753. }
  754. }
  755. function bees_encrypt($_var_173 = '', $_var_174 = 'zhifengkeji')
  756. {
  757. $_var_175 = str_split(base64_encode($_var_173));
  758. $_var_176 = count($_var_175);
  759. foreach (str_split($_var_174) as $_var_177 => $_var_178) {
  760. $_var_177 < $_var_176 && ($_var_175[$_var_177] .= $_var_178);
  761. }
  762. return str_replace(array("=", "+", "/"), array("O0O0O", "o000o", "oo00o"), join("", $_var_175));
  763. }
  764. function bees_decrypt($_var_179 = '', $_var_180 = 'zhifengkeji')
  765. {
  766. if (!$_var_179) {
  767. return $_var_179;
  768. }
  769. $_var_181 = str_split(str_replace(array("O0O0O", "o000o", "oo00o"), array("=", "+", "/"), $_var_179), 2);
  770. $_var_182 = count($_var_181);
  771. foreach (str_split($_var_180) as $_var_183 => $_var_184) {
  772. $_var_183 <= $_var_182 && isset($_var_181[$_var_183]) && $_var_181[$_var_183][1] === $_var_184 && ($_var_181[$_var_183] = $_var_181[$_var_183][0]);
  773. }
  774. return base64_decode(join("", $_var_181));
  775. }
  776. function rand_code($_var_185 = 6)
  777. {
  778. $_var_186 = "1234567890";
  779. $_var_187 = "";
  780. $_var_188 = strlen($_var_186);
  781. for ($_var_189 = 0; $_var_189 < $_var_185; $_var_189++) {
  782. $_var_187 .= $_var_186[mt_rand(0, $_var_188 - 1)];
  783. }
  784. return $_var_187;
  785. }
  786. function send_sms($_var_190, $_var_191)
  787. {
  788. $_var_192 = "http://api.smsbao.com/";
  789. $_var_193 = IN_SMSUSER;
  790. $_var_194 = md5(IN_SMSPWD);
  791. $_var_195 = "【" . IN_SMSSIGN . "】" . $_var_191;
  792. $_var_196 = $_var_190;
  793. $_var_197 = $_var_192 . "sms?u=" . $_var_193 . "&p=" . $_var_194 . "&m=" . $_var_196 . "&c=" . urlencode($_var_195);
  794. $_var_198 = file_get_contents($_var_197);
  795. if ($_var_198 == 0) {
  796. return true;
  797. } else {
  798. return false;
  799. }
  800. }
  801. function send_email($_var_199, $_var_200, $_var_201)
  802. {
  803. $_var_202 = IN_MAILSMTP;
  804. if (IN_PORT == 465) {
  805. $_var_202 = "ssl://" . str_replace("ssl://", "", IN_MAILSMTP);
  806. }
  807. $_var_203 = new \PHPMailer\PHPMailer\PHPMailer();
  808. $_var_203->IsSMTP();
  809. $_var_203->CharSet = "utf-8";
  810. $_var_203->SMTPAuth = true;
  811. $_var_203->Host = $_var_202;
  812. $_var_203->Port = IN_PORT;
  813. $_var_203->Username = IN_MAIL;
  814. $_var_203->Password = IN_MAILPW;
  815. $_var_203->From = IN_MAIL;
  816. $_var_203->FromName = convert_charset(IN_NAME);
  817. $_var_203->Subject = convert_charset($_var_200);
  818. $_var_203->AddAddress($_var_199, $_var_199);
  819. $_var_203->MsgHTML(convert_charset($_var_201));
  820. $_var_203->IsHTML(true);
  821. if (!$_var_203->Send()) {
  822. return false;
  823. } else {
  824. return true;
  825. }
  826. }
  827. function send_mailcode($_var_204, $_var_205 = '', $_var_206 = 0)
  828. {
  829. $_var_205 = $_var_205 ?: rand_code();
  830. $_var_207 = is_ssl() ? "https://" : "http://";
  831. if ($_var_206) {
  832. $_var_208 = convert_charset(IN_NAME . "[" . $_var_204 . "]操作密码【验证码】");
  833. $_var_209 = "您的操作验证码是:" . $_var_205 . "<br />为了保证您的账户安全,请勿向任何人提供此验证码。<br />如非本人操作,请忽略此邮件!<br />本邮件由系统自动发送,请勿直接回复。<br />官方网址:" . $_var_207 . $_SERVER["HTTP_HOST"] . IN_PATH;
  834. } else {
  835. $_var_208 = convert_charset(IN_NAME . "[" . $_var_204 . "]账号注册【验证码】");
  836. $_var_209 = "您的注册验证码是:" . $_var_205 . "<br />为了保证您的账户安全,请勿向任何人提供此验证码。<br />如非本人操作,请忽略此邮件!<br />本邮件由系统自动发送,请勿直接回复。<br />官方网址:" . $_var_207 . $_SERVER["HTTP_HOST"] . IN_PATH;
  837. }
  838. $_var_210 = send_email($_var_204, $_var_208, $_var_209);
  839. if ($_var_210) {
  840. $_var_211 = array("in_uid" => $_var_206 ?: 0, "in_mail" => $_var_204, "in_code" => $_var_205, "in_addtime" => date("Y-m-d H:i:s"));
  841. $_var_210 = db("mail")->insert($_var_211);
  842. return $_var_210;
  843. }
  844. return null;
  845. }
  846. function check_mailcode($mail, $code, $uid = null)
  847. {
  848. $_var_212 = [];
  849. $uid && ($_var_212[] = ["in_uid", "=", $uid]);
  850. return db("mail")->where($_var_212)->where("in_mail", $mail)->where("in_code", $code)->order("in_id desc")->value("in_id");
  851. }
  852. function udid_mobileconfig($_var_213 = '', $_var_214 = '获取设备ID', $_var_215 = '')
  853. {
  854. $_var_213 = $_var_213 ?: get_site_url("s") . "/index/udid/get";
  855. $_var_216 = "获取设备ID";
  856. $_var_217 = "本文件仅用来获取设备ID";
  857. if (is_array($_var_214)) {
  858. $_var_216 = $_var_214["in_name"] ?: $_var_216;
  859. $_var_217 = $_var_214["template_language"] == "en" ? "This document is only used to obtain the device ID" : "本文件仅用来获取设备ID";
  860. }
  861. $_var_218 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\r\n<plist version=\"1.0\">\r\n <dict>\r\n <key>PayloadContent</key>\r\n <dict>\r\n <key>URL</key>\r\n <string>" . $_var_213 . "</string>\r\n <key>DeviceAttributes</key>\r\n <array>\r\n <string>UDID</string>\r\n <string>IMEI</string>\r\n <string>ICCID</string>\r\n <string>VERSION</string>\r\n <string>PRODUCT</string>\r\n </array>\r\n </dict>\r\n <key>PayloadOrganization</key>\r\n <string>" . $_SERVER["HTTP_HOST"] . "</string>\r\n <key>PayloadDisplayName</key>\r\n <string>" . $_var_216 . "</string>\r\n <key>PayloadVersion</key>\r\n <integer>1</integer>\r\n <key>PayloadUUID</key>\r\n <string>3C4DC7D2-E475-3375-489C-0BB8D732A655</string>\r\n <key>PayloadIdentifier</key>\r\n <string>dev.zhifeng.profile-service</string>\r\n <key>PayloadDescription</key>\r\n <string>" . $_var_217 . "</string>\r\n <key>PayloadType</key>\r\n <string>Profile Service</string>\r\n </dict>\r\n</plist>";
  862. creatdir(IN_TMP_PATH . "");
  863. file_put_contents(IN_TMP_PATH . "udid" . $_var_215 . ".mobileconfig", $_var_218);
  864. $_var_219 = IN_CERT_PATH;
  865. $_var_220 = "openssl smime -sign -in " . IN_TMP_PATH . "udid" . $_var_215 . ".mobileconfig -out " . IN_TMP_PATH . "udid_sign_" . $_var_215 . ".mobileconfig -signer " . $_var_219 . "public/5cando.pem -inkey " . $_var_219 . "public/5cando.key -certfile " . $_var_219 . "public/5cando.pem -outform der -nodetach 2";
  866. exec($_var_220, $_var_221, $_var_222);
  867. return "/data/tmp/udid_sign_" . $_var_215 . ".mobileconfig";
  868. }
  869. function get_udid()
  870. {
  871. $_var_223 = file_get_contents("php://input");
  872. $_var_224 = "<?xml version=\"1.0\"";
  873. $_var_225 = "</plist>";
  874. $_var_226 = strpos($_var_223, $_var_224);
  875. $_var_227 = strpos($_var_223, $_var_225);
  876. $_var_228 = substr($_var_223, $_var_226, $_var_227 - $_var_226);
  877. $_var_229 = xml_parser_create();
  878. xml_parse_into_struct($_var_229, $_var_228, $_var_230);
  879. xml_parser_free($_var_229);
  880. $_var_231 = "";
  881. $_var_232 = "";
  882. $_var_233 = "";
  883. $_var_234 = "";
  884. $_var_235 = "";
  885. $_var_236 = 0;
  886. $_var_237 = array();
  887. foreach ($_var_230 as $_var_238) {
  888. if ($_var_238["level"] == 3 && $_var_238["type"] == "complete") {
  889. $_var_237[] = $_var_238;
  890. }
  891. $_var_236++;
  892. }
  893. $_var_223 = "";
  894. $_var_236 = 0;
  895. foreach ($_var_237 as $_var_239) {
  896. $_var_223 .= "\n==" . $_var_239["tag"] . " -> " . $_var_239["value"] . "<br/>";
  897. switch ($_var_239["value"]) {
  898. case "CHALLENGE":
  899. $_var_232 = $_var_237[$_var_236 + 1]["value"];
  900. break 1;
  901. case "DEVICE_NAME":
  902. $_var_233 = $_var_237[$_var_236 + 1]["value"];
  903. break 1;
  904. case "PRODUCT":
  905. $_var_234 = $_var_237[$_var_236 + 1]["value"];
  906. break 1;
  907. case "UDID":
  908. $_var_231 = $_var_237[$_var_236 + 1]["value"];
  909. break 1;
  910. case "VERSION":
  911. $_var_235 = $_var_237[$_var_236 + 1]["value"];
  912. break 1;
  913. }
  914. $_var_236++;
  915. }
  916. return $_var_231;
  917. }
  918. function Chk_authkey()
  919. {
  920. }
  921. function curl_get_contents($url, $timeout = 1)
  922. {
  923. $_var_244 = curl_init();
  924. curl_setopt($_var_244, CURLOPT_URL, $url);
  925. curl_setopt($_var_244, CURLOPT_RETURNTRANSFER, 1);
  926. curl_setopt($_var_244, CURLOPT_TIMEOUT, $timeout);
  927. $_var_245 = curl_exec($_var_244);
  928. curl_close($_var_244);
  929. $_var_245 = json_decode($_var_245, true);
  930. return $_var_245;
  931. }
  932. function saveRemoteFile($_var_246 = '', $_var_247 = '', $_var_248 = '', $_var_249 = 1)
  933. {
  934. if (trim($_var_246) == "") {
  935. return false;
  936. }
  937. if (trim($_var_247) == "") {
  938. $_var_247 = "./";
  939. }
  940. if (0 !== strrpos($_var_247, "/")) {
  941. $_var_247 .= "/";
  942. }
  943. if (!is_dir($_var_247) && !mkdir($_var_247, 0777, true)) {
  944. return false;
  945. }
  946. $_var_250 = fopen($_var_246, "r");
  947. $_var_251 = 1024 * $_var_249;
  948. $_var_252 = "";
  949. ob_start();
  950. while (!feof($_var_250)) {
  951. $_var_253 = fread($_var_250, $_var_251);
  952. file_put_contents($_var_247 . $_var_248, $_var_253, FILE_APPEND);
  953. ob_flush();
  954. flush();
  955. }
  956. ob_end_clean();
  957. fclose($_var_250);
  958. return array("file_name" => $_var_248, "save_path" => $_var_247 . $_var_248, "size" => filesize($_var_247 . $_var_248));
  959. }
  960. function getRender($res, $page = 1)
  961. {
  962. $_var_254 = $res->render();
  963. $_var_255 = $res->total();
  964. $_var_256 = $page ? str_replace("&page=" . $page, "", $_SERVER["REQUEST_URI"]) : $_SERVER["REQUEST_URI"];
  965. return str_replace(["/?page=", "<ul class=\"pagination\">"], [$_var_256 . "&page=", "<ul class=\"pagination\"><li class=\"disabled\">总计(" . $_var_255 . ")</li>"], $_var_254);
  966. }
  967. function TextToArray($_var_257 = '')
  968. {
  969. $_var_258 = explode("|", $_var_257);
  970. foreach ($_var_258 as $_var_259 => $_var_260) {
  971. $_var_260 = explode(":", $_var_260);
  972. if (count($_var_260) > 1) {
  973. $_var_258[$_var_260[0]] = $_var_260[1];
  974. unset($_var_258[$_var_259]);
  975. }
  976. }
  977. return $_var_258;
  978. }
  979. function getTemplateData($lang = 'zh')
  980. {
  981. return require IN_ROOT . "source/pack/lang/" . $lang . "/template.php";
  982. }
  983. function isJson($_var_261 = '', $_var_262 = false)
  984. {
  985. $_var_261 = json_decode($_var_261, $_var_262);
  986. if ($_var_261 && is_object($_var_261) || is_array($_var_261) && !empty($_var_261)) {
  987. return $_var_261;
  988. }
  989. return false;
  990. }
  991. function isCashDate()
  992. {
  993. if (IN_CASH_DATE) {
  994. $_var_263 = explode("|", IN_CASH_DATE);
  995. $_var_264 = [];
  996. foreach ($_var_263 as $_var_265 => $_var_266) {
  997. $_var_266 = explode("-", $_var_266);
  998. if (count($_var_266) > 1) {
  999. $_var_264 = array_merge($_var_264, range($_var_266[0], $_var_266[1]));
  1000. } else {
  1001. if (is_numeric($_var_266[0]) && $_var_266[0] != 0) {
  1002. $_var_264 = array_merge($_var_264, $_var_266);
  1003. }
  1004. }
  1005. }
  1006. return in_array(date("d"), $_var_264);
  1007. }
  1008. return true;
  1009. }
  1010. function imgToBase64($img_file)
  1011. {
  1012. $_var_267 = "";
  1013. if (is_file($img_file)) {
  1014. $_var_268 = $img_file;
  1015. $_var_269 = getimagesize($_var_268);
  1016. $_var_270 = fopen($_var_268, "r");
  1017. if ($_var_270) {
  1018. $_var_271 = filesize($_var_268);
  1019. if ($_var_271 > 5242880) {
  1020. die("pic size < 5M !");
  1021. }
  1022. $_var_272 = fread($_var_270, $_var_271);
  1023. $_var_273 = chunk_split(base64_encode($_var_272));
  1024. switch ($_var_269[2]) {
  1025. case 1:
  1026. $_var_274 = "gif";
  1027. break 1;
  1028. case 2:
  1029. $_var_274 = "jpg";
  1030. break 1;
  1031. case 3:
  1032. $_var_274 = "png";
  1033. break 1;
  1034. }
  1035. $_var_267 = "data:image/" . $_var_274 . ";base64," . $_var_273;
  1036. }
  1037. fclose($_var_270);
  1038. }
  1039. return $_var_267;
  1040. }
  1041. function loadClass($_var_275 = 'index', $_var_276 = 'index', $_var_277 = 'index', $_var_278 = [])
  1042. {
  1043. $_var_279 = "\\app\\" . $_var_275 . "\\" . $_var_276;
  1044. if (class_exists($_var_279)) {
  1045. $_var_280 = new $_var_279();
  1046. $_var_280->info = $_var_275;
  1047. $_var_280->module = $_var_276;
  1048. $_var_280->action = $_var_277;
  1049. if (method_exists($_var_280, "initialize")) {
  1050. $_var_280->initialize();
  1051. }
  1052. if (method_exists($_var_280, $_var_277)) {
  1053. $_var_280->{$_var_277}(...$_var_278);
  1054. } else {
  1055. if (method_exists($_var_280, "index")) {
  1056. $_var_280->index(...$_var_278);
  1057. } else {
  1058. exit("Access denied");
  1059. }
  1060. }
  1061. }
  1062. }
  1063. function myautoload($class_name = '')
  1064. {
  1065. $class_name = str_replace("\\", "/", $class_name);
  1066. $class_file = findClassFile($class_name);
  1067. if ($class_file) {
  1068. include_once $class_file;
  1069. }
  1070. }
  1071. function findClassFile($class_name)
  1072. {
  1073. $_var_281 = IN_ROOT . $class_name . ".php";
  1074. if (is_file($_var_281)) {
  1075. return $_var_281;
  1076. }
  1077. $_var_281 = str_replace("app/", "source/", $_var_281);
  1078. if (is_file($_var_281)) {
  1079. return $_var_281;
  1080. }
  1081. $_var_281 = str_replace("source/admin/", "source/admincp/module/", $_var_281);
  1082. if (is_file($_var_281)) {
  1083. return $_var_281;
  1084. }
  1085. $_var_281 = str_replace("source/", "source/pack/", $_var_281);
  1086. if (is_file($_var_281)) {
  1087. return $_var_281;
  1088. }
  1089. return null;
  1090. }
  1091. function reJSON($_var_282 = [], $_var_283 = 0, $_var_284 = '')
  1092. {
  1093. if (is_numeric($_var_282)) {
  1094. $_var_282 = ["code" => $_var_282, "data" => $_var_282, "msg" => $_var_284];
  1095. } elseif (is_string($_var_282)) {
  1096. $_var_282 = ["code" => $_var_283, "data" => "", "msg" => $_var_282];
  1097. } else {
  1098. $_var_282 = ["code" => $_var_283, "data" => $_var_282, "msg" => $_var_284];
  1099. }
  1100. $_var_282["time"] = time();
  1101. exit(json($_var_282));
  1102. }
  1103. function json($data = [])
  1104. {
  1105. return json_encode($data);
  1106. }
  1107. function make_password($length = 8)
  1108. {
  1109. $_var_285 = array_merge(range("a", "z"), range("A", "Z"), range("0", "9"));
  1110. $_var_286 = array_rand($_var_285, $length);
  1111. $_var_287 = "";
  1112. foreach ($_var_286 as $_var_288) {
  1113. $_var_287 .= $_var_285[$_var_288];
  1114. }
  1115. return $_var_287;
  1116. }
  1117. function check_diswords($_var_289 = '')
  1118. {
  1119. if (IN_PUBCHECK) {
  1120. return true;
  1121. }
  1122. $_var_290 = [];
  1123. if (IN_DISWORDS && $_var_289) {
  1124. $_var_291 = explode(",", IN_DISWORDS);
  1125. foreach ($_var_291 as $_var_292) {
  1126. if (strstr($_var_289, $_var_292)) {
  1127. $_var_290[] = $_var_292;
  1128. }
  1129. }
  1130. }
  1131. if (db("report")->where("appname", "like", "%" . $_var_289 . "%")->count()) {
  1132. $_var_290[] = $_var_289;
  1133. }
  1134. return count($_var_290) ? $_var_290 : null;
  1135. }
  1136. function get_device_type()
  1137. {
  1138. $_var_293 = strtolower($_SERVER["HTTP_USER_AGENT"]);
  1139. if (strpos($_var_293, "iphone")) {
  1140. $_var_294 = "iphone";
  1141. } elseif (strpos($_var_293, "ipad")) {
  1142. $_var_294 = "ipad";
  1143. } elseif (strpos($_var_293, "android")) {
  1144. $_var_294 = "android";
  1145. } else {
  1146. $_var_294 = "other";
  1147. }
  1148. return $_var_294;
  1149. }
  1150. function is_android()
  1151. {
  1152. return get_device_type() == "android";
  1153. }
  1154. function is_ios()
  1155. {
  1156. return is_iphone() or is_ipad();
  1157. }
  1158. function is_iphone()
  1159. {
  1160. return get_device_type() == "iphone";
  1161. }
  1162. function is_ipad()
  1163. {
  1164. return get_device_type() == "ipad";
  1165. }
  1166. function is_mobile()
  1167. {
  1168. if (isset($_SERVER["HTTP_USER_AGENT"])) {
  1169. $_var_295 = strtolower($_SERVER["HTTP_USER_AGENT"]);
  1170. $_var_296 = array("nokia", "sony", "ericsson", "mot", "samsung", "htc", "sgh", "lg", "sharp", "sie-", "philips", "panasonic", "alcatel", "lenovo", "iphone", "ipod", "blackberry", "meizu", "android", "netfront", "symbian", "ucweb", "windowsce", "palm", "operamini", "operamobi", "opera mobi", "openwave", "nexusone", "cldc", "midp", "wap", "mobile", "ipad");
  1171. if (preg_match("/(" . implode("|", $_var_296) . ")/i", $_var_295)) {
  1172. return true;
  1173. }
  1174. }
  1175. return false;
  1176. }
  1177. function is_safari()
  1178. {
  1179. $_var_297 = strtolower($_SERVER["HTTP_USER_AGENT"]);
  1180. if (strpos($_var_297, "safari") !== false) {
  1181. if (strpos($_var_297, "chrome") !== false) {
  1182. return false;
  1183. }
  1184. return true;
  1185. } else {
  1186. return false;
  1187. }
  1188. }