该常数
PHP_EOL通常应用于平台特定的输出。
- 实际上主要用于 文件输出 。
- 实际上,除非在二进制模式下使用,否则文件功能已经在Windows系统上转换了
n
←→ 。rn``fopen(…, "wb")
对于 文件输入, 您应该首选
n。虽然大多数网络协议(HTTP)应该使用
rn,但不能保证。
- 因此,最好分手
n
并r
手动删除所有可选的选项:$lines = array_map("rtrim", explode("n", $content));
或立即使用该
file(…,FILE_IGNORE_NEW_LINES)功能,将EOL处理留给PHP或auto_detect_line_endings进行。
- 一个更健壮和更简洁的选择是使用
preg_split()
和一个正则表达式:$lines = preg_split("/R/", $content);
该
R占位符检测的任何组合
r+
n。这样将是最安全的,甚至适用于Classic MacOS
≤9文本文件(在实践中很少见)。
强制性的微优化注意事项: 尽管regex有成本,但它却比PHP中的手动循环和字符串后处理通常更快。
并且由于其平台模糊性,有一些经典示例应 避免
:
PHP_EOL
- 手动生成网络协议有效负载,例如HTTP over
fsockopen()
。 - 对于
mail()
和MIME构造(实际上,无论如何您都不应该单调乏味地自己做)。 - 文件输出, 如果 您要 始终不间断地 只写Unix
n
换行符。
因此,
"rn"在不写入文件时,而是在需要 网络换行符 的特定上下文中准备数据时,请使用文字组合。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)