Является ли php REQUIRE действительным в заголовке мета-содержимого? - PullRequest
0 голосов
/ 04 ноября 2018

Я понимаю, что включение <?php require("example.php"); ?> в html-документ приводит к включению файла example.php ("в виде буквенной строки") в этот момент в документе. * например 1003 *

<!DOCTYPE html>
    <head> .. </head>
    <body>
      <?php 
         require("example.php"); 
       ?>
    </body>
</html>

Это работает в теле html-документа, но допустимо ли использовать ту же технику в мета-выражении в заголовке, например, <meta name="description" content="<?php require("example.php");?>">? Такой документ отображается нормально, но работает ли такой метатег?

1 Ответ

0 голосов
/ 04 ноября 2018

" ... включая <?php require("example.php"); ?> внутри html-документа приводит к включению файла example.php (" в виде буквенной строки ") в этот момент ... "

Сама основа вашего предположения неверна. Файлы с расширениями .html обычно не анализируются php «компилятором» (если только вы специально не заставляете сервер делать это, что является относительно продвинутой техникой для существования этого вопроса). Они даже не передаются во время выполнения php, поскольку ваш сервер доставляет их прямо из коробки, полностью обойдя поток выполнения php.

Поскольку они не анализируются, любые теги php внутри этих файлов являются просто символьной строкой. Таким образом, требование require ничего не значит и означает, что «требуемый файл» не включен ни в виде буквенной строки, ни в виде живого кода.

О том, что он действителен в метатеге, теперь, так как они (теги php) не анализируются, сервер выведет эту строку в точности так, как есть, поэтому валидность придется определять с точки зрения спецификации html (поскольку php не играет никакой роли).

А с точки зрения HTML браузер на стороне клиента попытается интерпретировать этот тег php и, скорее всего, перепутает его с тегом xml (<?xml), который, между прочим, недопустим в любом месте внутри HTML документ, ни в голове, ни в мета, ни где-либо еще.

...