我目前正在使用wordpress Feed来显示帖子的网站上工作。一切似乎都运行正常,但页面加载速度非常慢。我已经实现了自己的缓存,这意味着只会每两个小时查询一次Feed(参见下面的代码)。
$cacheFile = 'cached-data/data.txt';
$cacheData = file_get_contents($cacheFile);
$two_hours = time() - 1;
$cacheTime = filemtime($cacheFile);
if ($cacheTime > $two_hours)
{
$dataArray = $cacheData;
}
else
{
//get data
$historyData = file_get_contents('http://www.mysite.co.uk/feed/json?image=thumbnail&posts_per_page=5');
$historyData = json_decode($historyData,true);
$animalData = file_get_contents('http://www.mysiteothersite.co.uk/feed/json?image=thumbnail&posts_per_page=5');
$animalData = json_decode($animalData,true);
$dataArray = array_merge($historyData['posts'],$animalData['posts']);
$dataArray = json_encode($dataArray);
$newCachFile = fopen($cacheFile, 'wb');
fwrite($newCachFile, $dataArray);
fclose($newCachFile);
}
$dataArray = json_decode($dataArray,ARRAY_A);
这加快了速度,但图像加载时间仍然很慢。因此,我想实现一个每小时下载一次图像的功能,并修改下载的json,以便将图像URL替换为本地托管的图像,而不是从服务器下载的图像。
有人可以建议我如何在本地保存图像吗?
由于
答案 0 :(得分:1)
您可以使用file_get_contents
获取图像数据,使用file_put_contents
将图像保存到文件系统。然后修改JSON就像更改JSON解码数组中的值一样简单,然后重新编码它。
//example for JPEG image
$image = file_get_contents($imageUrl);
file_put_contents('MyImage.jpg', $image);