Я пытался проверить простую страницу HTML5 и успешно проверял все, кроме трех экземпляров <?php include
которые помечены как ошибки. Я не могу понять, почему он не принимает теги PHP. Почему это должно быть? Ниже приведены три ошибки:
Validation Output: 3 Errors Line 29, Column 5: Saw <?. Probable cause: Attempt to use an XML processing instruction in HTML. (XML processing instructions are not supported in HTML.) <?php include("inc/main-menu.php"); ?> Line 87, Column 9: Saw <?. Probable cause: Attempt to use an XML processing instruction in HTML. (XML processing instructions are not supported in HTML.) 2007-<?php echo date("Y"); ?> Line 94, Column 3: Saw <?. Probable cause: Attempt to use an XML processing instruction in HTML. (XML processing instructions are not supported in HTML.) <?php include_once("inc/analytics.php"); ?>
Те теки PHP не должны отображаться в вашей разметке. Они будут записаны в вашем коде, но только ваш веб-сервер должен увидеть те – страница, сгенерированная вашим сервером, не будет иметь эти теги видимыми.
Я предполагаю, что вы копируете свой источник и вставляете в валидатор? Попробуйте просмотреть страницу в своем браузере (при условии, что вы используете локальный веб-сервер, например Wamp или Xampp), просмотреть исходный код, а затем скопировать и вставить этот код вместо прямого из вашего редактора.
<?php
недействителен HTML на любом диалекте. Парсер HTML никогда не должен видеть теги <?php
, так как они оцениваются на сервере. Таким образом, правильно, что валидатор жалуется.
<\?php include() ?>
– это тег PHP, который должен быть обработан процессором PHP. Это недействительный тег HTML.