<?php /** * 线上的用户数据提前生成到本地js,主要是为了缓存图片数据,防止页面加载图片慢 */ include "phpapi/Common/request.php"; include "phpapi/Common/Encrypter.php"; // 生成的本地js文件 const CACHE_FILE = 'usercache.js'; // 获取线上的用户列表 $url = "http://yq.vchangyi.com/party/phpapi/apicp.GetUserList.php"; $request = new Request(); $request->get($url); var_dump($request->response); $data = json_decode($request->response, true); // 获取本地已经缓存过的用户数据 $fileExists = file_exists(CACHE_FILE); $fileJsonArray = []; if ($fileExists) { $text = ltrim(file_get_contents(CACHE_FILE),'let userData = '); $fileJsonArray = json_decode($text, true); } // 对比线上本地数据,生成未缓存到本地的js数据 $cacheData = []; foreach ($data['result'] as $item) { if (empty($fileJsonArray[$item['id']])) { $temp = $item; $temp['headimg'] = createImg($item['headimg']); $cacheData[$item['id']] = $temp; } } $userArray = $fileJsonArray + $cacheData; $jsontext = 'let userData = ' . json_encode($userArray); // 输出 file_put_contents(CACHE_FILE, $jsontext); echo 'SUCCESS'; /** * 保存图片 */ function createImg($url) { $request = new Request(); $request->get($url); $img = $request->response; $filename = time() . rand(1000,9999) . ".jpg"; $tarfilename = "cacheUserImg/" .$filename; $fp = fopen($tarfilename, "w"); fwrite($fp, $img); fclose($fp); return $tarfilename; }