¿Cuándo uso la constante PHP "PHP_EOL"?
¿Cuándo es una buena idea utilizar?PHP_EOL
?
A veces veo esto en ejemplos de código de PHP. ¿Esto maneja problemas de línea final de DOS/Mac/Unix?
Sí, PHP_EOL
aparentemente se usa para encontrar el carácter de nueva línea de una manera compatible con varias plataformas, por lo que maneja problemas de DOS/Unix.
Tenga en cuenta que PHP_EOL representa el carácter de línea final del sistema actual . Por ejemplo, no encontrará una línea final de Windows cuando se ejecute en un sistema tipo Unix.
De main/php.h
PHP versión 7.1.1 y versión 5.6.30:
#ifdef PHP_WIN32
# include "tsrm_win32.h"
# include "win95nt.h"
# ifdef PHP_EXPORTS
# define PHPAPI __declspec(dllexport)
# else
# define PHPAPI __declspec(dllimport)
# endif
# define PHP_DIR_SEPARATOR '\\'
# define PHP_EOL "\r\n"
#else
# if defined(__GNUC__) && __GNUC__ >= 4
# define PHPAPI __attribute__ ((visibility("default")))
# else
# define PHPAPI
# endif
# define THREAD_LS
# define PHP_DIR_SEPARATOR '/'
# define PHP_EOL "\n"
#endif
Como puede ver, PHP_EOL
puede ser "\r\n"
(en servidores Windows) o "\n"
(en cualquier otra cosa). En versiones de PHP anteriores a 5.4.0RC8, había un tercer valor posible para PHP_EOL
: "\r"
(en servidores MacOSX). Estaba mal y se solucionó el 2012-03-01 con el error 61193 .
Como ya le dijeron otros, puede usarlo PHP_EOL
en cualquier tipo de salida (donde cualquiera de estos valores sea válido, como: HTML, XML, registros...) donde desee nuevas líneas unificadas . Tenga en cuenta que es el servidor el que determina el valor, no el cliente. Sus visitantes de Windows obtendrán el valor de su servidor Unix, lo que a veces les resulta inconveniente.
Solo quería mostrar los posibles valores respaldados PHP_EOL
por las fuentes PHP ya que aún no se han mostrado aquí...
Lo usas PHP_EOL
cuando quieres una nueva línea y quieres que sea multiplataforma.
Esto podría ocurrir cuando está escribiendo archivos en el sistema de archivos (registros, exportaciones, otros).
Puede usarlo si desea que el HTML generado sea legible. Entonces podrías seguir tu <br />
con un PHP_EOL
.
Lo usaría si está ejecutando php como un script desde cron y necesita generar algo y formatearlo para una pantalla.
Puede usarlo si está preparando un correo electrónico para enviar que necesita algún formato.
PHP_EOL (cadena) El símbolo de 'Fin de línea' correcto para esta plataforma. Disponible desde PHP 4.3.10 y PHP 5.0.2
Puede utilizar esta constante cuando lea o escriba archivos de texto en el sistema de archivos del servidor.
Los finales de línea no importan en la mayoría de los casos, ya que la mayoría del software es capaz de manejar archivos de texto independientemente de su origen. Debes ser coherente con tu código.
Si los finales de línea son importantes, especifique explícitamente los finales de línea en lugar de usar la constante. Por ejemplo:
- Los encabezados HTTP deben estar separados por
\r\n
- Los archivos CSV deben usarse
\r\n
como separador de filas