PDA

View Full Version : [PHP Expert] Leggere delle parole da un file TXT esterno


borexino
22-06-2006, 10:47
Salve,

avrei la necessità di leggere dei dati da un file di testo esterno.
Il file in questione è

http://www.sec.noaa.gov/ftpdir/latest/wwv.txt

di cui vi quoto un esempio


:Product: Geophysical Alert Message wwv.txt
:Issued: 2006 Jun 21 1203 UTC
# Prepared by the US Dept. of Commerce, NOAA, Space Environment Center
#
# Geophysical Alert Message
#
Solar-terrestrial indices for 20 June follow.
Solar flux 73 and mid-latitude A-index 4.
The mid-latitude K-index at 1200 UTC on 21 June was 1 (5 nT).

No space weather storms were observed for the past 24 hours.

No space weather storms are expected for the next 24 hours.




avrei la necessità di riportare in un blocco il valore Solar Flux e K-index

Questo file viene aggiornato automaticamente dalla NASA ogni 4 ore.
Tutte le parole e gli spazi rimangono uguali,cambiano solo i valori del solar flux degli indici e delle date.

Avrei la necessità di avere un codice PHP che mi rilasci un output del tipo:



Flusso Solare = Leggi dal file remoto
K-Index = Leggi dal file remoto
Dati aggiornati a Leggi dal file remoto



Spero di essere stato chiaro.

Saluti e grazie

andbin
22-06-2006, 11:38
Salve,

avrei la necessità di leggere dei dati da un file di testo esterno.
Il file in questione è

http://www.sec.noaa.gov/ftpdir/latest/wwv.txtIl codice è questo (esempio):
if (($handle = fopen ("http://www.sec.noaa.gov/ftpdir/latest/wwv.txt", "r")) !== FALSE)
{
while (($line = fgets ($handle, 4096)) !== FALSE)
{
/* ..... */
}

fclose ($handle);
}Nota importante: usare la fopen per leggere da un URL, richiede che la direttiva di configurazione allow_url_fopen sia "on".

borexino
23-06-2006, 08:56
Grazie mille per la risposta :D

Avrei cmq bisogno di tutto il codice php per generare l'output:


Flusso Solare = Leggi dal file remoto
K-Index = Leggi dal file remoto
Dati aggiornati a Leggi dal file remoto


Scusate :rolleyes:

andbin
23-06-2006, 09:20
Avrei cmq bisogno di tutto il codice php per generare l'output:È abbastanza semplice. Nel ciclo while hai la variabile $line che contiene il testo della linea e quindi devi solo fare una serie di test sulla linea ed estrarre le informazioni che vuoi.
Un esempio potrebbe essere:
while (($line = fgets ($handle, 4096)) !== FALSE)
{
if (strncmp ($line, "Solar flux ", 11) == 0)
$solar_flux = substr ($line, 11);

....
}

borexino
23-06-2006, 11:14
Grazie 1000 :D ;)

Ora funziona tutto!!


<?php

// *********** SCRIPT SOLAR FLUX **********************

if (($handle = fopen ("http://www.sec.noaa.gov/ftpdir/latest/wwv.txt", "r")) !== FALSE)
{
while (($line = fgets ($handle, 4096)) !== FALSE)

{

if (strncmp ($line, "Solar flux ", 11) == 0) //FLUSSO SOLARE
$solar_flux = substr ($line, 10,4);


}



// ***********SCRIPT DEDICATO ALLA DATA********************************
//if (($handle = fopen ("http://www.sec.noaa.gov/ftpdir/latest/wwv.txt", "r")) !== FALSE)
//
// while (($line = fgets ($handle, 4096)) !== FALSE)
//
// {
//
// if (strncmp ($line, ":Issued: ", 3) == 0) //DATA
// $data = substr ($line, 9,25);
//
//
//
// }
// **************** FINE SCRIPT DATA***********************


// ****************** SCIPT K-INDEX **************************

if (($handle = fopen ("http://www.sec.noaa.gov/ftpdir/latest/wwv.txt", "r")) !== FALSE)

while (($line = fgets ($handle, 4096)) !== FALSE)

{

if (strncmp ($line, "The mid-latitude ", 2) == 0)
$k_index = substr ($line, 37,70);



}


echo "Solar Flux", ($solar_flux);
echo "<br />";
echo "K-Index ", ($k_index);


//echo "<br />";
//echo "Data ", ($data);



}

?>

andbin
23-06-2006, 12:25
Ora funziona tutto!!Ma :D , puoi fare tutto in una sola passata!! ;) Mica devi per forza aprire 3 volte il file.
E ricordati di usare fclose()!!!!