Aller au contenu

Suppression de la 1ère occurence dans une chaine


Sujets conseillés

Guest stone
Posté

salut,

la question est très simple mais j'y arrive pas :blush: :

comment supprimer la première occurence de "or" dans une chaine :

par exemple : or dossier or fichier or disque

devient : dossier or fichier or disque

merci d'avance :blush:

Posté (modifié)

Hello,

voilà une solution, comme d'habitude ce n'est pas l'unique solution mais celle-là je l'ai testée ;)

A noter que j'ai utilisé la balise \b dans l'expression régulière pour qu'un cas comme :

"ordossier or fichier or disque" ne devienne pas "dossier or fichier or disque" mais "ordossier fichier or disque". Pour info \b signifie "boundary" (bornes) et permet de ne faire remplace (dans ce cas) que les "mots".

$text = "or dossier or fichier or disque";
$word = "or";
$text = preg_replace("/\b".$word."\b/","",$text,1);

Si tu souhaites qu'il ne fasse pas la différence entre les mots et les suites de caractères enlève les deux balises "\b" du preg_replace.

Modifié par TheRec
Posté

Ceci dit, si cette chaine de caractère vient tout droit d'une requète sql en construction, alors tu auras toujours le même 'or', et toujours à la meme place.

Là, ce n'est plus la même chose, ce n'est plus :

'la première occurence dans une chaine', mais

'les 3 premiers caractères de la chaine'.

Dans ce cas, tu pourrais demander la chaine, sans ces 3 premiers caractères :

$txt = substr($txt,3); // on prend la chaine, on enleve 3 car, et on la retourne.

L'intéret est que l'on 'évite' les expressions régulières.

Anonymus.

Guest stone
Posté

ça marche un grand merci à vous deux

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...