PHP cURL在返回的页面中检索旧的链接文件

时间:2012-10-23 16:20:02

标签: php curl

我有一个PHP cURL请求,它在我的域上获得了另一个页面。正在检索的页面包含.css等链接文件。当我更新其中一个.css文件并将其上传到域时,再次请求同一页面,它会返回相同版本的.css文件,而不是我刚刚做的更新。然后我检查域上的链接文件,看它是否已经上传好(它是)和返回页面中链接文件的url(指向正确的文件)。

我甚至删除了所有临时浏览器文件以强制它查找链接文件的新版本,但它没有什么区别。

请求已成功完成,并且无错误。我认为它可能来自缓存或类似的东西。大约一小时后,再次请求页面时,将在返回的页面中返回.css文件的正确版本。

我的cURL请求如下:

$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $host . $requestURL);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl_handle, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($curl_handle, CURLOPT_FRESH_CONNECT, TRUE);
curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl_handle, CURLOPT_MAXREDIRS, 10);
curl_setopt($curl_handle, CURLOPT_DNS_USE_GLOBAL_CACHE, FALSE);
curl_setopt($curl_handle, CURLOPT_FORBID_REUSE, TRUE);
$content = curl_exec($curl_handle);
curl_close($curl_handle);
echo $content;

这让我很困惑,因为我似乎无法“强制”获取最新版本的链接文件。

任何想法都会很棒!

1 个答案:

答案 0 :(得分:2)

问题是您正在获取css文件的缓存副本。我相信你可以使用一个标题来解决这个问题,但是如果你不想这样做,可以在你要求的URL中添加类似whatever.css?x=$random的内容来强制重新启动文件。不是最好的方式,但它可能会有效。