我对\r\n
一些问题:php和newlines:我需要知道什么?
- 换行符是依赖于浏览器? (不是如何在浏览器中显示它们,但
<textarea>
如何通过http请求将它们发送到php) - 换行符是否依赖于系统? (其中php运行)
- 将PHP应用一些隐式转换?
- 将mysql应用一些隐式转换?
在此先感谢!
我对\r\n
一些问题:php和newlines:我需要知道什么?
<textarea>
如何通过http请求将它们发送到php)在此先感谢!
<br>
得到一个换行符在浏览器\n
在OSX,\n
在Unix/Linux,\r\n
在WindowsOSX上的'\ r'并非如此。它在OSX之前的Mac OS上是'\ r',但是OSX是基于BSD的并且使用'\ n'。流行的误解。 – DaveRandom
这个矿并不是一个棘手的问题,但是:我在windows和mysql上开发我只有'\ n'而不是'\ r \ n',正如你所说的......那么这里发生了什么? (我编辑了我的问题btw) – skyline26
@toPeerOrNotToPeer几乎所有基于ASCII的操作系统上的所有程序都可以透明地处理'\ n'或'\ r \ n'。对'\ r'的支持不是*宽*,但对于常用应用程序通常是可以的。一些值得注意的例外:Windoze上的notepad.exe和* nix上的一些vi/vim实现(例如较老的busybox二进制文件) – DaveRandom
<br>
是独立于浏览器,\n
太。
不知道\r
MySQL不会将它转换
系统独立的方式是使用PHP_EOL常量。
新行不依赖于浏览器,使用CSS外部标签white-space:pre必须执行nl2br() php函数将换行符转换为BR标签。
一般来说,对于浏览器\r
和\n
是空格字符,如\t
(标签)的' '
(空格)。在一些标签(脚本,前等)中,它们被视为换行符号。在这种情况下,浏览器将理解任何常见的换行符(\r
,\r\n
,\n
)。
当数据来自textarea时,换行符将always表示为\r\n
。
php文件中的换行符不依赖于它们运行的系统。这取决于用于创建php文件的文件编辑器的设置。当你将一个php文件复制到另一个系统时,换行符的格式不会改变。
例如,看一下这个代码:
print_r("
" === "\r\n");
其结果将取决于用于创建该文件的编辑器的设置。它不依赖于当前的系统。
但是,如果您想要读取系统中包含的其他文件(例如文本文件),这些文件很可能会使用系统的常用换行符格式。
不,PHP和MySQL不应用隐式转换。
'它的结果将取决于用于创建该文件的编辑器的设置。它不依赖于当前的系统。 - 真实的,但只能达到一个点。如果文件在某个时候以FTP ASCII模式('TYPE A')传输到另一台服务器,则行为可能会发生变化。但+1 – DaveRandom
好问题。我想补充一句:什么是典型的“陷阱”? – Smandoli