GD的充电时间和解析网络

时间:2011-08-04 19:59:41

标签: php xml image parsing gd

我创建了一个PHP文件,其中根据从其他站点获取的数据使用GD绘制地图。事实是PHP运行时使页面加载非常慢。

问题是,这个PHP代码每天只执行一次有什么方法吗? o您是否有机会自动运行Web服务器?

3 个答案:

答案 0 :(得分:2)

您需要缓存地图图像并从文件中加载它(如果已存在)。每天再生一次。这个骨架代码概述了如何实现。当图像变得超过一天时页面第一次加载,它将被重新生成并保存到文件中。

// If the file is older than 1 day, create a new one
if (filemtime("imagecache.jpg") < time() - 86400) {

  // Generate your new image and write it to a file
  // Assuming $im is an image from GD

  // UPDATE: fixed file_put_contents() because I didn't know imagejpeg() 
  // could write the file by itself.
  imagejpeg($im, "imagecache.jpg");
}

答案 1 :(得分:1)

许多方法都可以做到这一点。他们都开始使用PHP脚本,使用gd创建静态图形文件并将其保存在磁盘中的某个位置。这是您将向用户展示的内容。

生成该文件后,您最简单的选择可能是:

  1. 将您的用户指向静态文件,并使用cron或类似的东西定期调用php。
  2. 将您的用户指向PHP脚本。让您的PHP脚本检查图形文件的时间戳,如果它超过某个年龄,请重新生成它,然后将其发送给用户。因此,您有一些PHP开销,但它不是每次都生成图形。

答案 2 :(得分:0)

创建一个cron job,每天运行一次(最好在轻量交通时间内),以完成繁重的工作,保存或缓存结果(例如,使用APC或memcached,甚至只覆盖当前的 - 将图像与新图像一起使用,并将结果显示给用户。