Skip to content

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

Published inSoftware y tecnologíaWordPress

52 Comments

  1. doris 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 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. skate1010 skate1010

    Gracias es una importante aportacion a veces un error pequeño te consume bastante tiempo .

    Saludos

  4. Rosan 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!

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

    […] Samuel Aguilera de samuelaguilera.com tenia un post hecho para todos quienes pasemos por este ‘problemita’. […]

  6. Ruben "El AprendiZ" Ruben "El AprendiZ"

    Gracias!!!!!!!!!!!

    Y lo digo así porque estaba hasta la coronilla. Todo un día revisando código y demases.

    Un Millón de Gracias y NO Te Mueras nunca!!!!!!

  7. Anya Anya

    MUCHISISISISISMAS GRACIAS!!!!!
    ME SALVASTE !!!! ;)
    MUAAAAAAAAAAAAAAAAAAAAAAAAA

  8. Mario Mario

    asu muchas graciass

  9. noel noel

    gracias……chuchas…estaba loco…

  10. neo neo

    La verdad es que a mi si me ayudo esto, faltaba una “}” en el codigo.

    Gracias!

  11. Novato aprendiendo Novato aprendiendo

    xa gracias, no podia entrar a la administracion de usuarios

  12. Alushe Alushe

    Gracias por la solucion

  13. DrHouse DrHouse

    Gracias me ayudo mil este post .. jejeje saludos

  14. usuario1 usuario1

    Me salvaste el dia, gracias.

  15. DracS11 DracS11

    Gracias

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

  16. Cynthia Cynthia

    Muchas gracias! :-)

  17. alejandro 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 /ruta/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

  18. Samuel Aguilera 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.

  19. alejandro 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

  20. Paolo Paolo

    Gracias… :D

  21. Karlox Karlox

    Gracias por el aporte, solucione un problema de dias..

  22. Oscar Oscar

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

    Gracias por la ayuda!

  23. Pepe Pérez Álvarez Pepe Pérez Álvarez

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

  24. Julio Berrios Julio Berrios

    Muchas Gracias.
    El error tambien se produce por no estar emparejada alguna comilla (“)

    Atte

  25. Jeenson 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.

  26. Hector Hector

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

  27. Ricardo Núñez Ricardo Núñez

    !Excelente! Ahora a jugar con AdoDB…

  28. Quique 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

  29. george 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

    • Samuel Aguilera Samuel Aguilera

      @george: repasa bien TODO. si lo has hecho mil veces ya, hazlo otras mil. para este error no hay más misterio que el ya explicado.

  30. Ceci Ceci

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

  31. Marisol Marisol

    Gracias, Fué de Gran Ayuda, si se soluciono el problema que tenia.

  32. Manuel Romero 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.

  33. Francisco 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.

    • Samuel Samuel

      @Francisco: Descárgate Netbeans para PHP (pulsa en el download de la columna de php), te ayudará a localizar el error.

  34. Francisco 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!

  35. Francisco 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.

  36. samuel samuel

    gracielas me faltaba una llave de un if jejejjje

  37. anRoswell anRoswell

    Amigo muchas gracias por tu ayuda me sirvio muchisimo ;-)

  38. Carlos Carlos

    Gracias casi me rompo la cabeza con ese errorcito, un buen aporte para nosotros los novatos

  39. Wilder Wilder

    Bueno me uno a los agradecmientos ya que este fue de gran ayuda

  40. Manolo 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

  41. Romeo Diaz 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?

    • Samuel Samuel

      @Romeo: Comenta el problema con el servicio de soporte de tu hosting.

  42. felkipe 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 …..

    • Samuel 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.

  43. Juan Pablo Juan Pablo

    AHHHHHAJAJAJAJJAJAJJAJAJAJA

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

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

  44. Leonel Leonel

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

  45. Esteban Moscoso 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

  46. Cristian Alarcón 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.

  47. Samuel 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.

  48. shadow 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.

Comments are closed.