Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/04/2007, 11h44   #1
Invité de passage
 
Inscription : décembre 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 6
Points : 2
Points : 2
Par défaut Traitement d'une chaîne de caractères

Bonjour,

Je souhaite transformer une chaine de caractères qui tient sur plusieurs lignes, en une seule et unique ligne. Bref, je souhaite supprimer les retours à la ligne...

Un exemple concret :
Code :
1
2
3
4
5
6
7
8
 
$chaine = 'bonjour
monsieur
dupont
!';
 
// je souhaite obtenir :
$chaine = 'bonjour monsieur dupont!';
J'ai essayé plusieurs fonctions existantes, telles que trim() ou encore str_replace() ainsi que CHR().
Si je parviens à connaître le code ascii correspondant à un retour à la ligne, je pense pouvoir résoudre mon problème comme ceci :
Code :
1
2
$chaine = str_replace(CHR(NUMERO),"",$chaine);
Quelqu'un aurait-il une suggestion ?

Merci d'avance
Youn
Youn05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2007, 12h04   #2
Membre chevronné
 
Avatar de grabriel
 
Inscription : septembre 2006
Messages : 935
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 935
Points : 626
Points : 626
Salut,


Tu peux aller faire un tour sur cette page ou t'as des exemples :
http://fr.php.net/manual/fr/ref.regex.php

Citation:
/* Supprime toutes les nouvelles lignes de $string. */
$string = ereg_replace ("\n", "", $string);
ou sinon c'est "\n\r" ou "\r\n" ca dépends d'ou viens ta ligne.
grabriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2007, 12h06   #3
Invité de passage
 
Inscription : décembre 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 6
Points : 2
Points : 2
Bon, j'ai résolu le problème en faisant une combinaison de deux str_replace(), voir trois dans le cas où il y a des tabulations horizontales à supprimer (ce qui n'est pas représenté dans mon exemple ci-dessus).

Code :
1
2
3
4
 
$chaine = str_replace( CHR(9),"",$chaine );
$chaine = str_replace( CHR(10),"",$chaine );
$chaine = str_replace( CHR(13),"",$chaine ;
CHR(9) : 9 est le code ascii correspondant à une tabulation horizontale
CHR(10): 10 est le code ascii correspondant à saut de ligne
CHR(13): 13 est le code ascii correspondant à retour à la ligne


Youn
Youn05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2007, 12h07   #4
Invité de passage
 
Inscription : décembre 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 6
Points : 2
Points : 2
Merci grabriel pour ta réponse !
Désolé pour le dérangement.

Youn
Youn05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2007, 12h18   #5
Membre chevronné
 
Avatar de grabriel
 
Inscription : septembre 2006
Messages : 935
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 935
Points : 626
Points : 626
Juste comme ca mais avec un regex ton code sera plus propre et plus pratique à mettre à jour, au lieu d'avoir une ligne pour chaque caractère tu peux faire un tableau (vecteur), avec tous les caractères que tu veux remplacer et un avec les caractères que tu remplaces....

C'est juste une suggestion.
grabriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h54.


 
 
 
 
Partenaires

Hébergement Web