Grazie mille. La provo subito.Ciao
L'ho provata ma ottengo:
Prime 3: Ieri Ultime 3: i
Magari però sbaglio. Ad esempio non so che valore devo assegnare a $matches. E poi saresti così gentile da spiegarmi il significato dell'if 1 ==.
Per quanto riguarda matches puoi lasciare così, l'array verrà inizializzato dalla funzione.Originariamente inviato da nicola75ss
L'ho provata ma ottengo:
Prime 3: Ieri Ultime 3: i
Magari però sbaglio. Ad esempio non so che valore devo assegnare a $matches. E poi saresti così gentile da spiegarmi il significato dell'if 1 ==.
if (1 == $var) è la stessa cosa che scrivere if ($var == 1), solamente che nel caso in cui ti dovessi dimenticare un uguale scrivendo if (1 = $var) te ne accorgeresti immediatamente dalla bestemmia che lancerebbe l'inteprete php, mentre se dimentichi un uguale nello scrivere if ($var = 1) avrai due cose:
- Un'espressione che restituisce sempre vero come valore di verità
- Un errore di logica molto subdolo e a volte difficile da individuare
questi è il motivo per cui ho questa abitudine di scrivere le espressioni di uguaglianza con un valore costante a sinistra.
La precedente regexp non riesco a farla funzionare come vorrei, quindi se nel frattempo ti accontenti:
Soluzione rapida e indolore, ma non il massimo dal punto di vista delle performance, spezza una frase in tutte le sue parole, e le mette nell'array $matches:
poi ti prendi le prime e le ultime.Codice PHP:if (preg_match_all('/([a-z]+)/i', $testo, $matches)) {
var_dump($matches);
}
Parole sante. Sapessi quante volte sclero perchè il codice non funzia come vorrei e dopo tanti sbattimenti mi accorgo di aver dimenticato un uguale.mentre se dimentichi un uguale nello scrivere if ($var = 1) avrai due cose:
- Un'espressione che restituisce sempre vero come valore di verità
- Un errore di logica molto subdolo e a volte difficile da individuare
Grazie per la spiegazione.
Ora provo la regexp che mi hai passato.
![]()
Perdonate l'ignoranza ma come faccio ad accedere ai vari elementi.
Con la normale sintassi per leggere gli array non ci riesco.
Mi restituisce sempre Array anzichè le prime e le ultime.
Approfitto della tua presenza online fabio per chiederti se puoi dirmi come recuperare gli elementi dell'array. Grazie e scusa ancora del disturbo
Per vedere in dettaglio come viene riempito l'array:
http://it.php.net/manual/it/function.preg-match-all.php
Nel tuo caso dovrebbe essere sufficiente fare
per avere le prime tre parole.Codice PHP:echo $matches[0][0]." "$matches[0][1]." "$matches[0][2]." ";
In ogni caso quando non sai come è fatta una variabile usa la funzione var_dump per vederne tipo e contenuto.
Ciao
Grazie mille fabio. Io scrivevo invece
P.S. Anvedi oh che son diventato "senior"Codice PHP:echo $matches[0]." "$matches[1]." "$matches[2]." ";
![]()
![]()
Ok, adesso ho le singole parole che compongono la mia stringa però il mio problema ancora non è risolto infatti se ottengo
"ho visto l ultimo" non è molto carino.
Quindi il problema degli apostrofi persiste.