HTML закрывающий тег - PHP его не видит
Возможный дубликат:
Почему не работают самозакрывающиеся теги скрипта?
У меня есть сервер LAMP, недавно установленный на Ubuntu. Что мне интересно, так это следующее.
Этот код в файле test.php работает:
<html>
<head>
<script type='text/javascript'>
</script>
</head>
...
Этот файл, однако, не (показывает данные только после следующего </script>
в коде)
<html>
<head>
<script type='text/javascript'/>
</head>
...
Почему PHP (или HTML) не подтверждает конечный тег во втором случае?
4 ответа
Это не признается, потому что:
<script>
требует закрытия
</script>
а не просто / внутри тега. Некоторые HTML-теги похожи на это.
Вы неправильно закрыли тег сценария. Различные браузеры могут интерпретировать это по-разному. Это особенно верно, так как вы используете тип документа HTML5.
Вам больше повезет с самозакрывающимся тегом скрипта в разных браузерах, если вы используете тип документа XHTML.
Лучший подход для кросс-браузерной совместимости заключается в том, чтобы вообще не использовать самозакрывающиеся теги сценариев в любых типах документов.
Это никак не связано с PHP. Так что не уверен, почему это было в вашем названии. PHP пойдет дальше и отобразит ваш исходный код как есть.
Во втором случае вы закрыли тег script, одновременно открывая его:
<script type='text/javascript'
/
>
Я выделил это выше. Если вы посмотрите на первый бит кода, который вы даете, у вас есть открывающий тег скрипта и корректный закрывающий тег
Как объяснено более подробно в этом ответе: /questions/14252015/kakovyi-vse-dopustimyie-samozakryivayuschiesya-elementyi-v-xhtml-kak-eto-realizovano-v-osnovnyih-brauzerah/14252035#14252035 all html
теги являются действительными самозакрывающимися тегами в xhtml
т.е. application/xhtml+xml
, В простой старой HTML, text/html
это зависит от сервера и браузера, чтобы интерпретировать теги, что приводит к противоречивым реализациям.