Supprimer les espaces

Résolu
cs_malaysia
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005
- 8 juil. 2005 à 21:27
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
- 2 mars 2006 à 21:22
Bonsoir,

Je cherche à supprimer les espaces dans une recherche faite par un formulaire.
Ce sont des noms de famille qui peuvent être en 2 ou 3 morceaux qu'il faudrait réunir.
J'ai trouvé une question à ce sujet sur le forum mais les solutions proposées ne fonctionnaient pas.

Quelqu'un a une idée ?

15 réponses

w_minisplash_w
Messages postés
20
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
3 juillet 2006

10 juil. 2005 à 23:06
preg_replace ('/\s/','',$var)

J'ai vérifié, ça marche.
3
cs_lotr
Messages postés
128
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
12 août 2005

8 juil. 2005 à 21:57
Bonsoir,



str_replace je pense.
0
cs_malaysia
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

8 juil. 2005 à 22:59
Malheureusement non, à moins que le caractère "espace" corresponde à un terme que je ne connais pas ? Ainsi que "rien" ?

En tous cas comme ça ça ne marche pas :
str_replace(' ','',$_POST['recherche']);


$_POST['recherche'] est bien sûr la requête de mon formulaire.
0
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
25
9 juil. 2005 à 10:57
Hello,



$_POST['recherche'] = str_replace(' ','',$_POST['recherche']);



sinon en effet ca ne marchera pas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_malaysia
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

9 juil. 2005 à 13:00
C'est ce que j'ai fait, j'ai juste retiré le nom de la variable dans mon message précédent. Mais ça ne marche par.
0
w_minisplash_w
Messages postés
20
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
3 juillet 2006

9 juil. 2005 à 13:39
Essaye :
<?
$recherche=$_POST['recherche'];
$recherche=preg_replace('@([\r\n])[\s]+@','',$recherche);
echo "Output: $recherche";
?>
0
kegi
Messages postés
164
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
25 août 2008

9 juil. 2005 à 21:03
Vous vous compliquez beaucoup trop la vie...



il existe la fonction trim()



bonne continuation,



cordialement,

kevin (kegi@hotmail.com)
0
w_minisplash_w
Messages postés
20
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
3 juillet 2006

10 juil. 2005 à 01:58
lol oui mais je crois que trim() c'est plutot pour supprimer les espaces en début et fin de chaine... Hors je crois que le but c'est de supprimer tous les espaces de la chaine.
Donc je maintiens :
<?
$recherche=$_POST['recherche'];
$recherche=preg_replace('@([\r\n])[\s]+@','',$recherche);
echo "Output: $recherche";
?>
0
cs_malaysia
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

10 juil. 2005 à 18:26
Je connaissais trim() mais effectivement c'est pour supprimer des espaces au début et à la fin.
L'autre solution proposée ne marche pas. Pour la recherche sur "n ous" j'ai (en rouge) :


$ta = $_POST['recherche'];
$ta = preg_replace([mailto:'@([\r\n])[\s]+@','',$ta '@([\r\n])[\s]+@','',$ta]); // supprime les espaces // $ta remplace $recherche de la solution proposée
$tb = strtoupper ($recherche); // met le mot cherché en majuscules
$tc = strtolower ($recherche); // met le mot cherché en minuscules
$td = ucfirst ($recherche); // met le mot cherché avec une première lettre en majuscules


//on affiche le nombre de résultats trouvés
print ' Pour le mot '.$ta.' il y a '.$res.' résultat(s)_________http://local.free.fr_________BASE DES ACTES NOTARIES DU SECTEUR HALLUIN-TOURCOING

';
echo $ta; // affiche n ous
echo $tb; // affiche N OUS
echo $tc; // affiche n ous
echo $td; // affiche N ous
0
cs_malaysia
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

10 juil. 2005 à 18:29
Oups... remplacer les $recherche dans $stb, $tc, $td
0
cs_malaysia
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

10 juil. 2005 à 18:33
Voilà la meilleure, une partie de mon message a disparue ! Je complète :

Oups... remplacer les $recherche dans $stb, $tc, $td par $ta.
0
cs_malaysia
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

10 juil. 2005 à 23:26
Chez Nexen ils proposent :


Suppression des espaces,
----

Cet exemple supprime les espaces en trop dans une chaîne.

<?php
$str = 'foo   o';
$str = preg_replace('/\s\s+/', ' ', $str);

// Affichera 'foo o'
echo $str;
?> 


Mais ça ne marche pas non plus. En fait ça supprime le 2ème espace en trop mais pas le premier.
0
cs_malaysia
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

10 juil. 2005 à 23:28
Impec la réponse de w_minisplash_w, ça marche. Merci.
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
2 mars 2006 à 20:20
Salut,


preg_replace ('/\s/','',$var)



quelle solution de porc !!! utiliser des pregs alors qu'on n'a rien de complexe là dedans...



$var=str_replace(array(' ', chr(10), chr(13), "\t"), array('','','',''),$var);

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
25
2 mars 2006 à 21:22
preg_replace pour ça, mais ça va pas non...!!
tout à fait d'accord avec Coucou.
0