Position actuelle: Accueil> Derniers articles> Quelle est la différence entre Stripos et STRPOS?

Quelle est la différence entre Stripos et STRPOS?

M66 2025-05-17

Dans la programmation PHP, nous rencontrons souvent la nécessité d'une recherche de chaîne, comme déterminer si une sous-chaîne existe dans une autre chaîne. PHP fournit plusieurs fonctions intégrées pour cela, les deux plus couramment utilisées sont StrPOS () et StrPOS () . Bien que leur utilisation semble très similaire, ils se comportent avec une différence clé: qu'il soit sensible à la casse.

1. StrPos () : recherche de chaîne sensible à la casse

StrPos () est utilisé pour trouver où une chaîne apparaît d'abord dans une autre chaîne. Cette fonction est sensible à la casse .

grammaire:

 int|false strpos(string $haystack, string $needle, int $offset = 0)
  • $ Haystack est la chaîne cible à rechercher.

  • $ l'aiguille est la sous-chaîne à rechercher.

  • $ Offset est une position de début facultative.

Exemple:

 $pos = strpos("Welcome to m66.net", "M");
if ($pos !== false) {
    echo "Found at position $pos";
} else {
    echo "Not found";
}

La sortie sera:

 Not found

La raison en est que "M" est en majuscule, et "M" dans la chaîne d'origine est minuscule, strPos () sera strictement sensible à la casse, donc il renvoie faux .

2. Stripos () : recherche de chaîne insensible à la casse

Contrairement à StrPos () , StrPos () est une version insensible à la casse . Il est logiquement exactement cohérent, ignore simplement la casse supérieure et inférieure des caractères.

grammaire:

 int|false stripos(string $haystack, string $needle, int $offset = 0)

Exemple:

 $pos = stripos("Welcome to m66.net", "M");
if ($pos !== false) {
    echo "Found at position $pos";
} else {
    echo "Not found";
}

Ce code sera sorti:

 Found at position 0

Parce que Stripos () traite "M" et "M" comme les mêmes personnages.

3. Quand devraient-ils être utilisés?

La fonction à choisir dépend de vos besoins spécifiques:

  • Si vous avez besoin d'une correspondance exacte , telle que la vérification si une variable contient une orthographe de cas spécifique (comme la vérification du mot de passe), l'utilisation de StrPos () est plus appropriée.

  • Si vous voulez simplement déterminer si un mot-clé existe et ne vous soucie pas des caractéristiques supérieures et inférieures (comme dans la fonction de recherche), Stripos () est plus pratique.

Exemple pratique: filtrage des mots sensibles (cas insensible)

 $comment = "This is a stupid comment.";
$badword = "Stupid";

if (stripos($comment, $badword) !== false) {
    echo "Warning: Inappropriate language detected.";
}

Cela peut détecter efficacement les mots sensibles dans diverses combinaisons de cas.

Résumer

fonction sensible aux majuscules et minuscules Type de valeur de retour utiliser
strPos () Oui int ou faux Recherche précise
stripos () Non int ou faux Ignorer les recherches de cas

Comprendre la différence entre eux et les utiliser dans le bon scénario rendra votre code plus précis et plus efficace. J'espère que cet article peut vous aider à mieux comprendre la différence entre ces deux fonctions!