8791 sujets

Développement web côté serveur, CMS

Salut,

Comment oter toute ligne vierge a la fin d'une chaine? J'ai essayé $contenu = trim($contenu); mais ca fait rien.
Modifié par apericube (02 Feb 2010 - 10:08)
Marche toujours pas Smiley decu

Dans mon <textarea name='contenu'> Je tape ENTREE plusieurs fois a la fin de mon texte avant de cliquer sur Submit, et juste avant la requete SQL d'insertion je fais :

$contenu = rtrim($contenu);

Aucun effet..
C'st étrange car d'après la doc php (http://php.net/manual/fr/function.trim.php) la fonction doit nettoyer les caractères qui représente les retour chariot (\n, \r ou le combo \r\n)

Essayes d'afficher le code ASCII de la fin de ton fichier pour voir quel caractère spéciaux tu as.
MoOx : Je sais pas comment afficher l'ASCII mais j'ai fait VIEW SOURCE et j'ai vu plein de <br /> la ou j'ai fait ENTREE..
apericube a écrit :
MoOx : Je sais pas comment afficher l'ASCII mais j'ai fait VIEW SOURCE et j'ai vu plein de <br /> la ou j'ai fait ENTREE..


Tu ne fais pas un nl2br avant ton rtrim, par hasard ?
Une regex un peu plus générique pour le preg_replace serait :
#(?:<br ?/?>\s*)+$#i
Parce que nl2br conserve les sauts de ligne même après avoir ajouté les br.
Salut,

tu y verrais déjà plus clair en regardant précisément ce que contient $contenu. Si un var_dump ne suffit pas :
$contenu = str_split(trim($contenu));
foreach($contenu as $caractere ) {
	echo '<p>'.$caractere.' / '.ord($caractere).'</p>';
}
A priori un Entrée dans un TEXTAREA génère un code ascci 13 suivi d'un 10
mistike > en fait si !!

J'arrive pas a le croire, j'ai passé des heures et des heures sur ce probleme sans jamais faire gaffe a ce nl2br(). Et moi qui accusais ce pauvre FCKeditor ..

Merci pour vos reponses en tout cas.