353 votos

¿Cuándo puedo utilizar la constante de PHP "PHP_EOL"?

Cuando es una buena idea utilizar PHP_EOL? A veces veo esto en los ejemplos de código de PHP. ¿Este manejar DOS/Mac/Unix endline problemas? La mayoría de los PHP escribo es para la generación de HTML, y utilizo <br/> en lugar de la real saltos de línea, por lo que no ha utilizado esta constante antes.

351voto

Adam Bellaire Puntos 42797

Sí, PHP_EOL es ostensiblemente utiliza para encontrar el carácter de nueva línea en una multiplataforma-compatible camino, por lo que se maneja de DOS/Mac/Unix problemas.

88voto

AlexV Puntos 8604

A partir de main/php.h de versión de PHP 5.5.6:

#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 se puede ver PHP_EOL puede "\r\n" (en servidores Windows) o "\n" (sobre cualquier cosa). En versiones de PHP anteriores 5.4.0RC8, hubo un tercer valor posible para PHP_EOL: "\r" (en MacOSX servidores). Estaba mal y ha sido un fijo en 2012-03-01 con error 61193.

Como ya dije, puede utilizar PHP_EOL en cualquier tipo de salida (donde estos valores son válidos, como por ejemplo: HTML, XML, registros...) si desea unificado de líneas nuevas (y debería quiero esto en mi opinión).

Yo sólo quería mostrar a los posibles valores de PHP_EOL respaldado por el PHP fuentes, ya que no se ha demostrado aún aquí...

81voto

Zoredache Puntos 8873

Utilice PHP_EOL cuando se desea una nueva línea, y desea ser multi-plataforma.

Esto podría ser cuando se escritura de archivos en el sistema de archivos (registros, las exportaciones, otros).

Usted podría utilizar si usted quiere que su código HTML generado para ser legible. Así que usted puede seguir su <br> con un PHP_EOL.

Debería utilizar si se ejecuta php como un script de cron y que se necesita para la salida de algo y tiene que estar formado por una pantalla.

Usted podría utilizar si en la construcción de anemail para enviar que necesitaba un poco de formato.

19voto

Salman A Puntos 60620

PHP_EOL (cadena) La correcta 'al Final De la Línea' símbolo para esta plataforma. Disponible a partir de PHP 4.3.10 y PHP 5.0.2

Puede utilizar esta constante al leer o escribir archivos de texto en el servidor del sistema de ficheros.

Los finales de línea no importa que en la mayoría de los casos como la mayoría de los programas son capaces de manejo de archivos de texto, independientemente de su origen. Usted debe ser consistente con el código.

Si los finales de línea asunto, especificar explícitamente los finales de línea en lugar de utilizar la constante. Por ejemplo:

  • Los encabezados HTTP , debe estar separado por \r\n
  • Los archivos CSV debe utilizar \r\n como separador de filas

7voto

Edward Z. Yang Puntos 13760

La definición de PHP_EOL es que le da el carácter de nueva línea del sistema operativo en el que estás trabajando.

En la práctica, casi no es necesario esto. Considere la posibilidad de un par de casos:

  • Cuando usted está saliendo a la web, en realidad no hay ningún convenio, excepto que debe ser consistente. Puesto que la mayoría de los servidores son Unixy, usted querrá usar "\n" de todos modos.

  • Si usted es la salida a un archivo, PHP_EOL puede parecer una buena idea. Sin embargo, usted puede conseguir un efecto similar por tener un literal nueva línea dentro de su archivo, y esto le ayudará si usted está tratando de ejecutar algunos CRLF formato de los archivos en Unix sin clobbering existente saltos de línea (como un chico con un sistema de arranque dual, puedo decir que prefiero el último comportamiento)

PHP_EOL es tan ridículamente largas que realmente no vale la pena usarlo.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X