détecté un espace dans une chaine de caractere

mailer
WRInaute discret
WRInaute discret
 
Messages: 158
Inscription: 26 Juin 2005

détecté un espace dans une chaine de caractere

Message le Lun Déc 12, 2005 10:12

bonjour
j'aimerais par rapport a une chaine de caractère, détecté si il y a un espace, et si oui ajouté un _ ou .
Faut il que je me dirige vers le regex ?
mon problème est pour détecter l'espace.
après je sais faire avec str_replace pour remplacer un caractere


rolriam
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 363
Inscription: 15 Juin 2005

Message le Lun Déc 12, 2005 10:16

Tu dois detecter le code ascii 32

En php, le code chr(32) devrait t'aider :D

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2461
Inscription: 30 Aoû 2002

Message le Lun Déc 12, 2005 10:17

Perso j'utilise ça :
Code: Tout sélectionner
$chaine=eregi_replace("[\ ]+","-",trim($chaine))

(y'a p'têtre mieux...)

avisos
WRInaute discret
WRInaute discret
 
Messages: 57
Inscription: 20 Sep 2005

Message le Lun Déc 12, 2005 10:26

Moi j'utilise en php
$chaine = str_replace(" ","_",$chaine);

Et ça marche nickel...


phpmikedu83
WRInaute passionné
WRInaute passionné
 
Messages: 1281
Inscription: 6 Aoû 2005

Message le Lun Déc 12, 2005 10:43

avisos a écrit:Moi j'utilise en php
$chaine = str_replace(" ","_",$chaine);

Et ça marche nickel...


+1

ou $chaine = str_replace(chr(32),"_",$chaine);

;-)
c'est pareil, mais ça te posera jamais de PB

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2461
Inscription: 30 Aoû 2002

Message le Lun Déc 12, 2005 11:00

Le pb avec votre solution c'est que si y'a 2 espaces, il va remplacer par -- :wink:

avisos
WRInaute discret
WRInaute discret
 
Messages: 57
Inscription: 20 Sep 2005

Message le Lun Déc 12, 2005 11:11

Oups, c'est vrai jeroen :(

zarlboro
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 284
Inscription: 13 Juil 2004

Message le Lun Déc 12, 2005 11:13

tu peux essayer :
Code: Tout sélectionner
$chaine = preg_replace('/[\s]+/','_',$chaine);


plusieurs espaces seront transformés en un seul tiret bas

RomsIW
WRInaute passionné
WRInaute passionné
 
Messages: 1142
Inscription: 25 Mai 2004

Message le Lun Déc 12, 2005 14:20

avisos a écrit:Moi j'utilise en php
$chaine = str_replace(" ","_",$chaine);

Et ça marche nickel...


Code: Tout sélectionner
$chaine = str_replace("[ ]{*} ","_",$chaine);

est-ce que ça marche ça ?

mailer
WRInaute discret
WRInaute discret
 
Messages: 158
Inscription: 26 Juin 2005

Message le Lun Déc 12, 2005 22:23

merci de vos réponses
oui est ce que la regex marche ???
sinon pour $chaine = preg_replace('/[\s]+/','_',$chaine);
si il ny a pas d'erreur , comment ça se passe ?
il suffit de mettre un "?" non ????

en regex si on recherche un - , ou space ça se gére pas comme çà ?
preg_replace('![-. ]?!','_',$str);


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités