Php : supprimer les retours chariots.


Lentreprenaute
WRInaute impliqué
WRInaute impliqué
 
Messages: 923
Inscription: 18 Oct 2003

Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 9:38

Bonjour,

j'ai un texte ($texte) qui s'affiche comme suit :

Connaissez-vous bien les commandes spéciales des moteurs de
recherche, qui permettent d'effectuer des requêtes précises, parfois
très utiles pour travailler le référencement naturel ?

WebRankInfo vous propose la plus grande base de données d'explications sur ces commandes et opérateurs spéciaux


j'aimerai virer les retours à la ligne intempestifs, et garder les retours de paragraphes. Une fonction native dans php ?


Cordialement


Zecat
WRInaute accro
WRInaute accro
 
Messages: 12002
Inscription: 1 Mar 2005

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 10:03

Peut etre :

1 - un str replace des double retours chariots par une balise style [mabalise]
2 - un str replace des retour chariots restants par ""
3 - un str replace des [mabalise] par des doubles retour chariot

C'ets pas natif mais bon ca fait trois lignes de code.


Blount
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 430
Inscription: 18 Nov 2010

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 10:08

Ou même une seule ligne :
Code: Tout sélectionner
str_replace(array("\n\n", "\n", "[masuperbalise]"), array('[masuperbalise]', ' ', "\n\n"), $texte);


Mais je pense qu'il doit exister un moyen "plus propre", avec un regexp par exemple, ou encore plus simple, à trouver ;)


Lentreprenaute
WRInaute impliqué
WRInaute impliqué
 
Messages: 923
Inscription: 18 Oct 2003

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 10:27

merci à tous les deux,

sinon, je n'ai aucune balise dans le code source de $texte, je m'etonne qu'il n'existe pas une fonction pour virer ces retours qui ne sont ni même pas des br. L'encodage tout un programme.

Florent


Zecat
WRInaute accro
WRInaute accro
 
Messages: 12002
Inscription: 1 Mar 2005

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 11:16

la balise c'ets toi qui la met a la place des double pour les retrouver ensuite ... tu mets un truc unique qui a peu de chance de se retriouver dans le texte .. style

[[Yoplaboummabaliseamoi]]


Zecat
WRInaute accro
WRInaute accro
 
Messages: 12002
Inscription: 1 Mar 2005

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 11:17

la balise c'ets toi qui la met a la place des double pour les retrouver ensuite ... tu mets un truc unique qui a peu de chance de se retriouver dans le texte .. style

[[Yoplaboummabaliseamoi]]


milkiway
WRInaute accro
WRInaute accro
 
Messages: 4910
Inscription: 3 Fév 2004

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 11:35

Lentreprenaute a écrit:merci à tous les deux,

sinon, je n'ai aucune balise dans le code source de $texte, je m'etonne qu'il n'existe pas une fonction pour virer ces retours qui ne sont ni même pas des br. L'encodage tout un programme.

Florent

Si si, \n et ou \r
Ensuite un replace et on n'en parle plus.

forummp3
WRInaute passionné
WRInaute passionné
 
Messages: 1982
Inscription: 8 Fév 2004

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 11:36

Blount a écrit:Ou même une seule ligne :
Code: Tout sélectionner
str_replace(array("\n\n", "\n", "[masuperbalise]"), array('[masuperbalise]', ' ', "\n\n"), $texte);


Mais je pense qu'il doit exister un moyen "plus propre", avec un regexp par exemple, ou encore plus simple, à trouver ;)

elle est trés bien et propre ta solution, un simple str_replace suffit et plus leger qu'une expression reguliere.

Aprés faut faire gaffe, car en general c'est des \r\n qu'on trouve, donc on ne risque pas de trouver des \n\n mais des \r\n\r\n. (compatibilité differents os)


milkiway
WRInaute accro
WRInaute accro
 
Messages: 4910
Inscription: 3 Fév 2004

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 11:37

Dans ce cas il est très facile de faire un nl2br et de chercher les BR à supprimer.


Zecat
WRInaute accro
WRInaute accro
 
Messages: 12002
Inscription: 1 Mar 2005

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 11:58

Blount a écrit:Ou même une seule ligne :
Code: Tout sélectionner
str_replace(array("\n\n", "\n", "[masuperbalise]"), array('[masuperbalise]', ' ', "\n\n"), $texte);


Mais je pense qu'il doit exister un moyen "plus propre", avec un regexp par exemple, ou encore plus simple, à trouver ;)

J'aime bien decomposer : c'est plus lisible et on voit mieux ce qu'ont fait (en plus ca facilite les echo intermediaires de debug eventuels).


Lentreprenaute
WRInaute impliqué
WRInaute impliqué
 
Messages: 923
Inscription: 18 Oct 2003

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 13:05

Code: Tout sélectionner
echo $text = preg_replace("/(\r\n|\n|\r)/", " ", $text);

Zecat, Milkiway*
Quid, de la signification de "n" et "r", dans la manière du code ci-dessus, y-at-'il moyen de distinguer un retour intempestif d''un retour de paragraphe ? Parce dans mon exemple, ca file droit :D

* voila la contrib de deux pseudos, qui ne me rajeunisse pas :D
Dernière édition par Lentreprenaute le Jeu Nov 25, 2010 14:51, édité 1 fois.

forummp3
WRInaute passionné
WRInaute passionné
 
Messages: 1982
Inscription: 8 Fév 2004

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 13:19

Lentreprenaute > il veut quand meme garder les saut de ligne pour les paragraphe (2 sauts de lignes) donc c'est pas bon ton systeme.


Lentreprenaute
WRInaute impliqué
WRInaute impliqué
 
Messages: 923
Inscription: 18 Oct 2003

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 14:25

oui quand je disais ca file droit, c'est que j'aitout sur une ligne :oops:


Zecat
WRInaute accro
WRInaute accro
 
Messages: 12002
Inscription: 1 Mar 2005

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 14:44

Applique ma méthode : rustique mais robuste :wink:


milkiway
WRInaute accro
WRInaute accro
 
Messages: 4910
Inscription: 3 Fév 2004

Re: Php : supprimer les retours chariots.

Message le Jeu Nov 25, 2010 15:05

Lentreprenaute a écrit:
Code: Tout sélectionner
echo $text = preg_replace("/(\r\n|\n|\r)/", " ", $text);

Zecat, Milkiway*
Quid, de la signification de "n" et "r", dans la manière du code ci-dessus, y-at-'il moyen de distinguer un retour intempestif d''un retour de paragraphe ? Parce dans mon exemple, ca file droit :D

* voila la contrib de deux pseudos, qui ne me rajeunisse pas :D

Hé bien un retour intenpesif, c'est deux à la suite non ?
Donc nl2br
et ensuite, supprimer tout '<br /><br />'
;)

Php : supprimer les retours chariots.

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