preg_match
(PHP 3>= 3.0.9, PHP 4 )
preg_match -- Riconoscimento con espressioni regolari
Descrizione
int
preg_match ( string criterio, string testo [, array testi_riconosciuti [, int flags]])
Esegue un riconoscimento nel parametro testo utilizzando
l'espressione regolare indicata in criterio.
Se viene fornito il terzo parametro, testi_riconosciuti, questo verrà valorizzato
con i risultati della ricerca. In dettaglio $testi_riconosciuti[0] conterrà il testo che
si incrocia con l'intero criterio di ricerca, $testi_riconosciuti[1] conterrà il testo che soddisfa
il primo criterio posto tra parentesi, $testi_riconosciuti[2] il secondo e così via.
Il parametro flags può assumere i seguenti valori:
- PREG_OFFSET_CAPTURE
Se viene impostato questo flag, per ogni testo riconosciuto viene restituito
l'offset della stringa. Occorre notare che questo cambia il tipo di valore
restituito nell'array, infatti ogni elemento è, a sua volta, un'array composto dalla
stringa riconosciuta, all'indice 0, e dall'offset della stringa nell'indice
1. Questa costante è disponibile a partire dalla
versione 4.3.0 di PHP.
Il parametro
flags è disponibile a partire dalla versione 4.3.0
di
PHP.
La funzione preg_match() restituisce il numero di volte in cui è avvenuto
il riconoscimento del criterio. Questo può essere 0
(nessun riconoscimento) oppure 1 se preg_match() si ferma dopo
il primo riconoscimento. In condizioni normali, preg_match_all()
continua il riconoscimento fino alla fine del parametro
testo.
preg_match() restituirà FALSE se si verifica un errore.
Esempio 1. Ricerca del testo "php" // La lettera "i" dopo i delimitatori indica una ricerca case-insensitive
if (preg_match ("/php/i", "PHP è il linguaggio scelto.")) {
print "Il riconoscimento è avvenuto.";
} else {
print "Testo non riconosciuto.";
} |
|
Esempio 2. Cerca la parola "web" // La lettera \b nel criterio indica i limiti della parola. Così verrà riconosciuta solo
// la parola "web" e non parte di una parola più lunga come "webbing" oppure "cobweb"
if (preg_match ("/\bweb\b/i", "PHP è un linguaggio di programmazione per il web scelto da molti.")) {
print "Il riconoscimento è avvenuto.";
} else {
print "Testo non riconosciuto.";
}
if (preg_match ("/\bweb\b/i", "PHP è un linguaggio di programmazione installato su molti website")) {
print "Il riconoscimento è avvenuto.";
} else {
print "Testo non riconosciuto.";
} |
|
Esempio 3. Estrapolazione del dominio da un URL // come ottenere il nome dell'host da un URL
preg_match("/^(http:\/\/)?([^\/]+)/i",
"http://www.php.net/index.html", $matches);
$NomeHost = $matches[2];
// come ottenere gli ultimi due segmenti del nome dell'host
preg_match("/[^\.\/]+\.[^\.\/]+$/",$NomeHost,$matches);
echo "Nome del dominio: ".$matches[0]."\n"; |
L'esempio visualizzerà:
Nome del dominio: php.net |
|
Vedere anche
preg_match_all(),
preg_replace() e
preg_split().