PHP no reconoce etiquetas ?> y lo toma como HTML
Bienvenidos a VerTutoriales.com, en esta ocasión os traigo como configurar vuestro servidor, o más bien vuestro PHP para que funcione con las etiquetas <? y ?> y no tengas que utilizar <?php y ?>.
En mi caso instalé Xampp Lite, descargado de la página de Xampp, y al probar con una página web en mi LocalHost, se me quedaba la web en blanco sin mostrar nada, extrañado miré el código fuente y realmente estaba funcionando el servidor apache, pero me resultó curioso ver que las llamadas a otros archivos con include, no mostraba el código de estas, sino el include propiamente dicho.
Realicé una prueba típica con el PHPinfo();
<?
PHPinfo();
?>
y seguía sin mostrar nada, por curiosidad le cambié la etiqueta de apertura de PHP <? por <?php quedando así el código:
<?php
PHPinfo();
?>
Y funcionó sin problema, mostrandome toda la información de configuración (que es lo que hace la función PHPinfo).
Buscando una solución, pensé buscar en el php.ini a ver si venía alguna información sobre este detalle y me encontré lo siguiente:
; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It’s been
; recommended for several years that you not use the short tag “short cut” and
; instead to use the full <?php and ?> tag combination. With the wide spread use
; of XML and use of these tags by other languages, the server can become easily
; confused and end up parsing the wrong code in the wrong context. But because
; this short cut has been a feature for such a long time, it’s currently still
; supported for backwards compatibility, but we recommend you don’t use them.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag = Off
Nos aconseja que la etiqueta corta (<? ?>) no esté activa, para no confundir con otros lenguajes. En mi caso, utilizo en mis proyectos la etiqueta corta, y cambiarlo sería un trabajo que no me interesa. Pero PHP ya contemplaba este caso y lo han puesto de una manera configurable, así que con cambiar short_open_tag = On ya lo tendríamos solucionado.
Ya quedaría reiniciar Apache y listo! tendremos nuestro PHP funcionando con <? ?>
Espero que os sirva! Un saludo!
Comments
Hola! Mira yo tengo un problema que nose porque sucede y no entiendo porque no le he encontrado solucion. El problemas es que yo hice una funcion en php y luego la llame dentro de un codigo html. Entonces puse la etiquetas sin embargo cuando voy a ejecutarlo en un navegador no aparece nada y miro el codigo dentro del navegador y sale
.
Me podrias explicar porque pasa eso?. SaludosEntiendo que estás en un servidor y que el fichero ha de ser PHP aunque contenga código HTML.
Si esas dos cosas son así y no funciona, necesito más información sobre el problema.
Un saludo!
para incluir PHP la etiqueta es la siguiente lo que tienes puesto de código es para comentar-
jozher
octubre 30, 2012
-
VideoTutoriales
octubre 30, 2012
-
ruben
diciembre 13, 2012
-
VideoTutoriales
diciembre 13, 2012
-
totikes
octubre 30, 2014
-
videotutoriales
octubre 30, 2014
-
Irene Mamani
marzo 24, 2016
-
Carlos Dk
abril 4, 2016
gracias me sirvio mucho! tengo mas de 40 proyectos y cuando actualice apache y php ya no lo tenia asi… pense que tenia que editar todos los proyectos nuevamente…!
GRACIAS
Nada, yo también iba a volverme loco! hasta que encontré que era problema de la configuración, aunque aconsejan para programar PHP que se ponga con la etiqueta completa, así que hay que seguir las recomendaciones.
Un saludo!
gracias men, excelente info, solucione el inconveniente enseguida, thanks
De nada, nos lleva de cabeza las cosas “sin explicación” y que salga HTML en vez del código PHP es la única pista que tenemos 😉
Un saludo!
Gracias me sirvió muchísimo, me estaba volviendo loco. Era por falta de ese bendito php al principio de la apertura. Eternamente agradecido.
Nada! si existe el artículo es por que también nos pasó a otros jejeje
Sin excusas para seguir programando en PHP 😉
muchas gracias, me salvo jejjeje
Perfecto que te ayudé con tu problema con PHP 🙂