Нужно ли мне объявление!DOCTYPE в файле php с html?


У меня есть php-файл с содержимым моего веб-сайта. Файл должен быть .php, потому что сначала я получаю некоторые переменные, а затем использую их позже в содержимом веб-сайта. Как в этом примере:

<?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>

Нужен ли мне <!DOCTYPE HTML>, так как расширение файла - php? Кроме того, правильно ли он размещен? Должно ли оно быть перед тегом или в самой первой строке моего файла?

Я также заметил, что если я удалю <!DOCTYPE HTML>, часть моего css-кода перестанет работать...

Большое вам спасибо.

Author: Jules, 2013-01-31

10 answers

Да, вам нужен документ, так как ваш браузер видит только следующую часть приведенного выше кода

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

Обычно я размещаю тег close PHP и ДОКТАЙП вместе, вот так ?><!DOCTYPE HTML>

 21
Author: Graham Walters, 2013-04-23 16:07:26

Как уже говорили другие, !DOCTYPE необходим в php-скриптах, которые выводят HTML. Если бы вы создавали изображение или выполняли файл bash или что-то в этом роде, история была бы другой.

Что касается того, где он находится, рекомендуется поместить его в начало, чтобы вы случайно не вывели что-то перед ним, но если вы используете переменные сеанса или отправляете заголовки, вам нужно будет убедиться, что вы делаете это перед объявлением доктипа. Помните, что не может быть НИКАКОГО браузера вывод (даже пробелы) перед отправкой заголовков через php или запуском сеансов.

 6
Author: Derrick Tucker, 2013-01-30 20:32:08

Извините, что воскрешаю мертвых, но, похоже, никто не объясняет зачем вам нужен документ в HTML (да, PHP-скрипт, выводящий HTML, - это HTML-файл в конце).

Объявление типа документа влияет на то, как браузер интерпретирует ваш HTML (вероятно, именно поэтому ваш css-код может перестать работать без типа документа). В основном есть 2 способа: режим причуд и строгий режим. Последнее соответствует стандартам, поэтому вы всегда должны указывать браузеру, какой стандарт HTML является вашим кодом следующее (в настоящее время вы, вероятно, хотите HTML5, который имеет самый простой тип документа: <!DOCTYPE html>).

Смотрите здесь для более подробного объяснения.

 6
Author: mTorres, 2015-09-15 05:50:33

Вы всегда должны указывать тип документа в своем html, независимо от того, как он построен.

Список типов документов W3

 2
Author: wajiw, 2013-01-30 20:28:27

Одни и те же правила для HTML применяются одинаково, будь то обычные HTML-файлы или HTML-файлы со встроенным PHP. Вам нужен доктайп в любых обстоятельствах, который вам понадобится в обычном HTML.

Кстати, между концом первого блока PHP-кода и доктипом есть пробелы. Кажется, я помню, что пробелы перед типом документа могут быть проблематичными (хотя это может относиться только к XHTML)

 2
Author: GordonM, 2013-01-30 20:28:52

Ваш конечный результат - HTML, который использует doctype. Так что, да, он вам нужен. Если это нарушает ваш CSS, то ваш HTML и/или CSS неверны и их необходимо исправить.

 1
Author: John Conde, 2013-01-30 20:27:39

Да, у вас должно быть объявление DOCTYPE, так как то, что вы отправляете браузеру, является HTML, а не PHP.

Объявление сообщает браузеру, что вы используете HTML 5, и сообщает ему, как его отобразить.

 1
Author: Oded, 2013-01-30 20:27:43

PHP на самом деле не имеет ничего общего с HTML - это просто код на стороне сервера, выплевывающий кучу текста, который интерпретирует браузер.

Доктайп является важной частью того, как браузер интерпретирует следующий HTML-код.

 1
Author: Diodeus - James MacFarlane, 2013-01-30 20:29:15

Когда они содержат встроенный HTML, лучше думать о файлах .php как о обычных HTML-файлах, которые серверу было поручено сканировать на наличие динамического (PHP) кода.

Действительное объявление !DOCTYPE по-прежнему необходимо для того, чтобы документ был семантическим.

 1
Author: Jules, 2018-02-17 06:00:50
<!DOCTYPE HTML>
<table  style="position:absolute; bottom:20%; right:40%;" width="150">

Если вы поместите <!DOCTYPE HTML> в файл php, некоторые стили будут работать неправильно, некоторые проблемы с выравниванием.

 0
Author: Thoppil, 2017-12-16 12:41:14