Page 1 sur 1

Supprimer le dernier retours à la ligne d'une chaine

Posté : 03 mars 2007, 20:57
par Arcanis
Salut!

J'ai une chaine, qui est celle-ci:
$params="
(il y a une nouvelle ligne, mais elle ne s'affiche pas)
et qui doit être cherchée dans cette chaine:
function mkEditor($name,$form_url,$content,$params="newsurl,sondage,importImage,bold,italic,underline,image,justifyLeft,link,unlink,justifyCenter,justifyRight,textSize,textColor",$optional="") {
Forcément, ça ne marche pas (il n'y a pas de retour à la ligne dans la phrase, alors qu'il y en a un dans la phrase de recherche).
Mais je voudrais pouvoir supprimer uniquement le dernier retour à la ligne. Si y en a d'autres avant, il ne faudrait pas qu'ils soient enlevés...or je ne sais pas trop comment faire...

Et tant que j'y suis, quelle est la différence entre "\r\n", "\n" et \r"? Je crois avoir entendu dire que Windaube utilisait "\r\n", et linux "\n", mais je m'y perds un peu, là...

Posté : 03 mars 2007, 21:14
par Jules Petibidon
hello,

pour ta derniere question : tout à fait et le \r c'est les macintosh

sinon pour la premiere question, jette un oeil sur trim() et rtrim()

Posté : 03 mars 2007, 21:27
par Arcanis
Et y auraient pas pu utiliser le même, non... :roll:
Ahlàlà...

Bref, comme il fallait que je ne supprime qu'un seul retour à la ligne (et que rtrim les supprimais tous), j'ai plutôt utilisé une fonction régulière. Enfin, trois fonctions régulières:

Code : Tout sélectionner

$avant = preg_replace("#(.*)\r\n$#","$1",$avant); $avant = preg_replace("#(.*)\r$#","$1",$avant); $avant = preg_replace("#(.*)\n$#","$1",$avant); $apres = preg_replace("#(.*)\r\n$#","$1",$apres); $apres = preg_replace("#(.*)\r$#","$1",$apres); $apres = preg_replace("#(.*)\n$#","$1",$apres);