PHP fournit une variété de fonctions de traitement de chaîne, où la fonction Strspn () est utilisée pour calculer la longueur des caractères en une chaîne, qui contient successivement la même chaîne. Cela peut nous aider à déterminer rapidement le nombre de caractères en deux cordes.
La syntaxe de base de la fonction Strspn () est la suivante:
int strspn(string $str1, string $str2 [, int $start [, int $length]])
Description du paramètre de fonction:
STR1: requis, la première chaîne à vérifier.
STR2: requis, contient la chaîne pour correspondre au caractère.
Démarrer: Facultatif, spécifiez où démarrer la vérification dans STR1, et la valeur par défaut commence à 0.
Longueur: facultatif, spécifiez le nombre de caractères à vérifier, par défaut sur la longueur de STR1.
Cette fonction renvoie le nombre de caractères inclus dans STR2 dans des caractères successifs à partir de STR1. Si tous les caractères de STR1 existent dans STR2, la longueur de STR1 est retournée.
L'exemple suivant montre comment utiliser la fonction strRSPN () pour comparer le nombre de caractères correspondants dans une chaîne:
$str1 = "Hello, world!";
$str2 = "Hewoi";
$match = strspn($str1, $str2);
echo $match; // Sortir 2
Dans cet exemple, les deux caractères "H" et "E" qui commencent par la chaîne $ STR1 sont tous deux contenus dans $ STR2, renvoyant ainsi 2.
Si vous souhaitez détecter si tous les caractères de $ STR1 apparaissent dans $ STR2, vous pouvez utiliser la méthode suivante:
$str1 = "foobar";
$str2 = "oofrab";
if (strlen($str1) == strspn($str1, $str2)) {
echo "$str1 contains only characters found in $str2";
} else {
echo "$str1 contains characters not found in $str2";
}
Ce code détermine si les caractères de $ STR1 sont complètement inclus dans $ STR2 et publie le résultat correspondant.
Vous pouvez utiliser la fonction strRSPN () et substr () pour supprimer les caractères non alphabétiques dans une chaîne. L'exemple est le suivant:
$str = "Hello, world!";
$letters_only = substr($str, strspn($str, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));
echo $letters_only; // Sortir "Helloworld"
Ici, la position du premier caractère non alphabétique dans la chaîne se trouve via Strspn (), puis l'intercepter avec substr (), ne laissant que la partie de la lettre derrière.
Vous pouvez également utiliser la fonction Strspn () pour filtrer les balises HTML dans les chaînes, en conservant uniquement le contenu texte:
$str = "<p>This is a <strong>text</strong> with <i>HTML</i> tags</p>";
$text_only = substr($str, strspn($str, " <>&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));
echo $text_only; // Sortir "This is a text with HTML tags"
Cette méthode conserve des caractères de texte communs et des symboles partiels et supprime les balises HTML.
La fonction Strspn () est un outil puissant en PHP pour gérer la correspondance des chaînes. En maîtrisant ses paramètres et son utilisation, vous pouvez facilement effectuer diverses opérations telles que la comparaison des chaînes et le filtrage des caractères non alphabétiques. Combinée à des expressions substr () ou régulières, Strspn () peut améliorer considérablement l'efficacité du traitement des chaînes dans le développement quotidien.