0

如何将缓存的 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>
4

0 回答 0