web-dev-qa-db-fra.com

Ai-je besoin d'une déclaration! DOCTYPE dans un fichier php avec HTML?

J'ai un fichier php avec le contenu de mon site web. Le fichier doit être .php car je récupère d’abord des variables puis je l’utilise plus tard dans le contenu du site. Comme cet exemple:

<?php
$user_name = $_REQUEST['username'];
?>

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>Page Title</title>
    <link rel="stylesheet" href="css/style.css" />
</head>
<body>
Welcome <?php echo $username;?>
</body>
</html>

Ai-je besoin du <!DOCTYPE HTML>, étant donné que l'extension du fichier est php? En outre, est-il placé correctement? Devrait-il être placé avant la balise ou dans la toute première ligne de mon fichier?

J'ai aussi remarqué que si je supprime le <!DOCTYPE HTML>, une partie de mon code CSS cesse de fonctionner ...

Merci beaucoup.

27
DanielFox

Oui, vous avez besoin d'un DOCTYPE, car votre navigateur ne voit que la partie suivante du code ci-dessus.

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>Page Title</title>
    <link rel="stylesheet" href="css/style.css" />
</head>
<body>
Welcome THE USER NAME
</body>
</html>

Je place généralement la balise close PHP et le DOCTYPE ensemble comme ceci ?><!DOCTYPE HTML>

24
Graham Walters

Désolé de ressusciter les morts, mais personne ne semble expliquer pourquoi pourquoi vous avez besoin d’un doctype en HTML (oui, un script PHP produisant du code HTML est un fichier HTML à la fin).

La déclaration d'un type de document affecte la manière dont le navigateur interprète votre code HTML (il s'agit probablement de pourquoi votre code CSS peut cesser de fonctionner sans un type de type). Fondamentalement, il y a 2 façons: le mode quirks et le mode strict. Ce dernier est conforme aux normes, vous devriez donc toujours indiquer au navigateur quelle norme HTML est conforme à votre code (de nos jours, vous voulez probablement HTML5 qui a le plus simple doctype: <!DOCTYPE html>).

Voir ici pour une explication plus détaillée .

7
mTorres

Comme d'autres l'ont déjà dit, !DOCTYPE est nécessaire dans les scripts php générant du HTML. Si vous créiez une image ou exécutiez un fichier bash ou quelque chose du genre, l'histoire serait différente.

Pour ce qui est de savoir où il se trouve, c’est une bonne idée de le mettre au début afin de ne pas générer par inadvertance quelque chose qui le précède, mais si vous utilisez des variables de session ou envoyez des en-têtes, assurez-vous de le faire AVANT. déclarer un doctype. N'oubliez pas qu'il ne peut y avoir AUCUNE sortie du navigateur (même des espaces) avant que les en-têtes ne soient envoyés via php ou que les sessions ne soient démarrées.

6
Derrick Tucker

Vous devriez toujours mettre un Doctype dans votre HTML, peu importe la façon dont le HTML est construit. 

Liste de doctype w3

2
wajiw

Les mêmes règles s'appliquent également au HTML, qu’il s’agisse de fichiers HTML ordinaires ou de fichiers HTML avec PHP intégré. Vous avez besoin d'un doctype dans toutes les circonstances, il vous en faudrait un en HTML simple.

À propos, il y a un espace entre la fin du premier bloc oh PHP code et le doctype. Je semble me souvenir que les espaces avant le doctype peuvent être problématiques (même si cela ne concerne que XHTML)

2
GordonM

Votre résultat final est HTML qui utilise le doctype. Donc, oui, vous en avez besoin d'un. Si cela casse votre code CSS, votre code HTML et/ou CSS est incorrect et doit être corrigé.

1
John Conde

Oui, vous devriez avoir la déclaration DOCTYPE, puisque ce que vous envoyez au navigateur est HTML, pas PHP.

La déclaration indique au navigateur que vous utilisez HTML 5 et lui explique comment le rendre.

1
Oded

Quand ils contiennent du HTML incorporé, il est préférable de penser aux fichiers .php en tant que fichiers HTML normaux que le serveur a été chargé d'analyser pour du code dynamique (PHP).

Une déclaration !DOCTYPE valide est toujours nécessaire pour que le document soit sémantique.

1
Jules

PHP n'a vraiment rien à voir avec HTML - c'est juste le code côté serveur qui crache un tas de texte que le navigateur interprète.

Un doctype est une partie essentielle de la façon dont le navigateur interprète le code HTML qui suit.

<!DOCTYPE HTML>
<table  style="position:absolute; bottom:20%; right:40%;" width="150">

si vous mettez <!DOCTYPE HTML> dans un fichier php, certains styles ne fonctionneront pas correctement, certains problèmes d’alignement.

0
Thoppil