Visualizzazione dei risultati da 1 a 10 su 31

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    il codice per il proxy
    usalo così:
    1. salvalo in un file php (ad esempio, proxy.php);
    2. metti il file sul tuo server, dove preferisci;
    3. crea allo stesso livello del file una cartella scrivibile dal php per salvare il file recuperato dal server remoto (nel mio codice, outfile);
    4. richiama il file tramite javascript puntando direttamente a tuopercorso/proxy.php




    Codice PHP:
    <?php
    // setto il tipo di header per XML
    $header "Content-type: text/xml";
    // url sorgente
    $url "http://www.emsc-csem.org/Earthquake/Map/earth/kml.php";
    // nome della cartella (DEVE ESISTERE SUL SERVER E DEVE ESSERE SCRIVIBILE!)
    $dir "outfile/";
    // parte fissa del nome del file
    $file "_file_out.txt";
    // limite di tempo per il recupero di un nuovo file dal server remoto
    $min_time 2;


    // compila il percorso del file
    $file_out_name $dir.time().$file;


    // verifica se sono presenti file e conta quanti sono
    $file_list glob($dir ."*"$file);
    $num_file count($file_list);


    // definisce le azioni da compiere
    switch ($num_file) {
        case 
    0:
            
    // se non ci sono file, recupera il file, lo salva nella cartella e prepara il contenuto per
            // restituirlo via XMLHttpRequest
            
    $get_data file_get_contents($url);
            
    file_put_contents($file_out_name$get_data);
            break;
        
        case 
    1:
            
    // se trova un file, controlla se deve essere aggiornato 
            // prepare il nome del file (solo una comodità per le variabili)
            
    $file_old_name $file_list[0];
            
    // ricava dal nome del file il timestamp dell'ultimo salvataggio 
            
    $time_old explode("_"str_replace($dir""$file_old_name));
            
    // calcola il tempo trascorso dall'ultimo salvataggio
            
    $elaps time() - $time_old[0];
            if (
    $elaps >= $min_time) {
                
    // se il tempo è inferiore al limite preimpostato, recupera il file dal server remoto e lo tiene in memoria
                // restituirlo via XMLHttpRequest
                
    $get_data file_get_contents($url);
                
    // cancella il vecchio file
                
    unlink($file_old_name);
                
    // salva il nuovo file recuperato
                
    file_put_contents($file_out_name$get_data);
            }
            else {
                
    // se il tempo dall'ultimo salvataggio è inferiore al limite preimpostato, recupera il contenuto del vecchio file
                // per restituirlo via XMLHttpRequest
                
    $get_data file_get_contents($file_old_name);
            }
            break;
        
        default:
            
    // se qualcosa non funziona, esce mostrando l'errore
            
    echo "errore, verifica la cartella $dir: numero di file != da 1 o 0\n";
            exit();
            break;
    }


    // imposta l'header per i contenuti
    header($header);
    // restituisce i dati per la chiamata XMLHttpRequest
    print($get_data);
    ?>

  2. #2
    Quote Originariamente inviata da clasku Visualizza il messaggio
    il codice per il proxy
    usalo così:
    1. salvalo in un file php (ad esempio, proxy.php);
    2. metti il file sul tuo server, dove preferisci;
    3. crea allo stesso livello del file una cartella scrivibile dal php per salvare il file recuperato dal server remoto (nel mio codice, outfile);
    4. richiama il file tramite javascript puntando direttamente a tuopercorso/proxy.php




    Codice PHP:
    <?php
    // setto il tipo di header per XML
    $header "Content-type: text/xml";
    // url sorgente
    $url "http://www.emsc-csem.org/Earthquake/Map/earth/kml.php";
    // nome della cartella (DEVE ESISTERE SUL SERVER E DEVE ESSERE SCRIVIBILE!)
    $dir "outfile/";
    // parte fissa del nome del file
    $file "_file_out.txt";
    // limite di tempo per il recupero di un nuovo file dal server remoto
    $min_time 2;


    // compila il percorso del file
    $file_out_name $dir.time().$file;


    // verifica se sono presenti file e conta quanti sono
    $file_list glob($dir ."*"$file);
    $num_file count($file_list);


    // definisce le azioni da compiere
    switch ($num_file) {
        case 
    0:
            
    // se non ci sono file, recupera il file, lo salva nella cartella e prepara il contenuto per
            // restituirlo via XMLHttpRequest
            
    $get_data file_get_contents($url);
            
    file_put_contents($file_out_name$get_data);
            break;
        
        case 
    1:
            
    // se trova un file, controlla se deve essere aggiornato 
            // prepare il nome del file (solo una comodità per le variabili)
            
    $file_old_name $file_list[0];
            
    // ricava dal nome del file il timestamp dell'ultimo salvataggio 
            
    $time_old explode("_"str_replace($dir""$file_old_name));
            
    // calcola il tempo trascorso dall'ultimo salvataggio
            
    $elaps time() - $time_old[0];
            if (
    $elaps >= $min_time) {
                
    // se il tempo è inferiore al limite preimpostato, recupera il file dal server remoto e lo tiene in memoria
                // restituirlo via XMLHttpRequest
                
    $get_data file_get_contents($url);
                
    // cancella il vecchio file
                
    unlink($file_old_name);
                
    // salva il nuovo file recuperato
                
    file_put_contents($file_out_name$get_data);
            }
            else {
                
    // se il tempo dall'ultimo salvataggio è inferiore al limite preimpostato, recupera il contenuto del vecchio file
                // per restituirlo via XMLHttpRequest
                
    $get_data file_get_contents($file_old_name);
            }
            break;
        
        default:
            
    // se qualcosa non funziona, esce mostrando l'errore
            
    echo "errore, verifica la cartella $dir: numero di file != da 1 o 0\n";
            exit();
            break;
    }


    // imposta l'header per i contenuti
    header($header);
    // restituisce i dati per la chiamata XMLHttpRequest
    print($get_data);
    ?>

    Ti ringrazio !!!!!

    grazie mille! e scusami per tutto questo disturbo!


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 © 2026 vBulletin Solutions, Inc. All rights reserved.