2009-07-13 44 views
0

我有一个php脚本,每次调用时都会输出一个随机图像。因此,当我在网络浏览器中打开脚本时,会显示一张图片,如果我刷新,则会显示另一张图片。在客户端缓存PHP脚本输出

我试图从通过命令行(通过机械化)访问网站捕获正确的图像。我使用urllib2.urlopen(...)来抓取图像,但每次我都会得到不同的图像。我希望能够始终如一地抓住相同的图像。我怎么能做到这一点?

谢谢!

更新: 下面是我正在谈论的一个例子。如果您在Web浏览器中重新加载此图像,则每次都会弹出一个不同的图像。如果你点击右键并保存,你会得到正确的图像。如果你一直这样做,你会继续得到正确的图像......但是,你是如何从命令行?

http://www.biglickmedia.com/art/random/index.php

+0

我不太明白。你是说当你右键点击 - 保存在图片上时,从可见的图像保存不同的图像? – user103219 2009-07-13 06:08:53

回答

1

最有可能您的图像是由浏览器的缓存设置此:

<?php 
     header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
     header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
?> 

,并在每次生成的图像使用其他名称为它(可以通过添加毫秒原来做)时间。

1

您可以尝试将生成的图像缓存到磁盘,并通过其他链接提供给用户。

生成图像后,将其移至临时文件夹,用户可以在其中下载生成的静态图像。下载后,删除以腾出空间。

0

抓住一次并将其缓存在您身边。

1

当您从浏览器中保存它时,它不会回到服务器重新请求图像,它正在从它的缓存中提供图像。

你的命令行客户端需要做同样的事情。每次请求时都需要保存图像。然后,当您找到想要保留的图像时,您需要将已保存的图像复制到任何您想要永久保存的图像。

如果服务器总是提供一个新的随机图像,那么您就无法做其他事情了。