Почему W3C Validator не принимает теги <? Php include () в HTML5? - PullRequest
2 голосов
/ 25 августа 2011

Я пытался проверить простую страницу 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"); ?>

Ответы [ 3 ]

12 голосов
/ 25 августа 2011

Эти теги PHP не должны отображаться в вашей разметке. Они будут записаны в вашем коде, но только ваш веб-сервер должен их видеть - на странице, созданной вашим сервером, эти теги не будут видны.

Полагаю, вы копируете свой источник и вставляете его в валидатор? Вместо этого попробуйте просмотреть страницу в браузере (при условии, что вы используете локальный веб-сервер, например Wamp или Xampp), просмотрите исходный код, а затем скопируйте и вставьте этот код, а не прямо из редактора.

3 голосов
/ 25 августа 2011

<?php не является допустимым HTML на любом диалекте. Анализатор HTML никогда не должен видеть теги <?php, так как они оцениваются на сервере. Таким образом, корректно, что валидатор жалуется.

1 голос
/ 25 августа 2011

<\?php include() ?> - это тег PHP, который должен отображаться процессором PHP.Это недопустимый тег HTML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...