generateUserCache.php
1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?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;
}