Pagina 3 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 31
  1. #21
    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. #22
    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!


  3. #23
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prego, se serve altro aiuto su questo tema scrivi pure

  4. #24
    Va bene appena provo ti faccio sapere

  5. #25
    non va


    il tuo codice va bene (perché nella cartella "outfile" mi aggiorna sempre il file), ma io non riesco ad "inserirlo" nel file .js e fare il parsing...


    in poche parole richiamo il file proxy cosi:



    codice:
    
    <script type="text/javascript" id="proxy"  src="http://www.miosito.com/sites/all/the....php"></script>

    poi nel file .js ho la funzione attraverso la quale dovrei fare il parsing del file xml :



    codice:
     
    
    function parsing() {
    
     var StringaXml = proxy.XMLDocument;
            var i;
      for (var i = 0; i < StringaXml.documentElement.childNodes.length; i++) {
    
    
    //codice per il parsing
    
    
      }
    
    }
    con IE mi esce l'errore in cui dice che è impossibile fare XMLDocument di un riferimento nullo o non definito (perché praticamente non legge l'id inserito nel tag script per richiamare il file, che dovrebbe servire a javascript per leggere il file xml).



    :/

  6. #26
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Secondo me JavaScript non può chiamare una pagina esterna in quel modo
    Devi usare altri metodi, come XMLHttpRequest
    Cerca con google qualcosa tipo "parsing xml remoto con JavaScript"

  7. #27
    Forse cosi potrebbe andare...

    Che dici?


    codice:
    <script type="text/javascript"> 
    
    
        if (window.XMLHttpRequest) { 
            // code for IE7+, Firefox, Chrome, Opera, Safari 
            xmlhttp = new XMLHttpRequest(); 
        } 
        else { 
            // code for IE6, IE5 
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        xmlhttp.open("GET", "http://www.miosito.com/sites/all/themes/miositotheme/scripts/proxy.php", false); //o basta inserire "proxy.php"
        xmlhttp.send(); 
        
             if (xmlhttp.status==200) {
    
    
                          xmlDoc = xmlhttp.responseXML; 
                         
              // codice per il parsing
              // codice per il parsing
    
    
    
              }
    
    
                    else if (xmlhttp.status==404) {
              alert("XML could not be found");
             }
    
    
        
    </script>


    che dici??????

  8. #28
    niente non va ((((

    usando questo codice:



    codice:
    if (window.XMLHttpRequest) { 
            // code for IE7+, Firefox, Chrome, Opera, Safari 
            xmlhttp = new XMLHttpRequest(); 
        } 
        else { 
            // code for IE6, IE5 
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        xmlhttp.open("GET", "http://www.miosito.com/sites/all/themes/miositotheme/scripts/proxy.php", false); //o basta inserire "proxy.php"
        xmlhttp.send(); 
        
             if (xmlhttp.status==200) {
    
    
                          xmlDoc = xmlhttp.responseXML; 
                         
              var prova= xmlDoc.getElementsByTagName("Placemark");
          document.write(prova);
    
    
              }
    
    
                    else if (xmlhttp.status==404) {
              alert("XML could not be found");
             }

    mi esce errore:

    accesso negato (( why?

  9. #29
    up

  10. #30
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    E se richiami direttamente proxy.php scrivendo il percorso direttamente nella barra degli indirizzi del browser che messaggio restituisce?

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