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
EDIT : j'allais oublier : fais attention à ne pas laisser d'espace ou d'autres caractères (retour à la ligne) avant le prologue xml

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 !
Merci !
Publié : 30 avr. 2004, 17:54
par calimo
Ah, erreur en effet : guillemets simples ou protéger les guillemets doubles

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 !
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
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">