Page 1 sur 1

Supprimer tous les caractères après un caractère précis

Posté : 02 janv. 2012, 11:57
par JoIsland
Bonjour à tous,

Je souhaiterai connaitre la syntaxe qui me permettrai de supprimer tous les caractère se trouvant après un caractère , exemple :

CC_BABA_HOHO_FF--XXL_OHO_UHUH_45655

je souhaite qu'il m'affiche : CC_BABA_HOHO_FF , donc qu'il me supprimer tous les caractère dès qu'il trouve "-"


Merci beaucoup

Re: Supprimer tous les caractères après un caractère précis

Posté : 02 janv. 2012, 12:32
par JoIsland
Ok j'ai trouvé la solution,
$skustr = strstr($sku, '_-', true);
complication de la chose :

j'ai ADI_Pei_HO_---S_BL-_002518

je souhaite récupéré : ADI_Pei_HO_BL et qu'il supprime _--S-_002518 , en gros qu'il supprime tous les chiffres avec les "_"


comment faire ?

Re: Supprimer tous les caractères après un caractère précis

Posté : 02 janv. 2012, 13:03
par Ryle
Le plus simple est d'utiliser des expressions régulières pour spécifier le masque recherché : /_[0-9]+/

Cette expression va rechercher toutes les occurrences d'un " _ " suivi de 1 à N chiffres compris entre 0 et 9. Tu peux alors utiliser preg_replace() pour remplacer tout ce qui correspond à ton masque par une chaine vide et ainsi supprimer ce qui te gène :)

Re: Supprimer tous les caractères après un caractère précis

Posté : 02 janv. 2012, 13:28
par JoIsland
Super merci ! par contre lorsque je met :
$sku = ereg_replace("-_[0-9]","",$sku);
il m'affiche toujours les chiffres mais me vire "-_" , si je met
$sku = ereg_replace("_[0-9]","",$sku);
il enlève les chiffres + le "_" moi je souhaite qu'il me vire "-_25565" par exemple .

Re: Supprimer tous les caractères après un caractère précis

Posté : 02 janv. 2012, 13:39
par Ryle
Il est préférable d'utiliser les fonction preg_match et preg_replace plutôt que ereg et ereg_replace, ces dernières étant dépréciées... La syntaxe du masque est un peu différente, mais on s'y fait vite, et les traitements sont plus rapides :)
$sku = preg_replace("/-?_[0-9]+/","",$sku);
Ceci recherche les sous-chaines qui :
- commencent éventuellement par un tiret " -? " ( le ? équivaut à 0 ou 1 occurrence)
- contiennent un " _ " suivi d'au moins un chiffre " [0-9]+ " (le + équivaut à 1 ou N occurrence)

Re: Supprimer tous les caractères après un caractère précis

Posté : 02 janv. 2012, 13:42
par JoIsland
d'accord, très bien merci à toi :)