Page 1 sur 1

Question sur <pre>

Posté : 28 févr. 2007, 13:42
par lacfab
salut

voilà j'ai des actualités qui sont enregistrées en base de donnée ... bref ... je voudrais pouvoir éviter de saisir la balise BR alors j'ai pensé à mettre PRE sur ma page d'affichage mais le soucis c'est que si j'ai une longue phrase, elle ne fait pas de retour à la ligne automatique avec la mise en page qui va bien (justify)

y a-t-il une solution à ça ?

Merci

Posté : 28 févr. 2007, 14:07
par jojolapine
éventuellement tronquer via php ton texte, mais ce sera plus aléatoire et aussi pénible que d'ajouter des <br />

Posté : 28 févr. 2007, 15:27
par Hywan
Bonjour :)

Au moment d'enregistrer ton article d'actualité, tu peux appliquer la fonction nl2br(); de PHP. Elle va remplacer automatiquement les retours à la ligne (à savoir \n) par <br /> (en XHTML).

Si tu veux faire ça pour tous tes articles déjà existants, tu te fais une petite fonction PHP qui boucle ta base de données, et qui applique nl2br(); sur chacun de tes articles, tout bêtement :)


Bonne journée.

Posté : 28 févr. 2007, 18:18
par lacfab
OK actuellement toutes les actus (+3000) contiennent des BR mais ça aurait été plus pratique de faire comme pour un forum quoi ... vais m'atteler sur cette fonction ;)

Posté : 28 févr. 2007, 18:27
par Hywan
:)

Marque le sujet comme "Résolu" si c'est le cas :)

Posté : 28 févr. 2007, 19:29
par albat
tu peux aussi afficher ton texte dans un <textarea>... ;)

Posté : 28 févr. 2007, 19:58
par Hywan
Bonjour :)

C'est envisageable mais un peu crado nan ?
Si c'est pour des publications, c'est pas super top ...
Ça ne reste que mon opinion :)

Posté : 28 févr. 2007, 20:01
par albat
Il est évident que l'utilisation de la fonction nl2br()
est de loin la solution la plus prore.

Mais si son utilisation pose problème et oblige à recourir à des astuces,
alors le <textarea> peut être une solution plus satisfaisante que le <pre>.

Cela dit, je préconise bien évidemment le nl2br().

Posté : 01 mars 2007, 02:19
par lacfab
pose problèmes ?? du genre ?

Posté : 01 mars 2007, 09:21
par AB
Bonjour :)

Au moment d'enregistrer ton article d'actualité, tu peux appliquer la fonction nl2br(); de PHP. Elle va remplacer automatiquement les retours à la ligne (à savoir \n) par <br /> (en XHTML).
....

Bonne journée.
Bonjour,

Je procède un peu différemment: j'enregistre les messages directement dans la base de donnée et j'applique la fonction nl2br() uniquement pour l'affichage des messages :wink:

Posté : 01 mars 2007, 12:04
par Victor BRITO
Il est évident que l'utilisation de la fonction nl2br()
est de loin la solution la plus prore.

Mais si son utilisation pose problème et oblige à recourir à des astuces,
alors le <textarea> peut être une solution plus satisfaisante que le <pre>.
Une autre solution si le code généré est du HTML et non du XHTML: utiliser le code suivant:
<?php 
preg_replace ("/(\n|\r|\r\n)/", "<br>", $ton_texte);
?>

Posté : 01 mars 2007, 13:39
par lacfab
les deux dernières réponses me vont très bien merci

Posté : 01 mars 2007, 13:40
par lacfab
etant donné que je suis "invité" je ne peux pas mettre résolu ... merciiiiiii

Posté : 01 mars 2007, 13:52
par zeus
etant donné que je suis "invité" je ne peux pas mettre résolu ... merciiiiiii
c'est fait ;)

Posté : 02 mars 2007, 00:55
par AB
Il est évident que l'utilisation de la fonction nl2br()
est de loin la solution la plus prore.

Mais si son utilisation pose problème et oblige à recourir à des astuces,
alors le <textarea> peut être une solution plus satisfaisante que le <pre>.
Une autre solution si le code généré est du HTML et non du XHTML: utiliser le code suivant:
<?php 
preg_replace ("/(\n|\r|\r\n)/", "<br>", $ton_texte);
?>
Oui, pourquoi pas, mais même si nl2br() génère des <br /> à l'affichage, <br /> passe au validateur html 4.01 transitional donc nl2br() peut être utilisé indifféremment avec HTML ou XHTML et sera beaucoup plus rapide à l'exécution qu'un preg_replace :wink: