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!