5568 sujets

Sémantique web et HTML

Bonjour,

J'ai parcouru un peu le site mais j'ai du mal a comprendre à quoi sert une telle ligne et si elle est obligatoire et dans quels cas ?

<?xml version="1.0" encoding="utf-8"?>


De plus si j'ai bien compris dans la page html il faut mettre un en tete du style:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Bienvenue sur mon site !</title>
       <meta http-equiv="Content-Type" content="text/html"; charset="iso-8859-1" />
	   <link rel="stylesheet" media="screen" type="text/css" title="a.css" href="a.css" />
   </head>
   <body> .....


Pour une page Php, puis je garder le meme en tete ?

Et pour la feuille css, faut il mettre un en tete du meme style, j'avoue ne pas trop avoir trouvé d'info sur cela ?

Merci
La toute première ligne que tu cites s'appelle le prologue XML. Elle permet surtout de préciser l'encodage utilisé (plus d'infos sur l'encodage). En théorie, elle est obligatoire pour un document qui n'utilise pas UTF-8 ; dans la pratique, on l'omet très souvent à cause de quelques problèmes qu'elle cause avec IE.

L'"en-tête" s'appelle le doctype (ou DTD, Document Type Declaration). Elle est obligatoire, et il faut toujours l'inclure, pour préciser le langage que tu utilises : HTML (et quelle variante ?) ou XHTML (et quelle variante ?). Plus d'infos sur les déclarations.

PHP n'est pas un langage similaire à HTML. PHP est un langage de programmation qui permet de créer du code HTML (et parfois plus). Lorsque tu codes en PHP, tu dois t'arranger pour que le "client" reçoive un code HTML valide. Il faut donc aussi utiliser cette en-tête en PHP.

Il n'y a pas d'équivalent en CSS qui permette de préciser la version de CSS utilisée. Dans la pratique, ça ne pose pas de problèmes (car les documents valides en CSS1 le sont aussi en CSS2).
a écrit :
La toute première ligne que tu cites s'appelle le prologue XML.
<?xml version="1.0" encoding="utf-8"?>

Je m'étonne de la présence de ce prologue en haut du code des pages de ce forum.
Dans mon cas, je ne retrouve ce prologue qu'en haut d'une page (ou d'un extrait de page) générée par xml-xslt.

La base de données de ce forum passe-t-elle par xml ?
En fait chez moi cette ligne me met une erreur ma page web ne s'affiche plus:


<?xml version="1.0" encoding="utf-8"?>



alors je vois pas trop son utilité ?
Très étonnant Smiley eek Smiley eek

Quel est donc ton navigateur et sa version ?
Et pour être complet, ton système d'exploitation et sa version ?
Bonjour,

S'il s'agit d'une page php, le problème vient d'une tentative d'interprétation de cette ligne par php.

yaume a écrit :
En fait chez moi cette ligne me met une erreur ma page web ne s'affiche plus:


<?xml version="1.0" encoding="utf-8"?>



alors je vois pas trop son utilité ?


Tu peux la remplacer par une déclaration de ce type :

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


en remplaçant "iso-8859-1" par ce que tu souhaites.
Effectivement, quand
<?xml version="1.0" encoding="utf-8"?>
se trouve comme prologue coté serveur, c'est l'erreur php garantie. Mais cela ne devrais pas l'être. C'est que Zend ou le serveur Apache, malgré tout, continue d'accepter
<?(xxx) ... ?>
comme étant a priori du php. Smiley decu
Modifié par h2o (25 Aug 2005 - 15:02)
J'ai fait le test suivant :

Soit un document xml (sans importance pour cet exemple).

Une feuille de style xsl :
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output encoding="iso-8859-1" indent="yes" method="xml" omit-xml-declaration="yes"
        doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
    <xsl:template match="/">
        <html>
            <head>
                <!-- -->
            </head>
            <body>
                <!-- -->
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>


et un document php (DOM Php 5) :
<?php
/* load the xml file and stylesheet as domdocuments */ 
$xsl = new DomDocument(); 
$xsl->load('doc.xsl'); 
$inputdom = new DomDocument(); 
$inputdom->load('doc.xml'); 
/* create the processor and import the stylesheet */ 
$proc = new XsltProcessor(); 
$xsl = $proc->importStylesheet($xsl);
/* transform the xml document */ 
$newdom = $proc->transformToXml($inputdom); 
/* eval and output the xml */
$newdom = eval("?".chr(62).$newdom.chr(60)."?");
?>


L'ensemble du code xhtml est généré par la transformation xml-xslt.

La ligne du code php
$newdom = eval("?".chr(62).$newdom.chr(60)."?");
permet l'évaluation/exécution du code php placé dans le document xslt de la manière suivante :
<xsl:template match="/">
<xsl:processing-instruction name="php">
                        <xsl:text>include "../Outils/compteur.php" </xsl:text>
                    </xsl:processing-instruction>
<!-- -->
</xsl:template>
    <xsl:template match="php">
        <xsl:processing-instruction name="php">
            <xsl:apply-templates/>
        </xsl:processing-instruction>
    </xsl:template>


Si j'ose modifier omit-xml-declaration="yes" en "no", plus rien ne s'affiche : Apache/php interprète (probablement) le prologue <?xml ... ?> comme du code php.
Modifié par h2o (25 Aug 2005 - 15:18)
Pour régler ce problème, un simple echo :
<?php echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";?>
Remplacez utf-8 par le charset voulu. Assurez cependant que la page puisse être exploitée correctement ...
Modifié par original.defeat (25 Aug 2005 - 16:12)
a écrit :
<mauvaise manip, excusez moi>
Au cas où il y ait incompréhension : Je m'adressais à un modérateur parce que j'ai royalement merdé en utilisant le mauvais bouton pour répondre ... Smiley lol Le code que j'ai donné peut être utilisé.
original.defeat a écrit :
Au cas où il y ait incompréhension : Je m'adressais à un modérateur parce que j'ai royalement merdé en utilisant le mauvais bouton pour répondre ... Smiley lol Le code que j'ai donné peut être utilisé.


Désolé : ton destinataire n'étais pas très évident.

Concernant la commande "print". Pour php, c'est du connu. Il l'exécute et le résultat s'affiche.

Ma remarque portait sur le fait que php (ou Apache) ne distingue pas <?xml ... ?>, <?php ... ?> et <? ... ?>.
Pour lui, c'est du pareil au même (sauf erreur de ma part). Et ce n'est pas bien Smiley nono .
Modifié par h2o (25 Aug 2005 - 17:14)
Là, j'ai moi aussi commis une erreur dans mon texte. D'où c post de trop Smiley confused Smiley confused
Modifié par h2o (25 Aug 2005 - 17:16)
h2o a écrit :
Désolé : ton destinataire n'étais pas très évident.
C'est ma faute je me suis mal exprimé. De toute façon, c'est de la faute de dew qui a mis les boutons éditer et citer à l'envers Smiley biggol Smiley lol .
original.defeat a écrit :
C'est ma faute je me suis mal exprimé. De toute façon, c'est de la faute de dew qui a mis les boutons éditer et citer à l'envers Smiley biggol Smiley lol .

Oui, c'est vrai : tous sur "dew" .... Smiley biggrin Smiley biggrin Smiley biggrin