5568 sujets

Sémantique web et HTML

sur mon site j'ai besoin de faire apparaître un script php entier avec les balise <?php.......?>
j'ai utilisé une <pre> mais ca ne marche pas pas;
je croyait pourtant qu'un texte dans une <pre> était reproduit à l'identique...
je voudrait pouvoir afficher le script comme on peut le faire en BBcode sur le forum de dotclear ou comme ici avec CODE
merci de m'éclairer
<?php
function dcextCatDesc($block = '$s') {
	global $cat_id, $blog;
	if ($cat_id != '') {
		$rscat = $blog->getCat($cat_id);
		if (!empty($rscat)) {
			$desc = $rscat->f('cat_desc');
			if ($desc != '') {
				printf($block, $desc);
			}
		}
	}
}
?>

Modifié par robby (07 Apr 2008 - 23:44)
Tu dois remplacer les caractères "<" par &lt; et ">" par &gt; et le tour sera joué Smiley cligne

<pre> est à priori la balise à utiliser.
Si c'est bien pre mais il faut utiliser "?&lt;" pour < et "?&gt;" > comme dans cete exemple:

<?php
function dcextCatDesc($block = '$s') {
  global $cat_id, $blog;
  if ($cat_id != '') {
    $rscat = $blog->getCat($cat_id);
    if (!empty($rscat)) {
      $desc = $rscat->f('cat_desc');
      if ($desc != '') {
        printf($block, $desc);
      }
    }
  }
}
?>




édit: grillé Smiley biggrin
Modifié par Igor (12 Mar 2005 - 15:22)
edit : heu... Bon, bah... Grillé et regrillé !
Vu qu'il n'y a rien à ajouter, vous voulez que je vous chante une petite chanson ?
Smiley lol
Modifié par Laurent Denis (12 Mar 2005 - 15:24)
Rooo l'autre !!! j'en ai grillé 2 d'un coup Smiley murf lol
Par contre, Laurent tu fais bien de compléter avec & qui doit être encodé en &amp;, c'est le genre de truc qui est utilisé dans les scripts PHP genre pou && = and
merci à tous !
à bientôt
ps : => raphael :je viens d'installer "plume cms" , dur dur de faire des gabarits par rapport à dotclear...;
superbe ! le tiens pour les tutoriels
je pensait que tout fonctionnerai nikel ; mais NON !
pas de problème pour le script php de mon premier post : remplacement de < par < et > par > , ca marche (le script s'affiche, et il me semble que ca l'empêche de s'exécuter côté serrveur )
mais problème avec cet autre script que je désire afficher dans une balise pre:

<?php include dirname(__FILE__).'/extended.php'; ?>
<?php if ($cat_id != '') dcextCatDesc('<div class="post"><h2 class="cat-desc">%s</h2></div>'); ?> 
<?php if ($cat_id == '') echo '<div class="post"><h2 class="cat-desc">'.dc_blog_desc
.'</h2></div>'; ?>

et voici ce que le navigateur affiche :
upload/980-Capture1.png

il semblarai que certains morceaus du script (notamment echo ...) soit interprétés . Smiley decu
comment peut - on résoudre le problème pour qu'un texte ou script de prog s'affiche intégralement comme la mise en forme CODE sur ce forum ???
Smiley decu Smiley fache Smiley fache Smiley fache
ma <pre> est style par ceci (mais il y a pas de rapport ? )

pre{
	background: #FAFAFA;
	border: 1px solid #E0E0E0;
	color: #000000;
	font-family: monospace;
	font-size: 1em;
	margin: 0 auto;
	overflow: auto;
	width: 90%;
}

Modifié par robby (14 Mar 2005 - 01:15)
robby a écrit :

remplacement de < par < et > par >


Tu as fait le remplacement par les entité ????? &lt;, &gt;
<?php devient &lt;?php par exemple.
oui voici la portion de code source :

<pre>
&lt;?php include dirname(__FILE__).'/extended.php'; ?&gt;
&lt;?php if ($cat_id != '') dcextCatDesc('<div class="bloc_presentation"><h2 class="cat-desc">%s</h2></div>'); ?&gt; 
&lt;?php if ($cat_id == '') echo '<div class="bloc_presentation"><h2 class="cat-desc">'.dc_blog_desc
.'</h2></div>'; ?&gt;
</pre>

en plus ne s'affiche pas non plus <div class= .....
Modifié par robby (14 Mar 2005 - 00:40)
arrrrh !! quelle erreur dans mon code source ci desssus ! Smiley decu

je viens de trouver la solution.
il fallait aussi que je remplace les < et > au niveau des balises div et h2.
Quelle galère de tout remplacer .....
à quoi ca sert les pre si le code à l'intérieur est interprété ( à savoir <?php> , <div> , <h2> etc ... )

who nows ???
Modifié par robby (14 Mar 2005 - 01:13)
Oui c'est pénible, mais il faut systématiquement remplacer les < et le > par leurs entités pour ce qui concerne du code et ton éditeur doit bien avoir une fonction "rechercher remplacer" Smiley cligne . Pour ce qui est de l'élément pre, un petit tour à la source.
robby a écrit :

à quoi ca sert les pre si le code à l'intérieur est interprété ( à savoir <?php> , <div> , <h2> etc ... )

who nows ???


<pre> ne sert qu'à indiquer que les espace et les retours à la ligne de son contenu sont tous significatifs et qu'ils doivent être tous restitués. On l'utilise couramment pour les exemples de codes où les retours à la ligne sont ainsi respectés sans avoir besoin d'être balisés, et où l'indentation est respectée. Mais <pre> n'est pas destiné spécialement à cet usage, et peut tout aussi bien servir pour un texte en vers, ou de l'ascii-art, par exemple.

Il a existé, dans la préhistoire du HTML d'avant HTML2.0, des balisages servant à dire le code HTML contenus dans cet élément doit être affiché sans être interprété. Ce qui posait quelques problèmes aux parser ayant à traiter ce type de code.
Bien que déclarés dépréciés dès HTML2.0, ces éléments sont toujours supportés en partie par les navigateurs modernes, et on peut toujours s'amuser à tester <xmp> (le tag microsoft) et <plaintext> (le tag Netscape).
A tester seulement, pas à utiliser en vrai ! Smiley cligne
Modifié par Laurent Denis (14 Mar 2005 - 05:31)
D'un point de vu strictement sémantique, il serait plus approprié d'utiliser la balise CODE plutot que PRE (eventuellement, les deux ensemble, mais i lest tout à fait possible d'utiliser les CSS pour que CODE ce comporte comme PRE)

Smiley smile
Administrateur
Jep a écrit :
D'un point de vu strictement sémantique, il serait plus approprié d'utiliser la balise CODE plutot que PRE (eventuellement, les deux ensemble, mais i lest tout à fait possible d'utiliser les CSS pour que CODE ce comporte comme PRE)

Avec une grosse différence toutefois : <code> est une balise inline (donc, par définition, qui s'inscrit dans la même ligne et qui n'a pas de dimensions).
Il faut donc, comme tu le dis soit utiliser pre+code, soit afficher code en bloc.
Modifié par Raphael (14 Mar 2005 - 10:39)
merci à tous pour toutes ces réponses instructives.
je vois que je suis encore loing de maîtriser le html.
bon aller il faut que je reprenne les docs de base.
Sans vouloir relancer le sujet, il me semble que l'utilisation de la fonction php highlight_string est à propos vu l'utilisation que tu recherches.

Le souci étant que en php4, le résultat obtenu est loin d'être conforme. Enfin voilà il me semblait quand même important de signaler ce point ^^