-
preg_match preciso
Non so che titolo dare, infatti non ho saputo nemmeno cercare bene il mio problema prima di scrivere.
Ho delle espressioni regolari. Ora, sypponiamo di cercare la parola avatar in una frase; la funzione restituisce true se fa la ricerca in una frase con avatars.
Come posso risolvere questo problema? Sono obbligato ad utilizzare le espressioni regolari, al massimo potrei usare stripos(), ma non credo risolvere il problema ed in ogni caso mi serve il supporto per i caratteri UTF-8, quindi devo andare di preg_match().
:wink:
-
Si usare la funzione preg_match() va benissimo:
infatti se per esempio scrivi:
Codice PHP:
<form action='' method='post'>
<input type='text' name='testo'>
</form>
<?php
if(isset($_POST['testo'])){
$t=$_POST['testo'];
if (preg_match('/avatar/i', $t)) {
echo "Avatar presente!";
} else {
echo "Avatar non presente!";
}
}
e scrivi avatar oppure dsadsavatardsdsa ti restituisce "Avatar presente!"
-
@memai, quello che scrivi tu mi sembra proprio ciò che @biccheddu voglia evitare...
Per fare in modo di trovare una singola parola (e non una parola che sia sottostringa di un'altra parola più grande), devi usare il delimitatore \b (chiamato, appunto, "word boundary").
Esiste anche il suo complementare, \B (che invece indica che la parola seguente o precedente NON deve trovarsi all'inizio o alla fine di una parola più grande).
Vedi l'esempio #2 nella documentazione di preg_match...
Stammi bene...
-
Sono na sega... (batte infinite volte la testa contro il muro)