我在CakePHP 3.8实例中使用cURL来获取数据。但是cURL总是得到较旧的(缓存?)版本的数据。
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_FRESH_CONNECT, 1 );
curl_setopt( $ch, CURLOPT_FORBID_REUSE, 1 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt( $ch, CURLOPT_COOKIEJAR, $cookiefile);
$url_content = curl_exec( $ch );
$url_info = curl_getinfo( $ch );
curl_close( $ch );
我正在设置timestamp-param
$url.'&t='.time();
但我仍然得到缓存的数据。 我也清除了Cake的所有缓存,但这不起作用......任何人都有想法?
答案 0 :(得分:1)
我假设网站正在控制缓存本身。因此,请阻止网站使用带有curl的HTTP标头向您发送缓存数据。
$header = array("Cache-Control: no-cache");
// $header = array("Cache-Control: max-age=0");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
答案 1 :(得分:0)
CURLOPT_COOKIEFILE和CURLOPT_COOKIEJAR行有一些错误。你使用$ curl而不是$ ch。