Controlla se una stringa contiene una sottostringa in PHP

Minahil Noor 30 marzo 2021
  1. Usa la funzione strpos() per verificare se una stringa contiene una sottostringa in PHP
  2. Usa la funzione preg_match() per verificare se una stringa contiene una sottostringa in PHP
Controlla se una stringa contiene una sottostringa in PHP

Questo articolo introdurrà diversi metodi per controllare se una stringa contiene una sottostringa in PHP usando le funzioni strpos() e preg_match().

Usa la funzione strpos() per verificare se una stringa contiene una sottostringa in PHP

Useremo la funzione incorporata strpos() per controllare se una stringa contiene una sottostringa. Questo comando controlla l’occorrenza di una sottostringa passata; la sintassi corretta per eseguire ciò è la seguente:

strpos($originalString, $checkString, $offset);

La funzione incorporata strpos() ha tre parametri, che sono discussi di seguito:

Parametri Descrizione
$originalString obbligatorio È la stringa che vogliamo controllare per la sottostringa.
$checkString obbligatorio È la stringa che vogliamo controllare in $checkString.
$offset opzionale È la posizione iniziale del processo di ricerca; se l’offset è negativo, il processo di ricerca inizierà dalla fine.

Questa funzione restituisce la posizione della sottostringa rispetto alla posizione della stringa originale. Il programma sotto mostra come possiamo usare la funzione strpos() per controllare se una stringa contiene una sottostringa.

<?php
$mystring = "This is a PHP program.";

if (strpos($mystring, "program.") !== false) {
    echo("True");
}
?>

Produzione:

True

Se passiamo il parametro $offset, la funzione inizierà la ricerca dalla posizione specificata.

<?php
$mystring = "This is a PHP program.";

if (strpos($mystring, "PHP", 13) !== false) {
    echo("True");
} else {
    echo("False");
}
?>

Produzione:

False

L’output ha mostrato False perché la stringa che abbiamo cercato era prima dell’offset.

Usa la funzione preg_match() per verificare se una stringa contiene una sottostringa in PHP

In PHP, possiamo anche usare la funzione preg_match() per controllare se una stringa contiene una parola specifica. Questa funzione utilizza espressioni regolari per trovare la corrispondenza con i modelli. La sintassi corretta per utilizzare questa funzione è la seguente:

preg_match($pattern, $inputString, $matches, $flag, $offset);

La funzione preg_match() accetta cinque parametri. Il dettaglio dei suoi parametri è il seguente

Parametri Descrizione
$regexPattern obbligatorio È il modello che cercheremo nella stringa originale.
$string obbligatorio È la stringa che cercheremo nella stringa originale.
$matches opzionale Questo parametro memorizza il risultato del processo di corrispondenza in esso.
$flag opzionale Questo parametro specifica i flag. Abbiamo due flag per questo parametro: PREG_OFFSET_CAPTURE e PREG_UNMATCHED_AS_NULL.
$offset opzionale Questo parametro indica la posizione iniziale del processo di abbinamento.

Useremo il pattern /{$search}/i per cercare una parola specifica. Il programma che controlla se una stringa contiene una parola specifica è il seguente:

<?php
$mystring = "This is a php program.";
$search = "a";
if(preg_match("/{$search}/i", $mystring)) {
    echo "True"; } else {
    echo("False");
}
?>

Produzione:

True

Articolo correlato - PHP String