Como solucionar Parse Error: syntax error, unexpected $end

En ocasiones puede darse el caso de que estemos usando una plantilla (theme) de WordPress o un plugin, funcionando perfectamente, y sin embargo al actualizar la versión de PHP o al mover nuestra web a otra compañía de alojamiento web, deje de funcionan y nos muestre el siguiente error:

Parse Error: syntax error, unexpected $end

Es un error bastante común, porque es muy fácil reunir las condiciones para hacerlo saltar.

Basicamente suele deberse a uno de estos dos motivos:

  1. En alguna parte del código falta una llave de cierre (símbolo }, también llamado curly bracket).
  2. El PHP instalado no admite en su configuración el uso de etiquetas PHP en formato abreviado (“<?” en lugar de “<?php” ).

Por fortuna para nosotros ambos casos tienen fácil solución, aunque en el primer supuesto si el código a revista es muy extenso puede ser un auténtico quebradero de cabeza…

Así que como digo, si sospechamos que en nuestro caso el error es el primer supuesto, nos tocará revisar todo el código del archivo php que hace saltar el error (y de cualquiera que llamemos desde este mediante includes), para localizar la definición de clase que nos hemos olvidado de cerrar.

Por lo tanto es un problema que inevitablemente tenemos que solucionar “a mano” y con paciencia, no obstante si usamos un buen editor que nos resalte las distintas partes de código PHP con distintos colores, probablemente nos sea mucho más fácil de localizar el error.

Y en el segundo caso, cuando se trata del uso de las etiquetas abreviadas de PHP (short open tags), lo mejor para solucionar el error y dar máxima compatibilidad a nuestro código es sustituir cualquier etiqueta PHP en formado abreviado por su correspondiente en formato extendido, es decir:

Sustituir <? por <?php

Para hacerlo podemos usar sin problemas la opción “buscar y reemplazar” del editor que usemos, ya que no cabe duda de que cada vez que encuentre el primer formato, la acción a realizar será cambiarlo por el segundo (no puede haber nada en el código que se confunda con esto).

Aunque si hay demasiado código que modificar o como solución de emergencia, siempre que tengas acceso a modificar el archivo php.ini, puedes activar la compatibilidad con las etiquetas abrevidadas con la siguiente línea en tu php.ini (posiblemente ya exista, pero con valor off):

short_open_tag = On

