Luckyluk Posté 23 Mai 2007 Posté 23 Mai 2007 Bonjour, Afin de pouvoir laisser des commentaire à certain article, j'ai mis un textarea que je sauvegarde en bdd et quand je refais appel au texte stocké pour l'afficher dans un <p></p>, il n'a pas gardé la mise en forme. apparemment en faisant un strreplace du \n par un <br> j'arrive à passer à la ligne par contre je n'arrive pas à gerer les espaces, il n'en n'affiche q'1 seul à chaque fois, même si il y en a 10... il y a peu etre une autre méthode? des pistes?
captain_torche Posté 23 Mai 2007 Posté 23 Mai 2007 Pour remplacer les retours chariots par des <br>, il existe une fonction de PHP : nl2br(). Quant aux espaces successifs, le code HTML les supprimera toujours. Pour les afficher, il faut les afficher entre balises <pre></pre>, qui est destinée à afficher un code préformaté, ou bien d'attribuer la propriété CSS "whitespace: pre".
Luckyluk Posté 23 Mai 2007 Auteur Posté 23 Mai 2007 thanks! apparemment en faisant strreplace de " " par des   ça fonctionne pas très propre comme code... mais bon...
captain_torche Posté 23 Mai 2007 Posté 23 Mai 2007 Surtout que tu risques d'avoir des soucis : le   étant un espace insécable, il n'autorise pas le retour à la ligne. Tu vas te retrouver avec des lignes de deux kilomètres de long. Tu as essayé la solution CSS ?
Dudu Posté 23 Mai 2007 Posté 23 Mai 2007 Salut Luc. La solution CSS est de loin la meilleure. Mais si tu tiens vraiment à remplacer les espaces par des espaces insécables, il faudra compter le nombre d'espaces. Si 1 seul espace: on ne fait rien. Si +: le premier espace reste intact, les autres sont remplacés par des espaces insécables (& 160 ; ou & nbsp ; -sans les espaces, justement-). Sinon, tu risques effectivement de te retrouver avec des messages qui tiennent sur une seule ligne comme le fait remarquer captain_torche. Regarde dans le code source de PunBB, tu as une fonction qui fait exactement ça (et c'est en license GPL ) Pour finir, la question qui me taraude: pourquoi faire ? - En connaissant le contexte, on sera plus à même de fournir la meilleure piste - Dans cette phrase, il y a 26 espaces entre les mots "cette" et "phrase" et tu ne les vois pas à l'affichage, est-ce vraiment gênant?
Luckyluk Posté 24 Mai 2007 Auteur Posté 24 Mai 2007 merci à vous, je n'ai rien contre la solution css mais j'avoue ne pas connaitre de solution (meme pas une idée de solution via le css ) même si je connais globalement le fonctionnement general du css le but étant simplement de récuperer un contenu entré dans un textarea par un visiteur qui, pour que son texte soit lisible, a certaines habitudes d'aérer un peu ses phrases en passant à la ligne , en faisant des décalages de début de phrase et pire... quelque fois des décalage au mileu d'une phrase... par contre , mon titre de ce post n'est pas vraiment bon, car actuellement, le contenu du textarea est stocké tel quel en bdd, le traitement sur la chaine de caractère se faisant apres coups au moment de l'affichage dans la page de ce fait il n'y a que des \n et " " qui sont stockés je suis aware à tout debut de piste
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant