Question sur <pre>

lacfab
Invité n'ayant pas de compte PHPfrance

28 févr. 2007, 13:42

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

ViPHP
ViPHP | 3607 Messages

28 févr. 2007, 14:07

éventuellement tronquer via php ton texte, mais ce sera plus aléatoire et aussi pénible que d'ajouter des <br />

ViPHP
ViPHP | 4674 Messages

28 févr. 2007, 15:27

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.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

lacfab
Invité n'ayant pas de compte PHPfrance

28 févr. 2007, 18:18

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 ;)

ViPHP
ViPHP | 4674 Messages

28 févr. 2007, 18:27

:)

Marque le sujet comme "Résolu" si c'est le cas :)
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

28 févr. 2007, 19:29

tu peux aussi afficher ton texte dans un <textarea>... ;)

ViPHP
ViPHP | 4674 Messages

28 févr. 2007, 19:58

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 :)
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

28 févr. 2007, 20:01

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().

lacfab
Invité n'ayant pas de compte PHPfrance

01 mars 2007, 02:19

pose problèmes ?? du genre ?

ViPHP
AB
ViPHP | 5818 Messages

01 mars 2007, 09:21

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:

Mammouth du PHP | 2937 Messages

01 mars 2007, 12:04

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);
?>

lacfab
Invité n'ayant pas de compte PHPfrance

01 mars 2007, 13:39

les deux dernières réponses me vont très bien merci

lacfab
Invité n'ayant pas de compte PHPfrance

01 mars 2007, 13:40

etant donné que je suis "invité" je ne peux pas mettre résolu ... merciiiiiii

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

01 mars 2007, 13:52

etant donné que je suis "invité" je ne peux pas mettre résolu ... merciiiiiii
c'est fait ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
AB
ViPHP | 5818 Messages

02 mars 2007, 00:55

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: