Dans PHP, la fonction STRCSPN est une fonction de traitement de chaîne très pratique, qui est utilisée pour renvoyer le nombre de caractères passés du début d'une chaîne jusqu'à ce que tout caractère spécifié soit rencontré. Cette fonction convient particulièrement à la gestion des parties d'une chaîne qui ne contiennent pas certains caractères, ou lorsqu'ils recherchent certains caractères spécifiques, ils doivent obtenir leurs positions relatives.
<span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$charlist</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$start</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-literal">NULL</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>
$ Haystack : la chaîne cible, qui est la chaîne que vous souhaitez vérifier.
$ Charlist : La liste de caractères spécifiée, StrcSpn analysera la chaîne de dos de haystage $ jusqu'à ce que tout caractère de la liste soit trouvé.
$ start (facultatif): Spécifie l'emplacement pour démarrer la recherche, la valeur par défaut est 0 .
$ la longueur (facultatif): limite la longueur de caractères de la recherche, la valeur par défaut est nul , indiquant que la chaîne entière est recherchée.
La fonction STRCSPN renvoie une valeur entière, indiquant la position du début de la chaîne à l'emplacement où le caractère dans n'importe quel $ charlist est rencontré (ou lorsqu'un caractère de la liste de caractères est rencontré, il renvoie la position qui a été analysée). Si aucun caractères spécifié n'est rencontré, la longueur de la chaîne entière est renvoyée.
Montrons l'utilisation de la fonction STRCSPN avec quelques exemples simples.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Hello, World!"</span></span><span>;
</span><span><span class="hljs-variable">$characters</span></span><span> = </span><span><span class="hljs-string">" ,!"</span></span><span>;
</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$characters</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"The first occurrence of a character from the list is at position: <span class="hljs-subst">$position</span></span></span><span>";
</span><span><span class="hljs-comment">// Sortir:The first occurrence of a character from the list is at position: 5</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dans cet exemple, StrcSpn commence par la chaîne "Hello, World!" Jusqu'à ce que le personnage '' (espace) soit rencontré. Le résultat qu'il revient est de 5 , indiquant que le sixième caractère est un espace (l'indice du tableau commence à 0).
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Hello, World!"</span></span><span>;
</span><span><span class="hljs-variable">$characters</span></span><span> = </span><span><span class="hljs-string">" ,!"</span></span><span>;
</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$characters</span></span><span>, </span><span><span class="hljs-number">6</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"The first occurrence of a character from the list after position 6 is at: <span class="hljs-subst">$position</span></span></span><span>";
</span><span><span class="hljs-comment">// Sortir:The first occurrence of a character from the list after position 6 is at: 8</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dans cet exemple, nous spécifions que nous commençons à rechercher le 6ème personnage. Même si le personnage de l'espace est en 5ème position, la fonction commencera à regarder la position 6 jusqu'à ce que le personnage d'espace suivant '' soit rencontré, et le résultat est 8.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"123456789"</span></span><span>;
</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-string">"678"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"The first occurrence of a character from the list is at position: <span class="hljs-subst">$position</span></span></span><span>";
</span><span><span class="hljs-comment">// Sortir:The first occurrence of a character from the list is at position: 6</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Dans cet exemple, StrcSpn recherchera «6» , «7» ou «8» dans la chaîne. La position renvoyée par la fonction est le 6ème caractère (c'est-à-dire le caractère «6» ), indiquant la position où la première occurrence de la liste des caractères 678 est.
Des caractères inutiles clairs :
STRCSPN peut être utilisé pour effacer les caractères non liés dans les chaînes. Par exemple, extraire une chaîne contenant des nombres et supprimer des caractères non numériques.
<span><span><span class="hljs-variable">$input</span></span><span> = </span><span><span class="hljs-string">"abc123xyz"</span></span><span>;
</span><span><span class="hljs-variable">$digits</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>, </span><span><span class="hljs-string">"abcdefghijklmnopqrstuvwxyz"</span></span><span>));
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Extracted digits: <span class="hljs-subst">$digits</span></span></span><span>"; </span><span><span class="hljs-comment">// Sortir:Extracted digits: 123</span></span><span>
</span></span>
Vérification du mot de passe :
Si vous souhaitez détecter si un mot de passe contient des caractères illégaux (tels que des caractères de contrôle ou des espaces), STRCSPN est un outil très approprié.
<span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">"secure@123"</span></span><span>;
</span><span><span class="hljs-variable">$illegalChars</span></span><span> = </span><span><span class="hljs-string">" \t\r\n"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$illegalChars</span></span><span>) == </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$password</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Password is valid!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Password contains illegal characters!"</span></span><span>;
}
</span></span>
Nettoyage du texte :
Supposons que vous ayez un texte qui peut contenir des marques de ponctuation, en utilisant STRCSPN , il est facile d'extraire la première pièce sans ponctuation.
La fonction STRCSPN est un outil de traitement de chaîne efficace et flexible qui aide les développeurs à localiser la position de certains caractères dans une chaîne ou à couper les pièces valides d'une chaîne. En maîtrisant l'utilisation de cette fonction, vous pouvez traiter et analyser efficacement les données de chaîne, améliorer la clarté et la maintenabilité de votre code.