Ricavare variabili da una stringa
Inviato: 29/09/2010, 18:19
Salve a tutti. Avrei bisogno dell'ennesimo aiuto. Ho cercato per google ma sinceramente non saprei cosa cercare.
Mettiamo il caso che ci sia una campo di testo che un utente può compilare. Il testo inviato dall'utente deve essere elaborato nella seguente immaginaria pagina php:
Prende la stringa e la confrontiamo con alcune stringhe che abbiamo in un array. Nel caso combacino parzialmente otteniamo come differenza alcune variabili. Capisco che è difficile detto così quindi farò degli esempi:
Mettiamo che un utente invii una stringa del tipo:
Però voglio anche poter inviare un messaggio di errore nel caso quel parziale non combaciasse esattamente, per esempio:
Non so se mi sono spiegato.
Forse è risolvibile con quella specie di selettori di cui non trovo mai una spegazione.
Ho infatti visto tipo dei codici che dicono:
però io non so cosa voglia dire (.*?) e perchè quel (.*?) si trasformi in $1.
Qualcuno può spiegarmelo?
Mettiamo il caso che ci sia una campo di testo che un utente può compilare. Il testo inviato dall'utente deve essere elaborato nella seguente immaginaria pagina php:
Prende la stringa e la confrontiamo con alcune stringhe che abbiamo in un array. Nel caso combacino parzialmente otteniamo come differenza alcune variabili. Capisco che è difficile detto così quindi farò degli esempi:
Mettiamo che un utente invii una stringa del tipo:
Siccome che da qualche parte questa stringa è parzialmente simile:mangia 3 mele
voglio ricavare $i.mangia $i mele
Però voglio anche poter inviare un messaggio di errore nel caso quel parziale non combaciasse esattamente, per esempio:
voglio che porti ad un errore, visto che meleojioi non è uguale a mele.mangia 3 meleojioi
Non so se mi sono spiegato.
Forse è risolvibile con quella specie di selettori di cui non trovo mai una spegazione.
Ho infatti visto tipo dei codici che dicono:
Codice: Seleziona tutto
$search = array(
'/\[b\](.*?)\[\/b\]/is',
'/\[i\](.*?)\[\/i\]/is',
'/\[u\](.*?)\[\/u\]/is',
'/\[img\](.*?)\[\/img\]/is',
'/\[url\](.*?)\[\/url\]/is',
'/\[url\=(.*?)\](.*?)\[\/url\]/is'
);
$replace = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<u>$1</u>',
'<img src="$1" />',
'<a href="$1">$1</a>',
'<a href="$1">$2</a>'
);
$var = preg_replace ($search, $replace, $var);
return $var;
Qualcuno può spiegarmelo?