如何将缓存的 php 数组加载到 js 变量中?
我有一个工作PHP代码,它从两个API获取数据,然后在本地缓存 html。它还将 PHP 数组缓存到名为“cache_file”的文件中,类型为File。
我在 PHP 文件的末尾有一个 javascript 片段,它将 PHP 数组加载到 javascript 数组中并在控制台上显示它。
当我从浏览器运行 PHP 文件时,它会将 PHP 数组(未缓存版本)加载到 JS 数组中,并且在 JS 控制台上可见。但是当我刷新页面时,页面的缓存版本会加载,并且在我的 JS 控制台上看不到任何输出。我推断存储在cache_file中的数组这次没有被加载到 JS 数组中。如何解决这个问题?
我使用缓存 PHP 数组中的最佳答案中描述的代码缓存了 PHP 数组。
缓存到文件:
file_put_contents("cache_file", serialize($myArray));
然后加载缓存:
$myArray = unserialize(file_get_contents("cache_file"));
我猜测加载 PHP 数组部分不起作用,因为当我刷新页面时没有调用服务器,因为它在 PHP 代码中。
JS 位于 PHP 文件本身中,如下所示:
<script>
var udemyServerData = <?=json_encode($udemyKeywords)?>; //loading php array into JS array
var courseraServerData = <?=json_encode($courseraKeywords)?>;//loading another php array into JS array
var commonServerData = udemyServerData.concat(courseraServerData);
var modifiedServerData = new Array();
for (i = 0; i < udemyServerData.length; i++) {
modifiedServerData.push({
"value": 'udemy',
"text": udemyServerData[i]
});
}
for (i = 0; i < courseraServerData.length; i++) {
modifiedServerData.push({
"value": 'coursera',
"text": courseraServerData[i]
});
}
console.log(udemyServerData);
console.log(courseraServerData);
</script>