Visualizzazione risultati 1 fino 8 di 8

Discussione: buffer delle cURL

  1. #1
    Guest

    Question buffer delle cURL

    Ciao, vorrei fare uno script che mi accede ad un sito e ne memorizza tutto l'output html.

    Tipo questo:

    Codice PHP:
    $ch = curl_init("www.altervista.org");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $res = curl_exec($ch);
    echo
    $res;
    curl_close($ch);
    Però immagino che ci sia un limite nelle dimensioni di $res ... come posso fare? Magari per leggere man mano la pagina e nel frattempo salvarla su un file o processarla.
    Grazie.

  2. #2
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,183

    Predefinito

    No, $res dovrebbe "farcela"

    ...Lo script guardandolo di sfuggita sempra apposto; hai attivato sul pannello il server-to-sever??

    Ciao!

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    No, $res dovrebbe "farcela"

    ...Lo script guardandolo di sfuggita sempra apposto; hai attivato sul pannello il server-to-sever??

    Ciao!
    mmhh dici? possibile che una variabile possa contenere anche 100kb di dati?
    se ci fosse un metodo per leggere la pagina man mano sarei più sereno....

  4. #4
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Se vuoi leggere n byte alla volta puoi utilizzare fsockopen().

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da andreafallico Visualizza messaggio
    Se vuoi leggere n byte alla volta puoi utilizzare fsockopen().
    Puoi farm iun esempio? Questo non mi funziona:

    Codice PHP:
    $url = $_GET['url'];

    $fp = fsockopen($url, 80, $errno, $errstr, 10);
    if (!
    $fp) {
    echo
    "$errstr ($errno)<br />\n";
    } else {
    while (!
    feof($fp)) {
    echo
    fgets($fp, 128);
    }
    fclose($fp);
    }
    Grazie!

  6. #6
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

  7. #7
    Guest

    Predefinito

    Grazie, sono riuscito!
    Qualcuno sa spiegarmi il motivo per cui bisogna inviare questo?

    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: $url\r\n";
    $out .= "Connection: Close\r\n\r\n";

    ...in parole povere, emula il browser? Cioè quando un browser accede ad un sito, invia quelle stringhe ed il sito risponde con l'html della pagina? E' così che funziona?

  8. #8
    Guest

    Predefinito

    Esatto. Quelli sono gli header che il browser invia al server per fargli capire quali informazioni deve inviare. Contengono alcune informazioni tra cui la pagina da recuperare (il primo), l'host del server (il secondo) e qualcosa di non ben specificato (il terzo... mah?).

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •