Partage
  • Partager sur Facebook
  • Partager sur Twitter

Balises <pre>, <xmp>...

Comment afficher du code ?

Sujet résolu
Anonyme
18 juin 2006 à 20:59:10

Bonjour. Afin d'afficher du code, j'ai essayé d'utiliser la balise <xmp>.
Seulement, voilà... Celle-ci n'est pas valide W3C, donc je me suis orienté vers la balise <pre>... Ce qu'il y a entre les balises <pre>et</pre> s'execute mais ne s'affiche pas.

J'ai également essayé :
$code_a_afficher = 'texte';
echo htmlentities($code_a_afficher);

Oui, ça marche, mais ce n'est absolument pas l'effet désiré.

Je voudrais faire comme sur ce site, ou comme sur tous les autres sites où du code est affiché.

Je pense que vous saurez m'aider. :D
Merci d'avance. :)
  • Partager sur Facebook
  • Partager sur Twitter
18 juin 2006 à 21:06:57

Utilise geshi, il colore le code et l'affiche comme tu l'as entré !
T'as le choix entre un tuto dans la rubrique vos tutos ou la doc officielle en anglais.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
18 juin 2006 à 21:16:03

Geshi a l'air très bien pour colorer son texte, etc... mais ce n'est absolument pas le but. Je voudrais faire quelque chose de vraiment simple.
Je sais que la balise <pre> est sencée afficher du texte, pourquoi ça ne marche pas ?
  • Partager sur Facebook
  • Partager sur Twitter
18 juin 2006 à 21:21:55

montre un peu comment t'écris ton code avec <pre>...</pre>
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
18 juin 2006 à 21:26:01

<pre>
<a href="http://www.monsite.com">
<img src="http://www.monsite.com/images/banniere.png" alt="Mon super site" title="Mon super site" />
</a>
</pre>
  • Partager sur Facebook
  • Partager sur Twitter
18 juin 2006 à 21:28:57

Je ne suis pas sûr d'avoir compris ... mais :

<pre> permet d'afficher un texte préformater (maintenant je m'en souviens, merci yöm !). Donc, il va garder les sauts de ligne. Mais en aucun cas, il va faire en sorte que le code HTML tapé dedans ne s'éxécute pas. En effet, pour afficher du code, tu as deux solutions : Soit tu utilises l'htmlentities de PHP, soit tu mets ton code dans un <textarea>, où ce code ne sera pas interprété.


Edit :
si, j'avais compris :p
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
18 juin 2006 à 21:30:00

Je vais tester le textarea, j'édite. ;)

EDIT : Effectivement, ça marche très bien avec textarea. :D
Merci beaucoup pour votre aide.
  • Partager sur Facebook
  • Partager sur Twitter
18 juin 2006 à 21:40:31

Par contre, les textearea, c'est pas très pratique (on peut modifier le texte).
Mais je crois qu'il éxiste disabled="disabled" (ou un truc comme ça) pour pas qu'on écrive dedans.

Mais le mieux reste de transformer les < et > en &lt; et &gt;, ce que fait htmlentities !
  • Partager sur Facebook
  • Partager sur Twitter
18 juin 2006 à 22:09:07

bonsoir,

pas de textarea pour ça svp :)

pour xmp et pre , elles font 2 chose differentes:
<pre> qui est valide affiche le texte tel qu'il est tapé , c'est adire les retour a la ligne et les tabulation.
<xmp> (invalide ou plutot balise obsolete) affiche ce qu'elle contient en desactivant le code html , comme "htmlentities" en php dit precedemment.

au choix donc ? :
<pre>
&lt;div&gt; &lt;/div&gt;
</pre>


ou
<pre>
<xmp>
<div> </div>
</xmp>
</pre>


Le probleme c'est que si le navigateur n'implemente plus la balise <xmp> le contenue sera affiché comme du html ou rendra actif un javascript par exemple :).

donc se garder la premiere option comme proposé par shuss quand on ne peut ou veut pas passer par php pour afficher du code et oublié le textarea qui est un element de formulaire et qui ne sert pas a afficher du texte ! :p

++
  • Partager sur Facebook
  • Partager sur Twitter

fan de pluxml je suis cuisinier et codeur amateur. Des thèmes pour pluxml ? Oui

19 juin 2006 à 7:54:20

<pre> ne sert pas à afficher du code mais à afficher un texte préformaté et gardant les sauts de ligne.

La balise que l'on soit utilisé est <code>, qui préformatte également le texte (sans conserver les sauts de ligne) mais qui a un sens sémantique.

