Recherche de la deuxième occurrence d'une chaîne à l'aide de strpos
La fonction strpos en PHP est un outil utile pour trouver la position de la première occurrence d'une sous-chaîne dans une chaîne plus grande. Cependant, dans certains cas, vous devrez peut-être localiser la deuxième occurrence ou les occurrences suivantes.
Une approche pour trouver la deuxième occurrence consiste à utiliser une boucle ou une récursion pour parcourir la chaîne et compter le nombre de fois où la sous-chaîne apparaît. Cependant, cela peut s'avérer inefficace et prendre beaucoup de temps pour les chaînes volumineuses.
Une solution plus efficace consiste à utiliser la fonction strposX, une fonction personnalisée conçue spécifiquement à cet effet. Cette fonction prend trois paramètres : la botte de foin (la chaîne dans laquelle vous recherchez), l'aiguille (la sous-chaîne que vous recherchez) et le nombre (l'occurrence qui vous intéresse).
Le La fonction strposX s'appelle récursivement pour rechercher l'occurrence spécifiée. Si le nombre est 1, il se comporte comme strpos et renvoie la position de la première occurrence. Si le nombre est supérieur à 1, il ajoute la longueur de l'aiguille à la position de l'occurrence précédente et continue la recherche.
Voici une version simplifiée de la fonction strposX :
function strposX($haystack, $needle, $number = 0) { return strpos($haystack, $needle, $number > 1 ? strposX($haystack, $needle, $number - 1) strlen($needle) : 0 ); }
Cette fonction vous permet de trouver facilement la deuxième, la troisième ou toute occurrence ultérieure d'une sous-chaîne, ce qui en fait un outil précieux pour les tâches de manipulation de chaînes en PHP.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3