tienen significado senos porque pechos pecho mujeres mujer masculinos masculino los las hombres hombre femeninos femenino existe entre diferencias diferencia contra climatico cientificos cambio calentamiento busto argumentos php batch-file lint

php - significado - ¿Por qué no me dice el número de línea y la naturaleza del error de análisis?



pechos femeninos y masculinos diferencias (3)

Llamaré a php lint desde un archivo por lotes de Windows, así:

@echo off for %%f in (*.php) do php -l %%f

Cuando un archivo contiene un error de sintaxis, solo Errors parsing xxx.php . ¿Hay alguna forma de que me diga cuál es la naturaleza del error y en qué línea está? ¿Quizás otro cambio?


¿Qué versión de PHP estás usando? A partir de 5.3, los números de línea se incluyen en la salida de pelusa:

[charles@server ~]$ cat syntax_error.php <?php echo "This line is legal/n"; echo I''m a syntax error!/n; echo "This line never gets reached./n" [charles@server ~]$ php -l syntax_error.php PHP Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting '','' or '';'' in syntax_error.php on line 3 Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting '','' or '';'' in syntax_error.php on line 3 Errors parsing syntax_error.php [charles@server ~]$

El error aparece dos veces porque va a stdout y stderr. Ha pasado mucho tiempo desde que trabajé con archivos por lotes en Windows, ¿quizás la versión que está utilizando solo emite el error en stderr y el archivo por lotes descarta la salida de stderr?


Acepté la respuesta de Charles, pero pensé que debería agregar un par de detalles, ya que tuve que buscar más para averiguar qué hacer.

El problema era que no estaba viendo la salida de stderr , así que comencé agregando 2>&1 al final de los comandos relevantes. Esto todavía no ayudaba, así que me di cuenta de que el problema era que PHP no estaba sacando cosas de stderr en absoluto. Fui al directorio de instalación de PHP y busqué en php.ini y encontré que de forma predeterminada, display_errors está Off . Cambió a On y ahora funciona.


Si viniste aquí por "Errores al analizar foo.php" sin ningún detalle y te perdiste el comentario de Charles, es posible que estés buscando esto:

php -d display_errors=1 -l foo.php

Gracias Charles!

Ejemplo:

[somewhere]# php -l submit.php Errors parsing submit.php [somewhere]# php -d display_errors=1 -l submit.php Parse error: syntax error, unexpected T_VARIABLE in submit.php on line 226 Errors parsing submit.php