generateUserCache.php 1.5 KB
<?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;

}