Position actuelle: Accueil> Derniers articles> Quelle est la différence entre les fonctions STRRPOS et STRPOS? Comment devrions-nous choisir de l'utiliser dans différents scénarios?

Quelle est la différence entre les fonctions STRRPOS et STRPOS? Comment devrions-nous choisir de l'utiliser dans différents scénarios?

gitbox 2025-07-21

Dans PHP, les fonctions STRRPOS et STRPOS sont utilisées pour trouver l'emplacement où la sous-chaîne apparaît d'abord dans la chaîne principale. Ils sont très similaires, mais ont des différences importantes. Dans différents scénarios d'application, nous devons choisir et utiliser la fonction appropriée en fonction des caractéristiques de ces deux fonctions.

1. Introduction à la fonction STRPOS

La fonction STRPOS est utilisée pour trouver l'emplacement où une sous-chaîne apparaît d'abord dans la chaîne principale. Cette fonction renvoie la position de début de la sous-chaîne dans la chaîne principale (en fonction de l'indice de 0). Si la sous-chaîne n'est pas trouvée, false est renvoyé.

 <span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"world"</span></span><span>;
</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$position</span></span><span>;  </span><span><span class="hljs-comment">// Sortir 7</span></span><span>
</span></span>

Dans l'exemple ci-dessus, STRPOS retourne 7, indiquant où la chaîne "Monde" apparaît d'abord dans "Hello, World!".

2. Introduction à la fonction strrpos

Semblable à STRPOS , la fonction STRRPOS est utilisée pour trouver la dernière occurrence d'une sous-chaîne dans la chaîne principale. Il renvoie la position de début de la dernière occurrence de la sous-chaîne. Si la sous-chaîne n'est pas trouvée, false est renvoyé.

 <span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"Hello, world, world!"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"world"</span></span><span>;
</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strrpos</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$position</span></span><span>;  </span><span><span class="hljs-comment">// Sortir 14</span></span><span>
</span></span>

Dans cet exemple, STRRPOS renvoie 14 parce que la dernière occurrence du "monde" dans "Hello, World, World!" commence par l'indice 14.

3. La différence entre STRPOS et STRRPOS

D'après l'exemple ci-dessus, nous pouvons voir que la principale différence entre STRPOS et STRRPOS est:

  • STRPOS : Renvoie l'emplacement où la sous-chaîne apparaît d'abord.

  • STRRPOS : Renvoie la dernière occurrence de la sous-chaîne.

En d'autres termes, STRPOS cherche de gauche à droite, tandis que STRPOS cherche de droite à gauche. Les autres comportements des deux fonctions sont fondamentalement les mêmes, y compris le type de valeur de retour, les paramètres passés, etc.

4. Quand utiliser StrPOS et STRPOS

Lorsque vous choisissez d'utiliser STRPOS ou STRRPOS , vous devez décider en fonction des besoins réels:

Scénarios utilisant STRPOS :

  • Trouvez le premier emplacement d'occurrence : Si vous devez trouver le premier emplacement d'occurrence d'une sous-chaîne dans une chaîne (par exemple, trouvez la première correspondance valide lors du traitement de l'entrée de l'utilisateur), STRPOS est préféré.

  • Considérations de performance : STRPOS est plus efficace lorsque vous vous souciez uniquement de l'endroit où il apparaît pour la première fois, car il ne traversera la chaîne qu'une seule fois.

Scénarios utilisant STRRPOS :

  • Trouvez la dernière occurrence d'une sous-chaîne : STRRPOS est idéal lorsque vous devez trouver la dernière occurrence d'une certaine sous-chaîne. Par exemple, lors de l'analyse d'un journal, vous ne pouvez être intéressé que par le dernier enregistrement ou le dernier message d'erreur du journal.

  • Trouvez le dernier emplacement de délimiteur : par exemple, lorsque les chemins de fichier d'analyse, vous ne vous souciez peut-être que de l'extension de fichier. STRRPOS peut vous aider à localiser rapidement l'emplacement du dernier point ( . ) et à extraire l'extension de fichier.

5. Résumé

  • STRPOS est utilisé pour trouver l'emplacement où la sous-chaîne apparaît d'abord, adaptée aux scénarios qui doivent être recherchés de gauche à droite.

  • STRRPOS est utilisé pour trouver la dernière occurrence d'une sous-chaîne, adaptée aux scénarios qui doivent être recherchés de droite à gauche.

Le choix de ces deux fonctions devrait être basé sur des besoins commerciaux spécifiques. Si vous devez trouver la première correspondance d'une chaîne, utilisez STRPOS ; Si vous avez besoin du dernier match, utilisez STRRPOS . Comprendre leurs différences peut nous aider à prendre des décisions plus précises lors de la rédaction de programmes PHP, améliorant ainsi la lisibilité et l'efficacité de notre code.