我想找出网址的文件大小:
$url1 = 'www.google.com';
$curl1 = curl_init();
curl_setopt($curl1, CURLOPT_URL, $url1);
curl_setopt($curl1, CURLOPT_RETURNTRANSFER, TRUE);
curl_exec($curl1);
$file_size = curl_getinfo($curl1, CURLINFO_SIZE_DOWNLOAD );
$file_size_kb = $file_size / 1000;
echo $file_size_kb;
输出为43331
。我认为它太低了,因为我有谷歌缓存。这可能是真的吗?此外,我在其他一些计算网址大小的网站上测试谷歌,它的数量是原来的两倍。
答案 0 :(得分:38)
您可以使用CURLOPT_FRESH_CONNECT
。来自curl_setopt
CURLOPT_FRESH_CONNECT TRUE强制使用新连接而不是缓存连接。
curl_setopt($curl1, CURLOPT_FRESH_CONNECT, TRUE);
答案 1 :(得分:12)
curl_setopt($ curl1,CURLOPT_FRESH_CONNECT,1); //不要使用网址的缓存版本
CURLOPT_FRESH_CONNECT TRUE to force use of a new connection instead of a cached one.
检查示例here
你可以设置标题
$headers = array(
"Cache-Control: no-cache",
);
curl_setopt($curl1, CURLOPT_HTTPHEADER, $headers);
此链接可能对您有所帮助http://www.php.net/manual/en/function.curl-setopt.php#96903
答案 2 :(得分:6)
避免缓存的最佳方法是将时间或任何其他随机元素应用于网址,如下所示:
$url .= '?ts=' . time();
所以例如而不是有
http://example.com/content.php
你会有
http://example.com/content.php?ts=1212434353
答案 3 :(得分:3)
通过将CURL
设置为CURLOPT_FRESH_CONNECT
TRUE
使用新数据
您可以在此处详细了解CURL
功能:
答案 4 :(得分:3)
使用 CURLOPT_FRESH_CONNECT - TRUE强制使用新连接而不是缓存连接。
示例:
<?php
function check_url($url) {
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_HEADER, 1); // get the header
curl_setopt($c, CURLOPT_NOBODY, 1); // and *only* get the header
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); // get the response as a string from curl_exec(), rather than echoing it
curl_setopt($c, CURLOPT_FRESH_CONNECT, 1); // don't use a cached version of the url
if (!curl_exec($c)) { return false; }
$httpcode = curl_getinfo($c, CURLINFO_HTTP_CODE);
return ($httpcode < 400);
}
?>
有关curl check out http://php.net/manual/en/function.curl-setopt.php
的详细信息这可能对你有所帮助。