Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Aiuto con GET URL CONTENT

    Ciao a tutti,

    è la prima volta che scrivo su questo forum ma mi è stato già utile in più di un'occasione...cmq, bando alle ciance!

    Ho creato uno script PHP che in un ciclo for deve ottenere con un get_url_content l'html di parecchie pagine (anche 5000) ed esaminarle ad una ad una prelevando una parte dell'HTML della stessa.

    Tutto ciò funziona (lo sto utilizzando in locale) ma non sempre... spesso, soprattutto quando le pagine sono tante, spesso appare il WARNING

    [function.file-get-contents]: failed to open stream: HTTP request failed! [QUOTE]

    Come posso fare per velocizzare il tutto e per evitare problemi per questo errore?

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ho avuto lo stesso problema in passato, per il mio caso ho risolto con questo metodo, che ti propongo ora come funzione.
    Premetto che avendo a disposizione l'estensione curl l'ho preferito a file_get_contents.

    Internamente effettua 5 tentativi su ogni url, puoi provarla così com'è ed eventualmente migliorarla a tuo piacimento ( ad esempio parametrizzare il numero di tentativi, effettuare un log per le url per le richieste che restituiscono errori ecc.. ).

    Codice PHP:
          function curlRequest($url
          {
              
    $error 0;
              
    $tentativi 0;
              
    $limit 5;
              
              do {
                  
    // Richiesta Curl
                  
    $ch curl_init();
                  
    curl_setopt($chCURLOPT_URL,$url);
                  
    curl_setopt($chCURLOPT_HEADERfalse);
                  
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
                  
    $data curl_exec($ch);
                  
    $error curl_errno($ch);
                  
    curl_close($ch);
              
                  
    $tentativi++;
                  
                  if(
    $tentativi == $limit) {
                      break;
                  }
              
              } while(
    $error != 0);
              
              
    //echo "Tentativi: ".$tentativi;
              //var_dump($error);
              
    return $data;
          } 
    Ciao

  3. #3
    Grazie mille! Faccio subito una prova....

  4. #4
    Perfetto, dopo un po di prove, tutto sembra funzionare bene! Per ora il max di URL controllati sono 3500 e va benissimo...

    Grazie mille!

  5. #5
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Prego

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.