我什么时候使用PHP常量“PHP_EOL”?

2022-08-30 05:55:36

什么时候使用PHP_EOL是个好主意?

我有时会在PHP的代码示例中看到这一点。这是否处理 DOS/Mac/Unix 端点问题?


答案 1

是的,表面上用于以跨平台兼容的方式查找换行符,因此它处理DOS / Unix问题。PHP_EOL

请注意,PHP_EOL表示当前系统的结束线字符。例如,在类unix系统上执行时,它不会找到Windows尾线。


答案 2

从 PHP 版本 7.1.1 和版本 5.6.30 开始:main/php.h

#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

如您所见,可以是(在Windows服务器上)或(在其他任何东西上)。在 5.4.0RC8 之前的 PHP 版本上,有第三个值可用于 :(在 MacOSX 服务器上)。它是错误的,并已在2012-03-01上修复,错误为61193PHP_EOL"\r\n""\n"PHP_EOL"\r"

正如其他人已经告诉您的那样,您可以在任何类型的输出(其中任何一个值都有效 - 例如:HTML,XML,logs...)中使用您想要统一的换行符。请记住,确定值的是服务器,而不是客户端。您的Windows访问者将从您的Unix服务器获得价值,这有时对他们来说很不方便。PHP_EOL

我只是想显示PHP源代码支持的可能值,因为它尚未在此处显示...PHP_EOL


推荐