Estaba ejecutando el siguiente código PHP :
<?php
</script>
?>
No hubo errores de análisis y el resultado fue " ?>
" ( ejemplo ).
En casos similares recibo un error de análisis:
<?php
</div>
?>
Error de análisis: error de sintaxis, '<' inesperado en ...
¿Por qué no <?php </script> ?>
da el mismo error?
php
syntax
parse-error
Irfan
fuente
fuente
Respuestas:
Esto debe ser porque hay varias formas de iniciar un bloque de código PHP :
<? ... ?>
(conocido comoshort_open_tag
)<?php ... ?>
(el estándar realmente)<script language="php"> ... </script>
(no recomendado)<% ... %>
(etiqueta de estilo ASP obsoleta y eliminada después de 5.3.0)Aparentemente, puede abrir un bloque PHP de una manera y cerrarlo de la otra. No lo sabia.
Entonces, en su código, abrió el bloque usando
<?
pero PHP reconoce</script>
como el cerrador. Lo que paso fue:fuente
<script language="php">
no se recomienda su uso.short_open_tag
directiva. En PHP 5.4<?=
corto para<?php echo
ya no requiere elshort_open_tag
. Ir entre sistemas donde<?=
estaba disponible y no disponible siempre me frustraba. php.net/manual/en/ini.core.php#ini.short-open-tag<?php ... ?>
: php.net/manual/en/language.basic-syntax.phpmode.phpEn PHP, puede usar la
script
etiqueta para abrir un bloque PHP.Entonces puedes usar
Así que en su ejemplo que haya mezclado la etiqueta abierta normal,
<?php
con la etiqueta de cierre,</script>
. Por lo tanto, el analizador supone que todo el texto después de la etiqueta del script de cierre es normalHTML
.Lea más en Escaping from HTML .
fuente