Bonjour,
Je cherche à faire un site perso, le genre de site ou je pourrais raconter ma vie, mon oeuvre, mettre un CV, bref, le genre de truc qui n'intéresse pas grand monde à part l'auteur du site.
Mais bon voila, comme j'ai envie de faire les choses bien, je voudrais faire un site qui respecte les standards. J'ai donc décidé d'écrire mon site en XHTML 1.0 Strict (+CSS).
Quel est le rapport avec PHP me direz-vous ?
J'y arrive.
L'entête de ma page XHTML est composé de
[?xml version="1.0" encoding="ISO-8859-15"?]
[!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd(...)"]
(Je n'arrive pas à mettre les balises, aussi ai-je mis des crochets [] à la place)
Et ensuite, j'ai le reste des instructions de ma page.
Le problème est que quand j'insère du code php dans cette page, et que je nomme mon fichier index.php, l'interpréteur PHP m'indique une erreur sur la première ligne :
Parse error: parse error in /var/www/html/index.php on line 1
Quand je commence mon fichier par [html], en enlevant le début du document, tout marche bien.
Donc, question : Comment fait-on pour déclarer proprement sa page XHTML et insérer des bouts de code PHP dedans ?
Merci
Darckense
PS : Peut-être que ce post devrait être dans Programmation Web. J'ai hésité entre les deux...
# balise <?php
Posté par kd . Évalué à 7.
short_open_tag = Off dans ton php.ini
Si tu fais ce changement, tu seras obligé d'utiliser <?php ?> pour mettre ton code php au lieu du <? ?>
En effet, si tu laisses la variable short_open_tag à On, php va croire que le <?xml débute du code PHP et ne va donc pas comprendre le xml version="1.0" encoding="ISO-8859-15" qui suit, d'où l'erreur.
Sinon, autre solution si tu n'as pas accès au serveur, tu dois passer par cette étape plus fastidieuse :
<?php
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?>\n";
?>
[^] # Re: balise <?php
Posté par Darckense (site web personnel) . Évalué à 1.
Pour l'instant je teste mon site en local, j'ai put modifier le php.ini pour mettre la variable short_open_tag à Off. Cela marche parfaitement.
Par contre, je vais héberger mon site chez free, je ne sais pas quelle est la configuration de leur serveur. Au besoin, j'utiliserai la seconde méthode.
Encore une fois merci, il ne me reste plus qu'à écrire mon site maintenant !
Darckense
[^] # Re: balise <?php
Posté par zeitounator . Évalué à 2.
php_flag short_open_tag off
Ceci supprimera les short open tag pour le répertoire web qui contient le fichier .htaccess et tous ses sous répertoires.
Pour que ca marche il faut:
- que php soit installé comme module dans apache
- que l'administrateur du serveur web n'est pas bloqué la possibilité de le faire (avec la directive allowOverride dans le fichier httpd.conf de apache)
Pour plus d'information sur le changement de configuration de php en utilisant un fichier .htaccess: http://www.php.net/manual/fr/configuration.changes.php(...)
[^] # Re: balise <?php
Posté par scand1sk (site web personnel) . Évalué à 1.
Sinon, encore mieux, utiliser des templates, genre Smarty : http://smarty.php.net(...)
[^] # Re: balise <?php
Posté par Sébastien Koechlin . Évalué à 4.
Ceci parce qu'une PI se termine par ?>, il ne faut donc pas avoir ce code dans toute la partie PHP.
Il faut utiliser
<?php echo '<?xml version="1.0" encoding="utf-8" ?'.'>'; ?>
La forme <?= est une forme simplifié qu'il est fortement déconseillée d'utilisée, parce que dépendante de la configuration.
En php, il faut écrire le code le plus universel possible, sinon on fini toujours par avoir des problèmes, le jour où on déménage, le jour où la config change, plus rien ne fonctionne.
# Use Dotclear Luke
Posté par stombi (site web personnel) . Évalué à 1.
ça risque d'etre un peu long a expliquer... :)
Si tu veux pas t'emmerder installes Dotclear http://www.dotclear.net/(...)
en plus tu pourra examiner le code pour voir comment c'est fait, c'est très instructif.
[^] # Re: Use Dotclear Luke
Posté par Darckense (site web personnel) . Évalué à 1.
# utilise un echo
Posté par Ecran Plat (site web personnel) . Évalué à 2.
# attention
Posté par botio2 . Évalué à 2.
[?xml version="1.0" encoding="ISO-8859-15"?]
fait passer IE6 en mode "quirks" (modele de boite ms) meme avec un doctype xhtml strict.
encore une crétinerie de IE.
donc si tu commence ta page direct avec la declaration du doctype XHTML strict, c'est pas 100% correct, mais le rendu se fera de la meme facon sous IE6 et moz (modele de boite w3c) ce qui est beaucoup plus pratique.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.