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 44
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
Rejoignez-nous