Sinon, pour les balises, il faut utiliser les signes spéciaux.
  • Partager sur Facebook
  • Partager sur Twitter
19 juin 2006 à 8:31:09

Rah, mais quand est-ce que ceux qui veulent ramener leur science vont-ils se mettre à lire la spé. <code> désigne un foutu fragement de code informatique, donc ton idée tu la vire.

Je n'ai pas trouvé la définition exacte de préformater mais c'est un texte qui est déjà mis en forme, comme du code informatique ou un poème. <code> n'est pas capable de garder un texte préformaté formaté.

@gcyrillus : homme de science, il est parfois bon de ne pas instruire les débutant sur des pratiques obsolètes.
@shuss : je veux bie nque tu me cites mais si c'est pour suggérer l'emploi de <textarea> alors non ! ^^
  • Partager sur Facebook
  • Partager sur Twitter
19 juin 2006 à 9:40:39

Citation : yöm

@shuss : je veux bie nque tu me cites mais si c'est pour suggérer l'emploi de <textarea> alors non ! ^^



J'ai bien dit que la deuxième méthode est mieux ... mais les textarea sont aussi utilisés. Je veux bien que ça ne respecte pas les normes et tout et tout, mais il est souvent utilisé (il faut le savoir), il marche parfaitement, et il y a des personnes qui s'en foutent de savoir si c'est bien ou pas, et en plus, si c'est pas automatiser, faut transformer chaque < et > en &lt; et &gt; à la main (oui, y'en a qui connaissent pas remplacer).

Bref, même si ce n'est pas la meilleure solution, c'en est une simple à mettre en place.
  • Partager sur Facebook
  • Partager sur Twitter
19 juin 2006 à 16:29:37

Tu aurais mieux fait d'apprendre la fonction remplacer. Quoiqu'il en soit, tu as omis les désagréments de cette technique, c'est ce que je te reproche.
  • Partager sur Facebook
  • Partager sur Twitter
19 juin 2006 à 18:24:24

Citation : yöm

<code> désigne un foutu fragement de code informatique, donc ton idée tu la vire.



C'est exactement se que j'ai dit :

Citation : Artis

<code> [...] qui a un sens sémantique.



Depuis quand le code d'une page n'est pas un code informatique (ce n'est certes pas un programme mais c'est informatique).

Donc prochaine fois que tu diras "un code XHTML" je te recale parce que tu viens exactement de dire le contraire (à moins que ce ne soit pas à moi que tu aies parler...).

A shuss : Remplacer un par un les < et > par des &lt; et &gt; est quand même beaucoup plus répandu que utiliser un textarea...

EDIT: A yöm: tu l'as trouvée où la spé en français ?
  • Partager sur Facebook
  • Partager sur Twitter
19 juin 2006 à 18:35:49

Bon, je n'ai pas assez mis en exergue le mot fragment. Pour moi, une page web est un code informatique entier.

Et puis je vais pas reprendre mon argumentation, dis moi clairement ce qui ne vas pas dedans que je puisse te suivre.
  • Partager sur Facebook
  • Partager sur Twitter
20 juin 2006 à 2:08:57

Si tu peux utilisé du PHP => htmlentities
Sinon, Ctrl + F et Ctrl + H sont tes amis
  • Partager sur Facebook
  • Partager sur Twitter
20 juin 2006 à 21:38:42

Citation : yöm

Rah, mais quand est-ce que ceux qui veulent ramener leur science vont-ils se mettre à lire la spé. <Code> désigne un foutu fragement de code informatique, donc ton idée tu la vire.



A qui tu parlais ? (d'accord, je l'ai pas lu la spé, mais je me suis documenté comme un malade pour le MC et je très bien de quoi je parle)

Citation : yöm

Rah, mais quand est-ce que ceux qui veulent ramener leur science vont-ils se mettre à lire la spé. <Code> désigne un foutu fragement de code informatique, donc ton idée tu la vire.



Je n'ai j'amais dit le contraire... Et si le code est entier, je vois pas quelle balise pourrait-on mettre à la place puisqu'un code entier peut très bien être un fragment. (et puis pourquoi tu dis "foutu"... je les aime bien, moi, ces codes :D )

Citation : yöm

Rah, mais quand est-ce que ceux qui veulent ramener leur science vont-ils se mettre à lire la spé. <Code> désigne un foutu fragement de code informatique, donc ton idée tu la vire.



T'étais de mauvaise humeur ce jour là parce que je suis sur que cette fois c'est à moi que tu t'es adressé...
  • Partager sur Facebook
  • Partager sur Twitter
20 juin 2006 à 22:00:45

Argh, je sens que je vais exploser, tu répètes exactement ton dernier message, bon d'accord tu as ajouté des petites remarque perfides sur mon humeur qui était relativement meilleure que d'habitude, c'est ton obstination qui m'a échauffé.

Je ne vois pas pourquoi me répéter, <pre> est plus adapté que <code>, ou alors tu mets la balise code à l'intérieur d'un <pre> ? Mais code fait partie des éléments de phrase, aussi tu risques de tout embrouiller pour un gain sémantique faible voire discutable. Peux-tu, si tu tiens à poursuivre ton argumentation, reprendre les points essentiels qui font de <code> une balise préférable à <pre> ?
  • Partager sur Facebook
  • Partager sur Twitter
20 juin 2006 à 22:01:43

mais MDR, vous prvenez à vous disputer entre XMP et PRE :D C'est lolesque :lol:

XMP, y'a que ça de bien. on s'en fous, de toutes façons, tous les navigateurs l'affichent. XMP powa

(c'était pour rire, mais tous les navigateurs l'affichent, ca c'est vrai :p ).

dans le genre lolesque, vous connaissez PLAINTEXT ?

yom est sur les nerfs à cause du MC1 ^^:D
  • Partager sur Facebook
  • Partager sur Twitter

Ma vraie biographie - Ex-Manager de la Validation sur le Site du Zéro - sdlm.be - Horus.aero

20 juin 2006 à 22:10:06

Haaaaa...

C'est juste que <pre> n'a aucun sens sémantique...
  • Partager sur Facebook
  • Partager sur Twitter
20 juin 2006 à 22:16:31

C'est vrai que <pre> a le même sens sémantique que <div>, je me demande même pourquoi il existe. Lisez la spé' bordel de merde de flûte traversière. Donne moi ton avis après sa lecture.
  • Partager sur Facebook
  • Partager sur Twitter
21 juin 2006 à 0:27:48

xmp oui ça passe encore , plaintext non !, Y'a IE qui reconnait pas la balise fermante, </plaintext> et paf !

Semantiquement , <plaintext> semblerait aussi vouloir indiqué quelque chose !? .... :p

pre pour preformated/preformater surement, div pour pour zone , division , tranche .... ?

sans même lire les spé (et pourtant on devrait le faire plus souvent) , si on a des notions d'anglais on s'aperçoit bien vite que le nom d'une balise (un "tag" en anglais) est une abreviation de son utilité: kbd pour keyboard, samp pour sample , h1 pour header one , dt pour definition title ,img pour image etc ....
C'est pas par hasard qu'elles ont des noms et des utilitée, en lisant la spé on decouvre alors un peu mieux leur usage ...

et si on se fout de la spé , et bas on reste un sauvage primitif du (pas)"NET" , on prend un truc genre frontpage ... bon suffit , fin du troll peut-etre , lol
  • Partager sur Facebook
  • Partager sur Twitter

fan de pluxml je suis cuisinier et codeur amateur. Des thèmes pour pluxml ? Oui

21 juin 2006 à 7:54:16

Au fait, voici ce que dit la Doc de Dreamweaver (référence O'Reilly) :

Citation : PRE

L'élément pre définit un bloc de texte pré-formaté. Le texte pré-formaté est en général affiché par défaut à l'aide d'une police de caractères non proportionnelle, mais, détail important, il préserve les espaces blancs (les espaces multiples insérés entre les mots, ainsi que les sauts de ligne) saisis dans le code source du contenu. À la différence de l'élément plaintext, qui est délaissé, l'élément pre n'ignore pas les balises HTML, qu'il transmet correctement au navigateur, assurant ainsi un affichage normal. Si vous désirez afficher des balises HTML dans un bloc de texte pré-formaté, utilisez des entités HTML pour les symboles « inférieur à » (&lt;) et « supérieur à » (&gt;). Cela évitera que ces balises HTML soient interprétées comme de vraies balises et les symboles seront affichés tels quels dans le bloc de texte pré-formaté.

Les navigateurs sont censés ignorer tout espace blanc de type saut de ligne suivant immédiatement la balise de début de l'élément pre, au cas où le développeur désirerait faire débuter le contenu sur une nouvelle ligne de code source. La quasi-totalité des versions 4 des navigateurs respectent cette règle, à l'exception de Microsoft Internet Explorer 4 pour Macintosh.

Les spécifications HTML 4 sont inflexibles sur le fait que l'élément pre doit conserver sa police de caractères non proportionnelle et son interligne propre. Elles précisent également la liste des éléments qui ne doivent pas être inclus dans un élément pre: applet, basefont, big, font, img, object, small, sub et sup. La présence de l'un de ces éléments détruirait la nature non proportionnelle des caractères de l'élément pre. Il est également fortement suggéré aux développeurs d'éviter de modifier les paramètres de la police non proportionnelle à l'aide de feuilles de style.

Un dernier avertissement concerne l'utilisation de caractères de tabulation pour indenter ou aligner le texte que contient un élément pre. Les navigateurs n'interprètent pas tous les tabulations de la même façon. Pour éviter les problèmes potentiels, utilisez des espaces blancs pour modifier l'alignement du texte, et fiez vous au fait que l'élément pre préserve les espaces blancs. Il n'est donc pas nécessaire d'insérer des espaces insécables (&nbsp;) dans un élément pre.



Citation : PLAINTEXT

Le contenu de l'élément bloc plaintext est affiché avec une police non proportionnelle, mais cet élément pose un problème de taille. Tout le code source qui apparaît dans le document après la balise de début est affiché tel quel dans la fenêtre du navigateur. Il est impossible de désactiver l'effet de l'élément plaintext. Même la balise de fin est affichée sous forme de balise. Cet élément est depuis longtemps délaissé dans HTML et il a même été supprimé des spécifications HTML 4.0. Il est fortement conseillé d'utiliser plutôt l'élément pre.

Dans Internet Explorer 4 pour Macintosh, l'élément plaintext est ignoré si l'un de ses attributs est défini. En d'autres termes, le code source est affiché et l'attribut est appliqué au contenu de l'élément le cas échéant (par exemple dans le cas d'une feuille de style).



Citation : XMP

L'élément xmp affiche son contenu comme élément de bloc, avec une police de caractères à espacement non proportionnel, comme dans les listes de code imprimées sur 80 colonnes. Dans la plupart des navigateurs, la taille de cette police est également réduite par rapport à la taille par défaut. Les navigateurs respectent les sauts de ligne et autres espaces blancs contenus dans le texte. Cet élément est depuis longtemps délaissé dans HTML et il a même été supprimé des spécifications HTML 4. Il est fortement conseillé d'utiliser plutôt l'élément pre.

  • Partager sur Facebook
  • Partager sur Twitter

Ma vraie biographie - Ex-Manager de la Validation sur le Site du Zéro - sdlm.be - Horus.aero

21 juin 2006 à 14:25:35

Citation : yöm

C'est vrai que <pre> a le même sens sémantique que <div>, je me demande même pourquoi il existe. Lisez la spé' bordel de merde de flûte traversière. Donne moi ton avis après sa lecture.



Pour moi <pre> avait un sens sémantique se rapprochant de <p>, ce sont tous les deux des paragraphes, l'un d'eux ayant la particularité d'être préformaté...
  • Partager sur Facebook
  • Partager sur Twitter
21 juin 2006 à 14:38:40

Paragraphe, pas vraiment mais c'est ce genre d'idée. J'étais ironique mais je m'aperçois que c'était de la très mauvaise ironie ...
  • Partager sur Facebook
  • Partager sur Twitter
21 juin 2006 à 14:43:02

Citation : yöm

Paragraphe, pas vraiment mais c'est ce genre d'idée. J'étais ironique mais je m'aperçois que c'était de la très mauvaise ironie ...



Désolé d'avoir mal compris tes propos....
  • Partager sur Facebook
  • Partager sur Twitter
14 janvier 2018 à 17:56:48 - Message modéré pour le motif suivant : Les insultes ne sont pas tolérées


--

--

NaelH

14 janvier 2018 à 18:37:59

Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention plus facilement.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

Pour plus d'informations, nous vous invitons à lire les règles générales du forum

Déterrage

Citation des règles générales du forum :

Avant de poster, demandez-vous si ce que vous allez dire apporte quelque chose au sujet. Si votre message n'apporte rien, vous ferez perdre du temps à tout le monde et le sujet pourrait dévier ou devenir difficile à suivre.

Aussi, vérifiez la date du topic. Le déterrage de topic nuit au bon fonctionnement du forum et est interdit. Utilisez les boutons pouce en haut pour dire merci. Si le topic date de plus de deux mois sans réponses, mieux vaut ne pas répondre.

Je ferme ce topic.

  • Partager sur Facebook
  • Partager sur Twitter

Pas d'aide concernant le code par MP, le forum est là pour ça :)