phphttpcachingfopen

Does PHPs fopen function implement some kind of cache?


I'm struggling with the automated data collection of a PHP script from a webserver. The files in question contain meteo data and are updated every 10 minutes. Weirdly enough, the 'file modified' date on the webserver doesn't change.

A simple fopen('http://...')-command tries to get the freshest version of the last file in this directory every hour. But regularly I end up with a version up to 4 hours old. This happens on a Linux server which (As my system administrator has assured me) doesn't use a proxy server of any kind.

Does PHP implement its own caching mechanism? Or what else could be interfering here?

(My current workaround is to grab the file via exec('wget --nocache...') which works.)


Solution

  • Since you're getting the file via HTTP, I'm assuming that PHP will be honouring any cache headers the server is responding with.

    A very simple and dirty way to avoid that is to append some random get parameter to each request.