Position actuelle: Accueil> Derniers articles> Quelle est la différence entre Strrchr et STRPOS? Conseils pour utiliser les deux ensemble

Quelle est la différence entre Strrchr et STRPOS? Conseils pour utiliser les deux ensemble

gitbox 2025-08-27

En PHP, la manipulation de la chaîne est une tâche très courante, où deux fonctions strrchr () et strPos () sont souvent utilisées. Bien qu'ils aident tous les développeurs à traiter les chaînes, ils sont utilisés et mis en œuvre différemment. Cet article explorera les différences entre ces deux fonctions en détail et donnera quelques conseils courants pour vous aider à utiliser ces deux fonctions plus efficacement.

1. Fonction StrPos ()

StrPos () est une fonction en PHP pour trouver l'emplacement où une chaîne apparaît d'abord. Il renvoie la position dans la chaîne où le caractère ou la sous-chaîne spécifiée apparaît pour la première fois (compter à partir de 0). Si cela n'est pas trouvé, strPos () renvoie false .

Prototype de fonction:

 <span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">strpos</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">mixed</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span> [, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$offset</span></span><span> = </span><span><span class="hljs-number">0</span></span><span> ] )
</span></span>
  • $ Haystack : La chaîne à rechercher.

  • $ aiguille : le caractère ou la sous-chaîne à trouver.

  • $ offset (facultatif): l'emplacement pour démarrer la recherche. S'il n'est pas fourni, la valeur par défaut commence à partir du début de la chaîne.

Exemple de code:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</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">if</span></span><span> (</span><span><span class="hljs-variable">$position</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Chaîne '<span class="hljs-subst">$needle</span></span></span><span>' exister '</span><span><span class="hljs-subst">$haystack</span></span><span>' La position dans le: </span><span><span class="hljs-subst">$position</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">"Pas trouvé '<span class="hljs-subst">$needle</span></span></span><span>' Chaîne。";
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Sortir:

 <span><span>Chaîne </span><span><span class="hljs-string">'world'</span></span><span> exister </span><span><span class="hljs-string">'Hello, world!'</span></span><span> La position dans le: 7
</span></span>

2. Fonction StrChr ()

strrchr () est une fonction utilisée pour trouver l'emplacement du caractère ou de la sous-chaîne spécifiée dans une chaîne qui apparaît pour la dernière fois. Contrairement à StrPos () , Strrchr () renvoie la pièce qui commence du dernier caractère correspondant à la fin de la chaîne.

Prototype de fonction:

 <span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-title function_ invoke__">strrchr</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">mixed</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span> )
</span></span>
  • $ Haystack : La chaîne à rechercher.

  • $ aiguille : le caractère ou la sous-chaîne à trouver.

Exemple de code:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"Hello, world! Hello again!"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"Hello"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strrchr</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-string">"De la dernière apparition '<span class="hljs-subst">$needle</span></span></span><span>' 开始的子Chaîne是: </span><span><span class="hljs-subst">$result</span></span><span>";
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Sortir:

 <span><span>De la dernière apparition </span><span><span class="hljs-string">'Hello'</span></span><span> 开始的子Chaîne是: Hello again!
</span></span>

3. Les principales différences entre StrPOS () et strrchr ()

  • Direction de la recherche : strPos () trouve l'emplacement de la première sous-chaîne dans la chaîne, tandis que strrchr () trouve l'emplacement de la dernière occurrence.

  • La valeur de retour est différente : strPos () renvoie l'index (intégral) du caractère, et si le caractère ou la sous-chaîne spécifiée n'est pas trouvé, il renvoie faux . strrchr () renvoie la partie de la chaîne de la dernière position correspondante à la fin de la chaîne. Si aucun caractère ou sous-chaîne spécifié n'est trouvé, il renvoie faux .

4. Conseils pour utiliser StrPos () et strrchr () ensemble

Parfois, dans le développement réel, nous devrons peut-être obtenir à la fois la première et la dernière occurrence des positions de caractère dans la chaîne. À l'heure actuelle, la combinaison de StrPOS () et de strrchr () devient particulièrement importante. Voici quelques conseils courants.

4.1 Trouver des sous-chaînes entre deux positions

Supposons que vous souhaitiez extraire des sous-chaînes entre deux caractères identiques, mais vous savez seulement qu'ils apparaissent respectivement au début et à la fin de la chaîne. Vous pouvez utiliser StrPOS () pour obtenir la première position d'occurrence, utiliser strrchr () pour obtenir la dernière position d'occurrence, puis utiliser la fonction intercept de chaîne substr () pour obtenir le contenu entre eux.

Exemple de code:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"start-middle-end"</span></span><span>;
</span><span><span class="hljs-variable">$start_pos</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-string">"start"</span></span><span>) + </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-string">"start"</span></span><span>);
</span><span><span class="hljs-variable">$end_pos</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-string">"end"</span></span><span>);

</span><span><span class="hljs-variable">$substring</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$start_pos</span></span><span>, </span><span><span class="hljs-variable">$end_pos</span></span><span> - </span><span><span class="hljs-variable">$start_pos</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"提取的子Chaîne是: <span class="hljs-subst">$substring</span></span></span><span>";
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Sortir:

 <span><span><span class="hljs-section">提取的子Chaîne是: -middle-</span></span><span>
</span></span>

4.2 Extraire la dernière occurrence de sous-chaîne

Parfois, vous devez extraire une partie du contenu après un caractère qui apparaît pour la dernière fois à partir de la chaîne. À ce stade, strrchr () est très utile. Vous pouvez obtenir la pièce de la dernière occurrence du caractère à la fin de la chaîne via strrchr () et le traiter davantage.

Exemple de code:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"apple,banana,grape,orange"</span></span><span>;
</span><span><span class="hljs-variable">$last_comma</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strrchr</span></span><span>(</span><span><span class="hljs-variable">$haystack</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-string">"La dernière virgule est: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$last_comma</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Sortir:

 <span><span><span class="hljs-section">La dernière virgule est: orange</span></span><span>
</span></span>

5. Résumé

  • StrPos () est utilisé pour trouver la première occurrence de la position dans une chaîne et renvoie l'indice de la position.

  • strrchr () est utilisé pour trouver la dernière occurrence de la chaîne et renvoyer la sous-chaîne de cette position à la fin de la chaîne.

  • L'utilisation des deux en combinaison peut gérer des problèmes d'extraction et de recherche complexes de chaîne.

En utilisant flexiblement strPos () et strrchr () , vous pouvez effectuer des manipulations de cordes plus efficacement. La maîtrise de leur utilisation améliorera considérablement vos capacités de traitement des chaînes lors de la rédaction de programmes PHP.