Guest stone Posté 21 Mai 2005 Posté 21 Mai 2005 salut, la question est très simple mais j'y arrive pas : 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
TheRec Posté 21 Mai 2005 Posté 21 Mai 2005 (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é 21 Mai 2005 par TheRec
Anonymus Posté 21 Mai 2005 Posté 21 Mai 2005 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant