Page 1 sur 3

Incompabilité xhtml et php

Publié : 30 avr. 2004, 17:20
par Antoinei
Bonjour,

J'ai créé une page en xhtml et je lui ai donné l'extension php car j'ai l'intention d'y insérer des scripts php. Mais, quand j'essaye d'afficher cette page j'obtiens un message d'erreur, car la première ligne "<?xml version="1.0" encoding="iso-8859-1"?>" est interprétée comme du php.
Y a-t-il une solution à ce problème ?

Merci d'avance, Antoine

Publié : 30 avr. 2004, 17:27
par calimo

Code : Tout sélectionner

echo"<?xml version="1.0" encoding="iso-8859-1"?>";
:wink:

EDIT : j'allais oublier : fais attention à ne pas laisser d'espace ou d'autres caractères (retour à la ligne) avant le prologue xml :wink:

Publié : 30 avr. 2004, 17:40
par Antoinei
J'aurais pas imaginé que c'était aussi simple que ça :) !

edit : y avait juste une petite erreur dans ton code ! pour echo, faut mettre des "guillemets simples" sinon ça marche pas !

Code : Tout sélectionner

<? echo'<?xml version="1.0" encoding="iso-8859-1"?>'; ?>
Merci !

Publié : 30 avr. 2004, 17:54
par calimo
Ah, erreur en effet : guillemets simples ou protéger les guillemets doubles

Code : Tout sélectionner

echo"<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>";
:oops:

Publié : 30 avr. 2004, 18:00
par Benoit
Juste une remarque, cette ligne est facultative en XHTML et fait passer Internet Explorer en mode non (certains diront encore moins) standard. Donc c'est peut-être mieux de la laisser tomber tout à fait.

Publié : 30 avr. 2004, 18:00
par Xanthor
Si c'est un serveur sur lequel tu peux modifier la config, tyu peux demander à PHP de ne s'occuper que de ses PI (<?php) au lieu de toutes chercher à les interpreter...

Publié : 30 avr. 2004, 18:10
par Antoinei
Benoit a écrit :Juste une remarque, cette ligne est facultative en XHTML et fait passer Internet Explorer en mode non (certains diront encore moins) standard. Donc c'est peut-être mieux de la laisser tomber tout à fait.
Ah bon ? Pourtant dans un article d'Openweb (article) , il est dit de le mettre ????

Xanthor a écrit :Si c'est un serveur sur lequel tu peux modifier la config, tyu peux demander à PHP de ne s'occuper que de ses PI (<?php) au lieu de toutes chercher à les interpreter...
Non, c'est chez un hébergeur !

Antoine

Publié : 30 avr. 2004, 20:41
par Bobe
Antoinei a écrit : Ah bon ? Pourtant dans un article d'Openweb (article) , il est dit de le mettre ????
Il le faut le mettre si:
  • La page est envoyée en application/xhtml+xml
  • L'encodage du document est différent de UTF-8 et UTF-16

Publié : 01 mai 2004, 08:40
par calimo
Pour ça tu peux utiliser le code suivant :

Code : Tout sélectionner

if( stristr($HTTP_SERVER_VARS["HTTP_ACCEPT"], "application/xhtml+xml") )
	   {
		  header("Content-Type: application/xhtml+xml");
		  echo "<?xml version='1.0' encoding='utf-8'?>\n";
	   }

Publié : 01 mai 2004, 09:46
par Antoinei
Bonjour,

Merci pour vos réponses, mais là je suis un peu paumé, je sais plus ce que je dois mettre ou pas .....

Antoine

Publié : 01 mai 2004, 14:33
par Benoit
Si tu mets le dernier code indiqué par Calimo ça devrait prendre en compte tout ce qu'on a dit avant :)

Publié : 01 mai 2004, 17:49
par Antoinei
D'accord et merci à tous ! :D

Antoine

Publié : 01 mai 2004, 18:07
par calimo
Oui effectivement, tu mets ce code en haut de ta page (sans laisser d'espaces avant) et tout se fait automatiquement : la page est envoyée comme une page html à tous les anciens navigateurs (IEx, NS4- et cie) et c'est un très beau xhtml qui est envoyé à tous les autres !

Publié : 01 mai 2004, 18:35
par Antoinei
Donc j'ai fait les différentes modifs, de telle sorte que ma page commence comme ça

Code : Tout sélectionner

if( stristr($HTTP_SERVER_VARS["HTTP_ACCEPT"], "application/xhtml+xml") )
      {
        header("Content-Type: application/xhtml+xml");
        echo "<?xml version='1.0' encoding='iso-8859-1'?>\n";
      }
<!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">
mais quand j'essaye de faire valider ma page, j'obtiens le message d'erreur "Fatal Error: No DOCTYPE specified!" !!??

Edit : j'ai aussi ça quand je veux visualier la page
"Parse error: parse error, unexpected T_STRING in D:\serveur\site\antoine\index.php on line 4"

Publié : 01 mai 2004, 18:37
par calimo
Oui, le doctype tu dois le mettre en dehors du php :wink:

Code : Tout sélectionner

<?php if( stristr($HTTP_SERVER_VARS["HTTP_ACCEPT"], "application/xhtml+xml") )
      {
        header("Content-Type: application/xhtml+xml");
        echo "<?xml version='1.0' encoding='iso-8859-1'?>\n";
      }
?>
<!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">