La fonction STRCSPN est une fonction de PHP qui trouve la première occurrence d'un jeu de caractères spécifié dans une chaîne. Sa définition de fonction est la suivante:
<span><span><span class="hljs-keyword">int</span></span><span> </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">$characters</span></span><span>)
</span></span>
$ Haystack : La chaîne à rechercher.
$ caractères : contient le jeu de caractères à correspondre.
La fonction de STRCSPN est de renvoyer l'indice de position (c'est-à-dire le nombre de caractères) dans la chaîne $ haystack , à partir de la position de départ, jusqu'à ce qu'elle rencontre n'importe quel caractère dans le jeu de caractères $ . Si aucun caractères correspondant n'est trouvé, renvoyez la longueur totale de la chaîne.
Par exemple:
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, World!"</span></span><span>;
</span><span><span class="hljs-variable">$index</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-string">",!"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$index</span></span><span>; </span><span><span class="hljs-comment">// Sortir 5,parce que","et"!"Est apparu dans le 5 Peuet第 7 Peu</span></span><span>
</span></span>
Le codage de l'URL est souvent utilisé pour garantir que les caractères spéciaux de l'URL peuvent être transmis en toute sécurité, évitant à ces caractères de provoquer des erreurs ou une ambiguïté dans les demandes HTTP. Par exemple, les espaces sont codés en % 20 , # est codé comme % 23 , et et est codé comme % 26 , etc.
Lors du codage de l'URL d'analyse, en particulier lors de l'extraction des paramètres des chaînes de requête, nous devons souvent considérer comment gérer correctement ces caractères spéciaux. Les méthodes traditionnelles de segmentation des cordes peuvent conduire à des erreurs d'analyse en raison de l'existence de ces caractères spéciaux.
Lorsque nous devons analyser une chaîne de requête dans une URL, ou extraire la valeur d'un certain paramètre de l'URL, STRCSPN peut être très efficace pour nous aider à localiser l'emplacement d'occurrence du caractère cible. Surtout lorsqu'il s'agit de codages complexes, StrcSPN peut contrôler avec précision les positions de début et de fin de nos chaînes interceptées.
Supposons que nous ayons une chaîne de requête contenant un codage d'URL, et nous devons extraire la valeur d'un certain paramètre:
<span><span><span class="hljs-variable">$url</span></span><span> = </span><span><span class="hljs-string">"https://example.com/page?name=John+Doe&age=25&city=New%20York"</span></span><span>;
</span></span>
Si nous voulons extraire la valeur du paramètre de nom , c'est-à-dire John + Doe , nous pouvons le localiser avec précision via STRCSPN :
<span><span><span class="hljs-comment">// Trouver name= La chaîne suivante</span></span><span>
</span><span><span class="hljs-variable">$param_str</span></span><span> = </span><span><span class="hljs-string">"name=John+Doe&age=25&city=New%20York"</span></span><span>;
</span><span><span class="hljs-variable">$start</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$param_str</span></span><span>, </span><span><span class="hljs-string">"name="</span></span><span>) + </span><span><span class="hljs-number">5</span></span><span>; </span><span><span class="hljs-comment">// venez name= 的起始Peu置,Et sauter "name="</span></span><span>
</span><span><span class="hljs-variable">$end</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$param_str</span></span><span>, </span><span><span class="hljs-variable">$start</span></span><span>), </span><span><span class="hljs-string">"&"</span></span><span>); </span><span><span class="hljs-comment">// Trouver下一个 & ou symbole de fin</span></span><span>
</span><span><span class="hljs-variable">$value</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$param_str</span></span><span>, </span><span><span class="hljs-variable">$start</span></span><span>, </span><span><span class="hljs-variable">$end</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>; </span><span><span class="hljs-comment">// Sortir John+Doe</span></span><span>
</span></span>
Dans cet exemple, nous utilisons STRCSPN pour trouver le nombre de caractères dans la chaîne à partir de name = au suivant et symbole (ou à la fin de la chaîne), obtenant ainsi efficacement la valeur du paramètre John + Doe .
Dans le codage de l'URL, les espaces sont généralement codés comme + , et % 20 représente également les espaces. Nous devons être particulièrement prudents lors de l'analyse pour nous assurer que les valeurs analysées peuvent être converties correctement. Par exemple, nous avons une chaîne codée par URL John + Doe que nous pouvons gérer avec précision en utilisant STRCSPN si nous voulons le convertir en John Doe .
<span><span><span class="hljs-variable">$encoded_str</span></span><span> = </span><span><span class="hljs-string">"John+Doe"</span></span><span>;
</span><span><span class="hljs-variable">$index</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-variable">$encoded_str</span></span><span>, </span><span><span class="hljs-string">"+"</span></span><span>); </span><span><span class="hljs-comment">// Trouver '+' 符号的Peu置</span></span><span>
</span><span><span class="hljs-variable">$decoded_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$encoded_str</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$index</span></span><span>) . </span><span><span class="hljs-string">" "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$encoded_str</span></span><span>, </span><span><span class="hljs-variable">$index</span></span><span> + </span><span><span class="hljs-number">1</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_str</span></span><span>; </span><span><span class="hljs-comment">// Sortir John Doe</span></span><span>
</span></span>
Cette méthode extrait non seulement avec précision John et DOE , mais traite également les caractères spéciaux codés par URL via STRCSPN .
D'après l'exemple ci-dessus, nous pouvons voir que la fonction STRCSPN joue un rôle énorme dans la gestion de l'encodage de l'URL. Qu'il s'agisse de valeurs de paramètres d'analyse dans les chaînes de requête ou de traitement des caractères codés dans les URL, STRCSPN peut nous aider à effectuer des tâches de manière efficace et précise. En tirant intelligemment la fonctionnalité de recherche de caractères de STRCSPN , nous pouvons éviter les erreurs qui peuvent être causées par des méthodes traditionnelles de segmentation des chaînes, ce qui rend notre analyse d'URL plus stable et plus fiable.
Étiquettes associées:
URL