Я использовал следующий код PHP :
<?php </script> ?>
Ошибок разбора не было, и результат был « ?>
» ( Пример ).
В подобных случаях я получаю ошибку синтаксического анализа:
<?php </div> ?>
Ошибка анализа: синтаксическая ошибка, неожиданная «<» в …
Почему <?php </script> ?>
дает такую же ошибку?
Это должно быть потому, что существуют различные способы запуска блока кода PHP :
<? ... ?>
<? ... ?>
(известный как short_open_tag
)
<?php ... ?>
(стандарт действительно)
<script language="php"> ... </script>
(не рекомендуется)
<% ... %>
(устаревший и удаленный тег ASP-стиля после 5.3.0)
По-видимому, вы можете открыть блок PHP одним способом и закрыть его другим. Не знал этого.
Итак, в вашем коде вы открыли блок, используя <?
но PHP распознает </script>
как ближе. Случилось так:
<?php <----- START PHP </script> <----- END PHP ?> <----- JUST GARBAGE IN THE HTML
В PHP вы можете использовать тег script
чтобы открыть блок PHP.
Таким образом, вы можете использовать
<script language="php"> echo 'hello world'; </script>
Итак, в вашем примере вы смешали обычный открытый тег <?php
с закрывающим тегом </script>
. Поэтому парсер предполагает, что весь текст после тега закрывающего скрипта является обычным HTML
.
Подробнее читайте в разделе Escaping from HTML .