Newsgroup: it.comp.www.php
Titolo: Sapre se una lettera è presente in una stringa...come??

Salve,
come si fa in php a capire se una lettera č presente in una
stringa? Ammettiamo che io abbia "pippo;pluto;paperino" e volessi
riscrivere i tre nomi su tre righe distinte, cioč cosě:
pippo
pluto
paeperino
Potrei fare un ciclo e vedere finchč il carattere ";" č
presente nella mia stringa. Copiarla dalla prima posizione fino a quella in
cui c'č il carattere ";" (quello che mi interessa) e cosě mi prendo il
primo nome. Salvo la mia stringa a partire dalla posizione in c'č il
carattere che mi serve fino alla fine e rifaccio lo stesso giochetto.
Il
problema saprei come risolverlo con un altro linguaggio, ma in php non ho
ben idea di cosa ho a disposizione. Esistono funzioni o altre cose che mi
vengono in aiuto? Qualcuno ha qualche idea?
Grazie, saluti.
--------------------------------
Inviato via 
http://usenet.iol.it

 Esistono funzioni o altre cose che mi vengono in aiuto? Qualcuno ha qualche idea?
Si, ne esistono e sono parecchie.
Basta soltanto non impigrirsi e andarsi a leggere il manuale ogni tanto, 
che è disponibile on line e gratuitamente.
bye

 riscrivere i tre nomi su tre righe distinte, cioč cosě:
$str = "pippo;pluto;paperino";
$str = str_replace(";", "<BR>\n", $str);
echo $str;

echo
$str;
Pur non conosciendo il php ho capito l'utilizzo della funzione
replace (sonoun programmatore) :)
A me serviva il ciclo perchč in quel
modo potevo scrivere quello che volevo...magari prima del nome che, a quel
punto mi ero selezionato.
In questo modo non faccio altro che sostituire
al carattere specificato un "vai a capo".
Grazie comunque per la
risposta, saluti :)


che è disponibile on line e gratuitamente.
Mi stò avvicinando al php, e
sono fresco di linguaggio.
Saluti.


 punto mi ero selezionato.
allora esamina anche l'utilissimo explode() (come nella risposta da Ezio)

 allora esamina anche l'utilissimo explode() (come nella risposta da Ezio)
Infatti stavo per suggerirlo anch'io :-)
Se il problema è quello di splittare una stringa utilizzando un separatore,
explode() è molto pratica:
    $stringa_da_far_esplodere = "pippo;pluto;paperino";
    $array_delle_parole_esplose = explode(";", $stringa_da_far_esplodere);
    for($i = 0; $i < count($array_delle_parole_esplose); $i++)
        {
        echo "$array_delle_parole_esplose[$i]<br>\n";
        }
E' tutto.
Ciao
:) Roberto

In subordine hai altre due soluzioni che fanno pressappoco le stesse cose di
explode()
1. la funzione "split()", accetta come argomento un'epressione regolare che
funge da separatore, una stringa e, opzionalmente, un limitatore del numero
di risultati restituiti. Restituisce un array delle sottostringhe trovate.
Riprendendo la tua stringa (un po' modificata):
    $stringa = "pippo, pluto e paperino";
    $parole = split(", | e ", $stringa);
    foreach($parole as $parola)
        echo "$parola<br>\n";
Nota che il separatore passato a split(), cioè
   (", | e ")
significa "separa le parole delimitate dalla combinazione virgola+spazio
OPPURE ("|") dalla combinazione "spazio+vocale "e"+spazio". Se non hai
bisogno della potenza delle espressioni regolari, però, "explode()" andrà
benissimo, è facile da usare e molto veloce.
2. puoi usare strtok(), altra variazione sul tema. E' un po' più farraginosa
delle altre, ma dalle ugualmente un'occhiata sul manuale.
Oppure puoi DECISAMENTE complicarti l'esistenza e utilizzare la funzione
unpack(): e qui ti rimando ancor più volentieri al manuale di PHP perché io
non la uso MAI e ti direi un sacco di sciocchezze :-)
ciao
:) Roberto