Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Funkcja filesize i odczyt wielkości pliku

lukaszk234 16 Kwi 2010 22:58 1379 14
  • #1 16 Kwi 2010 22:58
    lukaszk234
    Poziom 8  

    Witajcie mam problem gdyż chce w php,wyciągnąć informacje ile waży dana strona www.
    np. htttp://wp.pl/index.php(to chce sie dowiedzieć ile waży plik index.php)
    próbowałem funkcją filesize,ale coś sobie nie radziłem.Wie ktoś jak to zrobic?
    Dzięki za pomoc.

    0 14
  • #2 16 Kwi 2010 23:16
    Pentryt
    Poziom 15  

    Bo chmod na to nie pozwala.

    Możesz na czas pomiaru ustawić:

    Code:
    chmod('index.php', 0777);


    Dodano po 2 [minuty]:

    Ach, nie doczytałem!
    Chcesz zważyć stronę na innym serwerze? Z obrazkami czy sam plik index?

    0
  • #3 16 Kwi 2010 23:17
    lukaszk234
    Poziom 8  

    sam index:

    0
  • #5 16 Kwi 2010 23:20
    Pentryt
    Poziom 15  

    Spróbuj wczytać zawartość pliku za pomocą file_get_contents, zapisać do tymczasowego pliku na localhoście i zważyć go filesizem.

    0
  • #6 16 Kwi 2010 23:21
    lukaszk234
    Poziom 8  

    Biblioteka curl mnie zbytnio nie interesuje(w praktyce ,większość stron jest odporna na czytanie np. źródła).bardziej zalezy mi na funkcji filesize

    0
  • #7 16 Kwi 2010 23:22
    Pentryt
    Poziom 15  

    Dżyszla napisał:
    Pobierasz do zmiennej (np przy uzyciu biblioteki curl), sprawdzasz długość (dla samej treści, bez linków do CSS, obrazków itp)


    cURL? Po co komplikować sprawę?

    0
  • #8 16 Kwi 2010 23:26
    Dżyszla
    Poziom 42  

    Ze względu na prostotę. Być może ze względu na ograniczenia nałożone przez administratora wynikające z reguł bezpieczeństwa. Jak się uodparnia stronę na czytanie źródła? Bardzo interesujące, bo nie widzę innej możliwości wyświetlenia strony w przeglądarce, niż pobranie jej źródła.

    Po co filesize?

    0
  • #9 16 Kwi 2010 23:29
    Pentryt
    Poziom 15  

    Dżyszla napisał:
    Po co filesize?


    Nie upieram się przy filesize. Może być nawet strlen(file_get_contents(...););

    0
  • #10 16 Kwi 2010 23:32
    lukaszk234
    Poziom 8  

    Przedstawie bardziej jaśnie sytuacje:
    Oto mój kod:

    Code:

    <?php
    $ip= $_SERVER['REMOTE_ADDR'];
    if($ip == xx.xx.xxx.xxx){
    echo 'wielkosc pliku:'  filesize('http://www.wp.pl/index.php') 'np.bajtow';
    }else{
    echo 'niepowodzenie';
    }
    ?>

    I tylko chce wiedzieć ile ten index waży.:)
    Cytat:

    Ze względu na prostotę. Być może ze względu na ograniczenia nałożone przez administratora wynikające z reguł bezpieczeństwa. Jak się uodparnia stronę na czytanie źródła? Bardzo interesujące, bo nie widzę innej możliwości wyświetlenia strony w przeglądarce, niż pobranie jej źródła.

    Ano tez sie dziwiłem,lecz curl niestety nie radzi sobie z pobraniem kodu źródłowego strony.

    0
  • #11 16 Kwi 2010 23:34
    Pentryt
    Poziom 15  

    Tyle waży wp.pl:
    http://electroniclab.pl/file_get_contents.php

    Źródło:

    Code:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
    <head>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
          <title>file_get_contents</title>
    </head>

    <body>

    <?php

    $file = file_get_contents('http://wp.pl/index.php', true);
    echo strlen($file);

    ?>

    </body>
    </html>

    0
  • #12 16 Kwi 2010 23:45
    lukaszk234
    Poziom 8  

    Pomogło:) dzięki ci wielkie.

    0
  • #13 17 Kwi 2010 00:03
    Dżyszla
    Poziom 42  

    Code:

    <?php
       header('Content-type: text/plain');
       
       $file="http://www.wp.pl/";
       $ch=curl_init();
       curl_setopt($ch,CURLOPT_URL,$file);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
       curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
       
       $data=curl_exec($ch);
       if (curl_errno($ch)) return -1;

       curl_close($ch);
       
       echo strlen($data);
       
       echo "\n".$data;
    ?>
    NIe widzę żadnego problemu. Jeśli podajesz adresy z przekierowaniami (czyli nie te faktyczne), to wystarczy dodać opcję CURLOPT_FOLLOWLOCATION

    Otrzymany wynik (początek):
    Code:
    156916
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
    <head>
    <title>Wirtualna Polska - www.wp.pl</title>

    0
  • #14 17 Kwi 2010 01:40
    lukaszk234
    Poziom 8  

    A jak ten ciąg znaków zamienić? na np.bajty

    0