52 pensamientos en “Como solucionar Parse Error: syntax error, unexpected $end

  1. doris

    Me ayudo mucho la nota de esta pagina, tenia rato intentando acomodar el error del $end, y nada hasta que me di cuenta que era un corchete, jejeje…algo tonto pero suele suceder…GRACIAS¡

  2. Cibernetiko

    Soy estudiante y estoy aprendiendo PHP y errores como falta de uan llave son comunes si fueran tan amabels de pasar direcciones para ver manuales se los agradeceria thank you

  3. Rosan

    Hola,este artículo me fue de gran ayuda, espero sigan aportando muchas más ideas y soluciones a estos pequeños problemas con la programación que muchas veces nos hacen perder la cabeza. Gracias!

  4. Pingback: Como solucionar Parse Error: syntax error, unexpected $end | Weas Frikis

  5. DracS11

    Gracias

    Llevaba varios dias intentando descubrir cual era el problema, en una web funcionaba y en otra no.

  6. alejandro

    espeor no salirme del tema, la cosa es que me salta este error en un foro que tengo en phpbb3

    Parse error: syntax error, unexpected ‘}’ in /usr/home/forodecdelu/www/phpBB3/cache/tpl_prosilver_viewtopic_body.html.php on line 170

    pero me fijo en ese archivo en la linea 170 y no hay un solo corchete que habra o que cierre solo en esa linea aparece esto

    asique pense que talvez seria en la linea no del archivo cache que aparece ahi sino del archivo original el “prosilver_viewtopic_body.html” y en la linea 170 justamente no hay nada, me podrias ayudar o dar un consejo de como podria hacer?

    muchas gracias

  7. Samuel Aguilera

    @alejandro: si el cierre de llave que sobra (o la apertura que falta) no está en esa línea, debería estar por encima de la misma.

    también cabría la posibilidad de que el error esté en algún archivo que se incluya desde el que se muestra en el error mediante un include.

    te recomiendo que revises el código con algún editor que resalte en colores el código de php, así te será mucho más fácil encontrar el error, ya estos suelen “adivinar” la pareja de cada llave.

  8. alejandro

    gracias por la ayuda aunque al final un amigo me lo arreglo resulta que habia aal principi esto <?php }} y uno de esos estaba de mas, pero no me daba cuenta porque el dreamweaber no me lo detectaba como error y ya habia visto por ahi un doble } asique pense que era normal y como no se mucho php no me di cuenta.

    Gracias por todo (y) salu2

  9. Oscar

    En Mi Caso lo solucione modificando el Archivo php.ini y habilitando la opcion short open tag

    Gracias por la ayuda!

  10. Pepe Pérez Álvarez

    Muuuuchisimas gracias por esta ayuda. Faltaba el “php” en la etiqueta: ” <?php ” ahora va perfecto!!!

  11. Jeenson

    al parecer es un error muy comun que cometemos al no darnos cuenta de las llaves al cerrar y abrir, muchas gracias por ser tan preciso a la solucion en caso del error que se presenta.

  12. Hector

    Muchas gracias por este post, me salvaste de muchas horas de tratar de encontrar el problema

  13. Quique

    muchas gracias, puse el error en google sin esperarme que hubiera una respuesta tan clara. a estas hora tuve que repasar varias veces el programilla para encontrar el “{” que estaba alreves jeje

  14. george

    A MI….ME SIGUE ARROJANDO EL SIGUIENTE ERROR::: Parse error: parse error, unexpected ‘}’ ES LA LLAVE QUE ESTA CERRANDO UNA FUNCION…..SI ME PUEDES AYUDAR SERIA GENIAL
    GRACIAS

  15. Ceci

    Qué bueno!! Gracias Samuel, llevaba una hora buscando el error y no había manera. Me faltaba cerrar unas comillas!!!! Qué cabeza…!
    Saludos!

  16. Manuel Romero

    Te agradezco en el alma tu comentario, llevo perdido 2 dias haciendo el tonto por falta de no poner php despues del simbolo “?” muchisssssssssssssssssssimas gracias.

  17. Francisco

    Nada, que no hay forma, me estoy dejando los ojos en el monitor contando llaves.

    Me da un error en la última línea de la página y no hay forma de encontrarlo.

  18. Francisco

    ¡¡¡YIIIIIIIIIIIIIIIIIIIIIHHHHAAAAAAAAAAAAA!!!!!
    5 horas, 5 horas y por fin resuelto. ¡¡¡Mil gracias!!!
    Daba el error el la línea 470 y estaba en la 58!

  19. Francisco

    Gracias de nuevo Samuel, acabo de descargar Netbeans. Creo que me ayudará a aprender (y aprehender). Para un novato de mi categoría (de novato, claro) cualquier ayuda le viene de perlas. Insisto, mil gracias.

  20. Manolo

    es increible gente pase unas 5 horas rompiendome la cabeza porke me salia ese error buske en san google la respuesta encontre esta pagina y lei probe y nada no sabi ke pasaba hasta ke vi el comentario de samuel mas arriba ke dice ke descarge una herramienta es esta: http://bits.netbeans.org/netbeans/6.5/community/latest/ml/ descargenla es para probar los php y 100% funciona te dice ke falta o ke no va ahi y gracias a eso lo arregle en mi caso era por la aplicacion HEADER ke sirve para redireccionar la pagina me hacia falta el ; al final hahahaha y un exit; tambien hahaha espero esa aplicacion les ayude descarguenla es gratis

  21. Romeo Diaz

    No se pero a mi me pasa algo rraro con ese error, trabajo con joomla y cada vez k me sale el error sustituyo todos lo index k tiene el servidor por k lo k son originales de la carpeta de joomla y la pagina funciona bien, pero alcabo de dos hora mas o menos vuelve y me tira el mismo error alguien podria explicarme por k eso?

  22. felkipe

    tengo problemas con lo mismo de todos lo e revisado 140002388 veces pero aun no puedo entender q es lo q pasa, porfa les pido q me ayudennnnn … de verdad lo agradeceria muxooooo colocare el codigo por si me pueden ayudar.. thanks

    ***EDITADO POR EL ADMINISTRADOR****

    porfa toy mas complicao q ..la …..

    1. Samuel

      @felkipe: leete los otros comentarios y bájate el editor que recomendé… (netbeans) con eso encontrarás el problema si es de sintaxis del código.

  23. Juan Pablo

    AHHHHHAJAJAJAJJAJAJJAJAJAJA

    No puedo creer la tonteria que era, casi me pongo a descargar la ultima version del xammp,

    MILLL GRACIAS!!!!!!!!!!

  24. Leonel

    jajajajajaja!!! muchas gracias!! me estaba rompiendo la cabeza leyendo un sinfín de foros…. gracias por tu aporte!!

  25. Esteban Moscoso

    Saludos cordiales amigo, he revisado el codigo y en realidad no se que esta mal, ya que lo he usado en otras paginas y funciona, pero esta ultima me sale este error que no lo entiendo muy claro, si me puedes ayudar te agradeceria infinitamente.

    Parse error: syntax error, unexpected T_STRING in /home/www/plastiluz.net/index-6.php on line 1

  26. Cristian Alarcón

    Gracias por este aporte, me sacó de apuro. Tenía el problema con los short tags al querer migrar mi aplicación desde desarrollo a producción y mi codigo era extenso, entonces opté por dejar la opción de ‘short_open_tag = on’ y todo funcionó.

    Saludos.

  27. Samuel

    Bueno, creo que el tema del artículo está más que claro, y los comentarios se están convirtiendo ya en una especie de “foro” para todo tipo de errores, y no es su función. Así que cierro comentarios.

  28. shadow

    Me salio el error pero tambien se debio a una llave no cerrada de un switch tengan cuidado con los corchetes en las operaciones.

Los comentarios están cerrados.