Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php GD和解析web的收费时间_Php_Xml_Image_Parsing_Gd - Fatal编程技术网

Php GD和解析web的收费时间

Php GD和解析web的收费时间,php,xml,image,parsing,gd,Php,Xml,Image,Parsing,Gd,我创建了一个PHP文件,其中使用GD根据从另一个站点获得的数据绘制地图。事实上,PHP运行时使得页面加载非常缓慢 问题是,有没有办法每天只执行一次PHP代码?o是否有可能自动运行web服务器?创建一个每天运行一次(最好是在交通繁忙的时候)的服务器,以完成繁重的工作、保存或缓存结果(例如,使用APC或memcached,甚至只是用新图像覆盖当前使用的图像),并将结果显示给用户。有很多方法可以做到这一点。它们都从一个PHP脚本开始,该脚本使用gd创建静态图形文件并将其保存在磁盘中的某个位置。这是您将

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


问题是,有没有办法每天只执行一次PHP代码?o是否有可能自动运行web服务器?

创建一个每天运行一次(最好是在交通繁忙的时候)的服务器,以完成繁重的工作、保存或缓存结果(例如,使用APC或memcached,甚至只是用新图像覆盖当前使用的图像),并将结果显示给用户。

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

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

  • 将用户指向静态文件,并使用cron或类似工具定期调用php
  • 将用户指向PHP脚本。让您的PHP脚本检查图形文件的时间戳,如果该文件的时间戳早于某个时间戳,则重新生成该文件,然后将其发送给用户。因此,您有一些PHP开销,但比每次生成图形要少

  • 如果地图图像已经存在,则需要缓存地图图像并从文件中加载它。每天再生一次。该框架代码概述了如何实现这一点。当图像超过一天时,第一次加载页面时,它将被重新生成并保存到文件中

    // 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天,请创建一个新文件
    if(filemtime(“imagecache.jpg”)
    您可以使用windows任务调度器每天运行一次php文件。我真的很喜欢这个解决方案。。。计划中不需要外部脚本。美好的我也是!我能看到的唯一问题是,在图像过期后第一个点击页面的幸运用户将遇到@Bcl00所说的问题,即GD运行时加载缓慢。