Avatar ·

Comment remplacer seulement la première occurrence d'une sous-chaîne en PHP ? (str_replace pour la première correspondance)

Bonjour à tous ! J'écris en PHP et j'ai rencontré un problème inattendu. J'ai une chaîne dans laquelle je dois remplacer seulement la première occurrence d'une sous-chaîne spécifique, et laisser toutes les autres intactes. Voici un exemple. Supposons que j'ai du code HTML ou simplement du texte : ```php $text = "Яблоко, банан, яблоко, апельсин, яблоко"; $search = "яблоко"; $replace = "груша"; ``` Je veux que le résultat soit : "Яблоко, банан, груша, апельсин, яблоко" — c'est-à-dire que seule la deuxième occurrence est remplacée (la première en respectant la casse, mais ce n'est pas important). Ou, si je veux remplacer exactement la première occurrence, pour obtenir "груша, банан, яблоко, апельсин, яблоко". Le problème est que la fonction standard `str_replace()` remplace TOUTES les occurrences. J'ai essayé `str_replace($search, $replace, $text)`, mais elle remplace chaque "яблоко" par "груша", alors que je n'en ai besoin que d'une seule. Je sais qu'il existe `preg_replace()`, mais peut-être y a-t-il une solution plus simple sans expressions régulières ? Ou comment utiliser correctement `preg_replace()` avec une limite ?