Newsgroup: it.comp.www.php
Titolo: Presentazione e problemino

Ciao
è la prima volta che posto in questo newsgroup. Mi chiamo Francesco, e sono 
circa un cinque anni che mi sono avvicinato alla programmazione web, ed un 
anno al PHP.
Mi rivolgo a voi perchè ho un problemino con uno script che ho scritto per 
una pagina per il mio sito, precisamente con questo codice:
<?
$path = "../";
$filename = $_POST["listbox"];
$filename = $path.$filename;
$fp = fopen($filename, "r") or die ("Couldn't open $filename");
while (!feof($fp))
   {
   $line = fgets( $fp, 1024);
   switch ($line)
      {
       case $Callsign = stristr($line, 'Pilot Number:'):
            $Callsign = str_replace("Pilot Number:","Callsign=",$Callsign);
         strtr($Callsign," ","");
   $pos = strpos($Callsign,"=") + 1;
   $Callsign = substr($Callsign, $pos);
   break;
       case $Aircraft = stristr($line, 'Aircraft Type:'):
            $Aircraft =  str_replace("Aircraft 
Type:","Aircraft=",$Aircraft);
         strtr($Aircraft," ","");
   $pos = strpos($Aircraft,"=") + 1;
   $Aircraft = substr($Aircraft, $pos);
   break;
       case $DepartAirport = stristr($line, 'Departing Airport:'):
            $DepAirport = str_replace("Departing 
Airport:","DepAirport=",$DepartAirport);
            strtr($DepAirport," ","");
            break;
       case $DestinAirport = stristr($line, 'Destination Airport:'):
            $DestAirport = str_replace("Destination 
Airport:","DestAirport=",$DestinAirport);
         strtr($DestAirport," ","");
            break;
       case $LandedAirport = stristr($line, 'Destination Airport:'):
            $LandAirport = str_replace("Destination 
Airport:","LandAirport=",$LandedAirport);
         strtr($LandAirport," ","");
            break;
       case $AlterAirport = stristr($line, 'Alternate Airport:'):
            $AltAirport = str_replace("Alternate 
Airport:","AltAirport=",$AlterAirport);
         strtr($AltAirport," ","");
            break;
       case $RouteAcars = stristr($line, 'Route:'):
            $Route = str_replace("Route:","Route=",$RouteAcars);
         strtr($Route," ","");
            break;
       case $FlightLevel = stristr($line, 'Flight Level:'):
            $Altitude = str_replace("Flight 
Level:","Altitude=",$FlightLevel);
         strtr($Altitude," ","");
            break;
       case $SpentFuel = stristr($line, 'Spent Fuel:'):
            $Fuel_Qty = str_replace("Spent Fuel:","Fuel_Qty=",$SpentFuel);
         strtr($Fuel_Qty," ","");
            break;
       case $FuelType = stristr($line, 'Lbls'):
            $Fuel_Type = str_replace("Lbls","Fuel_Type=L",$FuelType);
         strtr($Fuel_Type," ","");
            break;
       case $FlightLength = stristr($line, 'Flight Length:'):
            $Distance = str_replace("Flight 
Length:","Distance=",$FlightLength);
         strtr($Distance," ","");
            break;
   }
   }
print $Callsign;
.
.
.
?>
Il problema sta nel cercare di stampare a schermo una variabile utilizzata 
dallo switch al di fuori di esso.
Per esempio il "print $Callsign" che si trova alla fine dello script non 
stampa niente, invece se lo metto nel primo case dello switch mi stampa il 
valore corretto.
Potete darmi una mano?
Grazie mille anticipatamente.
Ciao
Francesco 

 ha 
scritto nel messaggio news:wkjte.19552$b5.9...@news3.tin.it...


 
[..]
il tuo codice IMHO e' confuso..
potresti spiegare in dettaglio cosa dovrebbe fare?
-- 
www.iuz-lab.info

Senz'altro:
<?
/*Dichiaro il path del file da leggere*/
$path = "../";
/*Dichiaro il nome del file da leggere, proveniente da un'altra pagina PHP e 
contenuto in $_POST["listbox"]*/
$filename = $_POST["listbox"];
/*Aggiungo il path al nome del file*/
$filename = $path.$filename;
/*apro il file*/
$fp = fopen($filename, "r") or die ("Couldn't open $filename");
/*legge riga per riga fino a fine file*/
while (!feof($fp))
   {
/* assegno a $line il valore della riga*/
   $line = fgets( $fp, 1024);
/*Verifica il contenuto di $line*/
   switch ($line)
      {
/*se la variabile $Callsign contiene la stringa 'Pilot Number'*/
       case $Callsign = stristr($line, 'Pilot Number:'):
/*sostituisce la stinga 'pilot number' con 'Callsign='*/
            $Callsign = str_replace("Pilot Number:","Callsign=",$Callsign);
/*elimino tutti gli spazi*/
         strtr($Callsign," ","");
/*cerco la posizione di '='*/
   $pos = strpos($Callsign,"=") + 1;
/*assegno alla variabile $Callsign i caratteri dalla posizione successiva a 
'=' fino alla fine*/
   $Callsign = substr($Callsign, $pos);
   break;
.
.
.
/*La cosa si ripete per ogni case dello switch*/
.
.
.
print $Callsign;
?>
Spero che ora il codice sia abbastanza chiaro.
Il problema si presenta quando cerco di eseguire il print $Callsign.
Se lo eseguo all'interno dello switch, la variabile me la stampa, mentre se 
lo eseguo al di fuori dello switch, non stampa niente, come se la variabile 
perdesse il valore assunto nello switch.
Spero di essere stato abbastanza chiaro.
Grazie
Ciao
Francesco
"iuz" <us...@host.network> ha scritto nel messaggio 
news:%Z_te.27066$b5.12...@news3.tin.it...


 $filename = $_POST["listbox"];
[..]
scusa ma sono molto stanco..
potresti postare anche un esempio del file da elaborare?
-- 
www.iuz-lab.info

 potresti postare anche un esempio del file da elaborare?
Non fa niente. Abbiamo risolto. :-)
Scusate il disturbo.
Grazie
Ciao
Francesco