Newsgroup: it.comp.www.php
Titolo: Problemio con le stringhe

Salve
Ho un problema con le stringhe, io carico un file di testo in questo
modo e lo printo con un echo
<?php
        $file=file("prova");
        $quanti=sizeof($file);
        for($i=0;$i<$quanti;$i++){
        echo $file[$i];
        }
        ?>
586-A6-3200B;AMD;CPUS754;CPU AMD Athlon 64 3200+, 1MB, FSB800, AMD
Boxed, G/3;588; € 489,90 ; 
e questa e' una riga che viene buttata fuori
la domanda e': come faccio a salvare in un array tutti i campi
delimitati da ; ???
Cioe' io vorrei che il mio array contenga per ogni casella in
progressione ogni campo che che legge sul file, delimitato da ;
Es:
586-A6-3200B    //casella 0
AMD    // casella 1
e via cosi'
Qualcuno sa come fare? 
Grazie mille in anticipo

 a salvare in un array tutti i campi delimitati da ; ???
http://it2.php.net/manual/en/function.explode.php
explode -- Split a string by string
array explode ( string separator, string string [, int limit])
nel tuo caso sara' qualcosa tipo:
$array = explode ( ";", $stringa );
e dentro gli elementi $array[$i] troverai i campi della stringa.
ciao,
--Lorenzo

         ?>
se sai in anticipo quanti campi sono, puoi fare cosě:
 <?php
         $file=file("prova");
         $quanti=sizeof($file);
         for($i=0;$i<$quanti;$i++){
            list ($tipo[], $cpu[], $marca[], $prezzo[], ecc..) = split (";",
$file[$i]);
        }
?>
ciao,
ste

 ?>
Ehi, grazie =)
Pero' poi list come lo uso?
Perche' di quelle linee ne ho un bordello...
Nell'array $tipo[], ci posso infilare anche i tipi delle linee
successive?
e poi immagino che io possa stampare a seconda del tipo?
Grazie mille ancora
Whamoo

 successive?
Certo! Se guardi bene il codice quelli ce generi con list sono array, quindi
$tipo[0] contiene il tipo della prima riga del file, $tipo[1] il tipo della
seconda e via dicendo per tutte le righe del file, stessa cosa per $cpu[] e
tutti gli altri campi delimitati dal ;
ciao,
ste

 tutti gli altri campi delimitati dal ;
ah! occhio solo ad una cosa, l'ultimo campo quasi sicuramente avrà uno
spazio finale (a causa del ritorno a capo credo, non l'ho mai capito bene)
che dovrai togliere con trim().
ciao,
ste

 ste
Grazie infinite =)=)=) sei stato incredibilmente utile e veloce !!
Mi hai risolto un problema che mi avrebbe richiesto un sacco di tempo
;-)
Graziegraziegraziegraziegrazie
whamoo

 ste
Uh un'ultima cosa, essendo list stato creato dentro il ciclo for, alla
chiusura di questultimo, tutti gli array non vengono deallocati??
Se si cosa faccio li dichiaro prima del for e poi li riuso dentro no? =)
whamoo


scusa questo passaggio non mi è chiaro il list è solo un costrutto del
linguaggio non lo crei tu, e in php non c'è bisogno di dichiarare le
variabili(vedi array) prima, quello che ti ho dato è uno dei diversi modi di
creare un array e basta, alla chiusura del ciclo ti ritrovi i tuoi array
pronti per l'uso e amen, non ci sono problemi, almeno io non ho mai avuto
problemi con questo metodo.
P.S.: scusa l'ignoranza ma non capisco cosa vuoi dire con deallocati..
ste

 wrote:

Ok credo di aver capito =)
Te lo ho chiesto perche' in c++, se io uso una variabile dentro a un
ciclo (o a due parentesi), alla fine del ciclo, la variabile, viene
"scaricata dalla memoria" (deallocata) e non si puo' piu' usare, non
sapevo se in php fosse cosi', mi sembra di capire che non e' cosi' =)
Whamoo


ah! lo vedi ho imparato una cosa nuova anch'io! ;o) il fatto è che il php e
l'actionscript(macromedia flash) sono la mia prima esperienza di
programmazione, il c++ per me è un semplice post-incremento della var c in
actionscript :o))
ste