Visualizzazione risultati 1 fino 8 di 8

Discussione: quando file_get_contents() fallisce .....

  1. #1
    Guest

    Predefinito quando file_get_contents() fallisce .....

    Salve a tutti

    Ho uno script che legge una sucessione di pagine html da cui estrae dei dati, per elaborazioni sucessive.
    Le pagine html si trovano su internet.

    Ho il problema di fare in modo che lo script non si interrompa quando la funzione "file_get_contents( $Stringa)" non riesce a trovare il file specificato nella variabile $Stringa.

    Purtroppo mi sembra che la funzione "file_exists" non funzioni se il file specificato e' un URL.
    C'e' un modo per evitare che lo script non si interrompa al verificarsi di questa condizione ?

    un grazie anticipato
    Mario

  2. #2
    Guest

    Predefinito

    giusto per sapere le pagine che carichi sono su server esterni ad av e lo script è sul tuo sito?

    mavericck

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da mavericckweb
    giusto per sapere le pagine che carichi sono su server esterni ad av e lo script è sul tuo sito?

    mavericck
    Giusto, mi sono dimenticato di specificare.

    Ho installato EasyPhp sul mio pc, lo script gira sul mio pc....le pagine sono esterne al mio PC.
    Lo script funziona, quando la pagina richiesta esiste.....quando non esiste si interrompe.

    Ho provato a giocare con le funzioni di gestione degli errori ma non ho capito come gestirle.

    Mario

  4. #4
    Guest

    Predefinito

    in che modo analizzi l'insieme delle pagine? con un ciclo?

    posta il pezzo di codice relativo al problema, così è più facile darti una mano

    mavericck

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da mavericckweb
    in che modo analizzi l'insieme delle pagine? con un ciclo?

    posta il pezzo di codice relativo al problema, così è più facile darti una mano

    mavericck
    OK ...ecco la parte di codice che mi da' il problema
    Codice PHP:
    <?php
    $idProv
    ="029";
    $idPaese=1;

    $test=1;
    $tentativi=0;

    // ciclo principale
    while ($test==1) {

    // prepara l' indirizzo della pagina che corrisponde al paese
    $temp="00".$idPaese;
    $temp=substr($temp,strlen($temp)-3);
    $numero=$idProv."/".$temp;

    $Stringa="http://www.comuni-italiani.it/".$numero."/index.html";

    $result=LeggiPagina($Stringa); // leggi la pagina html

    // se la pagina non esiste.....incrementa "tentativi" e cerca di leggere la sucessiva
    if ( $result==1){
    $tentativi=$tentativi+1;
    }

    // dopo sei tentativi andati a vuoto termina il ciclo ed esci
    if ( $tentativi>6){
    $test=0;
    $tentativi=0;
    }

    set_time_limit(30); // impedisce che lo script termini entro i 30 secondi di default
    $idPaese=$idPaese+1; // passa al prossimo paese
    }

    // *******************************************
    function LeggiPagina($Stringa) {

    $variabile=" ";
    //metodo file_get_contents
    $variabile = file_get_contents($Stringa);
    if (
    strlen($variabile)< 10) // se la variabile contiene meno di 10 chars...errore
    { exit (1);
    }

    // qui il resto del codice ..........

    }
    ?>
    Sul manuale del Php c'e' scritto che in caso di errore la funzione "file_get_contents" restituisce il valore FALSE e invece lo script si interrompe con uno WARNING di pagina non trovata ( 404 Http..eccc.ecc.)

    Mario

  6. #6
    Guest

    Predefinito

    puoi sempre usare fread() ...

  7. #7
    Guest

    Predefinito

    cmq vedi ke qui su altervista quello script nn può funzionare, qnd se lo devi mettere qui è inutili ke ti scervelli a trovare una soluzione, qui sn bloccati tutti i collegamenti a siti esterni

  8. #8
    Guest

    Predefinito

    invece di dare l'exit(1) che ti blocca lo script intero potresti mettere un semplice

    Codice PHP:
    if ($variabile == false) {
    //non fare niente
    }
    mavericck

Regole di scrittura

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