Я пытаюсь проверить свой документ для HTML5 с помощью валидатора W3C по адресу http://validator.w3.org/check . Когда я запускаю код ниже с помощью «прямого ввода», я получаю сообщения об ошибках, такие как Element head, отсутствует требуемый экземпляр дочернего элемента и Stitch start tag html . Это меня озадачивает, потому что <html>
находится прямо там. Почему валидатор не видит этого?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="description" content="some content"> <title>page title</title> </head> <body> </body> </html>
Обновление : я использую PHP для генерации частей файла, и выясняется, что это стало причиной ошибки.
Я обнаружил ошибку. Я использую PHP для создания страницы. Когда я просмотрел его в шестнадцатеричном редакторе, я обнаружил два нулевых байта (шестнадцатеричный код 0x00) перед тегом. Именно там, где был мой первый <?php ?>
. Когда я скопировал код или запустил его по URL-адресу, валидатор столкнулся с нулевыми байтами. Когда я написал код вручную, он прошел проверку корректно.
<!DOCTYPE html> <?php /* the PHP tag apparently outputs two null bytes */ ?> <html> <head> <title>page title</title> </head> <body>page body</body> </html>
Я переместил первый тег PHP в первую строку тела и прошел проверку.
он не дает ошибку, вместо двух предупреждений, я проверил в той же ссылке.