¿Cuándo uso la constante PHP "PHP_EOL"?

Resuelto Christian Oudard asked hace 54 años • 19 respuestas

¿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?

Christian Oudard avatar Jan 01 '70 08:01 Christian Oudard
Aceptado

Sí, PHP_EOLaparentemente 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.

Adam Bellaire avatar Sep 24 '2008 17:09 Adam Bellaire

De main/php.hPHP 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_EOLpuede 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_EOLen 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_EOLpor las fuentes PHP ya que aún no se han mostrado aquí...

AlexV avatar Jul 12 '2011 15:07 AlexV

Lo usas PHP_EOLcuando 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.

Zoredache avatar Sep 24 '2008 19:09 Zoredache

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\ncomo separador de filas
Salman A avatar Jan 07 '2013 13:01 Salman A