Uruchomiłem następujący kod PHP :
<?php
</script>
?>
Nie wystąpiły błędy analizowania, a wynikiem było „ ?>
” ( przykład ).
W podobnych przypadkach pojawia się błąd analizy:
<?php
</div>
?>
Błąd analizy: błąd składni, nieoczekiwany „<” w ...
Dlaczego nie <?php </script> ?>
podaje tego samego błędu?
php
syntax
parse-error
Irfan
źródło
źródło
Odpowiedzi:
Dzieje się tak, ponieważ istnieją różne sposoby uruchamiania bloku kodu PHP :
<? ... ?>
(znany jakoshort_open_tag
)<?php ... ?>
(standard naprawdę)<script language="php"> ... </script>
(Niepolecane)<% ... %>
(przestarzałe i usunięte znaczniki w stylu ASP po 5.3.0)Najwyraźniej możesz otworzyć blok PHP w jedną stronę, a zamknąć w drugą. Nie wiedziałem tego.
Więc w twoim kodzie otworzyłeś blok używając,
<?
ale PHP rozpoznaje</script>
jako bliżej. Stało się:źródło
<script language="php">
nie jest zalecane.short_open_tag
dyrektywie. W PHP 5.4<?=
skrót<?php echo
nie wymaga jużshort_open_tag
. Przejście między systemami, które<?=
były dostępne i niedostępne, zawsze mnie frustrowało. php.net/manual/en/ini.core.php#ini.short-open-tag<?php ... ?>
również: php.net/manual/en/language.basic-syntax.phpmode.phpW PHP możesz użyć
script
znacznika, aby otworzyć blok PHP.Więc możesz użyć
Więc w swoim przykładzie zostały zmieszane normalny otwarty tag
<?php
z tagiem zamykającym</script>
. Parser zakłada więc, że cały tekst po tagu skryptu zamykającego jest normalnyHTML
.Czytaj więcej w Ucieczka z HTML .
źródło