PHP - Supprimer les espaces d'une chaine [Résolu/Fermé]

Signaler
Messages postés
4751
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
-
Messages postés
484
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
26 juillet 2017
-
bonjour

voila j'aimerai savoir quelle fonction permet de supprimer tous les espaces d'une chaine de caractere

merci

20 réponses

Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 497
merci j'ai deja vu ces fonctions mais aucune ne vas

Tu n'as pas du bien regarder ces fonctions.
Tu peux faire ça en une ligne avec str_replace:
$text='ton texte';
$text=str_replace(' ','',$text);
125
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
484
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
26 juillet 2017
32
Superbe ! (oui je sais que le post est ancien mais des gens passent parfois) => sauf que la syntaxe est :
<?php
// autre
$text='ton texte'; // il y a un espace
$text2=str_replace(' ','-',$text); // on remplace l'espace par un -
print $text2; echo "--->cool ça marche..." // on écrit le texte sans espace avec un -
?>
facile, certe, mais bon ;)
(enfin pour ceux qui veulent remplacer un espace par un tirait... Facile à adapter...:)
ces méthodes sont peu optimisées mieux vaut utiliser preg_replace :
$machaine=preg_replace('/\s\s+/', '', $machaine);
voilà en espérant que ça aide...
oups trop habitué à chercher les doubles espaces.... pour supprimer tous les espaces :
$machaine=preg_replace('/\s/', '', $machaine);
voilà
merci pour ta soluce pour les doubles espaces :)
efficace et pas lourd en mémoire
Messages postés
534
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
29 août 2014
52
salut

le Trim(MaVariable) enleve les espaces a gauche et a droite !!

Bonne chance

Pascal_22
En php :

$chaine = str_replace(CHR(32),"",$chaine);

et voilà, tous les espaces de $chaine sont supprimés ...
Pour ce type d'opé simple mieux vaut utiliser str_replace moins gourmand qu'une regex
Messages postés
20
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
9 mars 2019
3
Voici une fonction que tu peux améliorer toi-meme


function SupprimeLettre($Lettre_a_Supprimer,$Texte)
//Fonction qui supprime tous les caractères "$Lettre_a_Supprimer" du texte "$Texte"
{
$resultat=""; //variable résultat
//on parcour le texte à la recherche de $Lettre_a_Supprimer
for ($compteur=0;$compteur<strlen($Texte);$compteur++)
{
//si la lettre rencontrée n'est pas à exclure, alors on l'ajoute à la variable $resultat
if (substr($Texte,$compteur,1)!=$Lettre_a_Supprimer) $resultat.=substr($Texte,$compteur,1);
}
return $resultat ;
}
//Pour supprimer tous les espaces, tu fais:
echo SupprimeLettre(" ","Tu peux toujours améliorer cette fonction. éhééèè");
//Pour supprimer tous les "è", tu fais:
echo SupprimeLettre("è","Tu peux toujours améliorer cette fonction. éhééèè");
concernant Jogan =>
ta méthode est bonne, mais le \s peut supprimer aussi les retours chariot il me semble....
Je conseillerait plutôt :

$machaine = preg_replace('/ /','',$machaine);
str_replace est plus rapide que preg_replace. Il faut donc mieux utiliser str_replace ;)
bien tous je retourne à mon Java !!
Pourquoi ne pas utiliser le fonction strtr() :

<?php
    $chaine = "Il a des   raviolis";
	$conversion = array(" "=>"");
	$chaine = strtr($chaine,$conversion);
	echo $chaine;
 
    //Resultat : Iladesraviolis	
?>


Cela me semble plus simple....
trim() de php
Messages postés
4751
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 129
oui j'avais vu cette fonction mais moi je veux retirer tous les espaces

par exemple si j'ai la variable

$text=mon texte

je veux obtenir

montexte
Messages postés
4751
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 129
je maitrise pas trop php donc si kelkun peux m'aider

Salut

Ce code ne fonctionne pas : la fonction renvoie la première lettre de la chaine multipliée par le nombre de caractères de la chaine. Exemple :
pour $maChaine='il fait beau';
echo supprimeLettre(" ",$maChaine)
donne : iiiiiiiiiiiiii
Messages postés
4751
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 129
personne ne sait ou alors si il y a un moyen de le faire
Messages postés
4751
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 129
ok merci killian
<?php
$str = 'foo o';
$str = preg_replace('/\s\s+/', ' ', $str);
// Affichera 'foo o'
echo $str;
?>
Messages postés
534
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
29 août 2014
52
salut !!

J'avais pas vu que c'Est en PHP.

Je ne connais pas trop php, mais ce que je te conseil pour ne pas perdre ton temps, tu fais un boucle sur chaque caractere de ta phrase, et si c'est égale à " " (un espace) tu l'enleves

J'espere t'avoir aider !!

Pascal_22
Messages postés
5121
Date d'inscription
mercredi 20 juillet 2005
Statut
Contributeur
Dernière intervention
6 mars 2019
2 696
Bonjour,

Je ne maîtrise pas du tout PHP, mais en cherchant un peu, j'ai trouvé ça :
http://doc.domainepublic.net/php/doc.php.court/ref.strings.html

Dedans on trouve des choses comme :
http://doc.domainepublic.net/php/doc.php.court/function.substr-replace.html
et
http://doc.domainepublic.net/php/doc.php.court/function.str-replace.html

Ça peut certainement te servir ?

Et puis, t'as vu, il y a des :
trim, ltrim, rtrim, count_chars… au cas où.

Pas mal, non ?
Messages postés
4751
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 129
bon comment te dire ca rapidement bravo

je dis chapo bas merci a toi pascal
Messages postés
534
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
29 août 2014
52
Salut

J'ai trouver

$Text="la maison";
$Nouvelle="";



for ($i = 0; $i < strlen($Text); $i++) {
if (substr($Text, $i,1) != ' ')
{
$Nouvelle=$Nouvelle . substr($Text, $i,1);
}

echo $Nouvelle;

la variable % echo devrais etre "lamaison"

Rodonne moi en des nouvelles !!!

Pascal_22

}
Messages postés
4751
Date d'inscription
lundi 30 mai 2005
Statut
Contributeur
Dernière intervention
9 septembre 2009
1 129
merci j'ai deja vu ces fonctions mais aucune ne vas