Подтвердить что ты не робот

Есть ли способ сказать завиток, чтобы не использовать кеш

Я пытаюсь выяснить размер файла url:

$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. Я думаю, что он слишком низок, потому что у меня есть кеширование google. Может ли это быть правдой? Также я тестировал Google на другом сайте, который вычисляет размер URL-адреса, и он был в два раза больше.

4b9b3361

Ответ 1

Вы можете использовать CURLOPT_FRESH_CONNECT для этого. Из curl_setopt

CURLOPT_FRESH_CONNECT ИСТИНА, чтобы принудительно использовать новое соединение вместо кешированного.

curl_setopt($curl1, CURLOPT_FRESH_CONNECT, TRUE);

Ответ 2

curl_setopt ($ curl1, CURLOPT_FRESH_CONNECT, 1);//не используем кешированную версию URL

CURLOPT_FRESH_CONNECT TRUE to force use of a new connection instead of a cached one.

проверьте пример здесь

вы можете установить заголовок

$headers = array( 
                 "Cache-Control: no-cache", 
                ); 
curl_setopt($curl1, CURLOPT_HTTPHEADER, $headers);

эта ссылка может быть полезна для вас http://www.php.net/manual/en/function.curl-setopt.php#96903

Ответ 3

Лучший способ избежать кеширования - применить время или любой другой случайный элемент к URL-адресу, например:
$url .= '?ts=' . time();

так, например, вместо того, чтобы http://example.com/content.php
у вас есть http://example.com/content.php?ts=1212434353

Ответ 4

Используйте CURLOPT_FRESH_CONNECT - ИСТИНА, чтобы принудительно использовать новое соединение вместо кешированного.

Пример:

<?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);
    }
?>

для более подробной информации о проверке завитка http://php.net/manual/en/function.curl-setopt.php

может вам это помочь.

Ответ 5

Вы можете сказать CURL использовать свежие данные, установив CURLOPT_FRESH_CONNECT в TRUE

Подробнее о функции CURL вы можете узнать здесь:

http://php.net/manual/en/function.curl-setopt.php