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это зависит от сервера и браузера, чтобы интерпретировать теги, что приводит к противоречивым реализациям.

Другие вопросы по тегам