我有一些问题\r\n:
- 换行符取决于浏览器?(不是它们在浏览器中的显示方式,而是如何
<textarea>通过 http 请求将它们发送到 php) - 换行符是系统依赖的?(php运行的地方)
- php会应用一些隐式转换吗?
- mysql会应用一些隐式转换吗?
提前致谢!
我有一些问题\r\n:
<textarea>通过 http 请求将它们发送到 php)提前致谢!
<br>在浏览器中获取换行符\n在 OSX 上,\n在 Unix/Linux 上,\r\n在 Windows 上通常,对于浏览器\r和\n是空白字符,如(tab)' '的 (whitespace )。\t在某些标签(脚本、pre 等)中,它们被视为换行符。在这种情况下,浏览器将理解任何常见的换行符序列 ( \r, \r\n, \n)。
当数据来自 textarea 时,换行符将始终表示为\r\n.
php 文件中的换行符不依赖于它们运行的系统。这取决于用于创建 php 文件的文件编辑器的设置。当您将 php 文件复制到另一个系统时,换行符格式不会改变。
例如,看看这段代码:
print_r("
" === "\r\n");
其结果将取决于用于创建此文件的编辑器的设置。它不依赖于当前系统。
但是,如果您尝试读取系统包含的其他文件(例如文本文件),这些文件很可能会使用系统的常用换行符格式。
不,PHP 和 MySQL 不应用隐式转换。
系统无关的方式是使用 PHP_EOL 常量。
换行不依赖于浏览器,外部带有 CSS white-space:pre你必须执行nl2br() php 函数将换行转换为 BR 标签。
对我来说一个很大的问题是单引号字符串中的'like\nthis'转义序列(如\n)不会被解释。您必须使用双引号"like\nthis"来获得实际的换行符。
<br>是独立于浏览器的,\n应该也是。
不知道关于\r
MySQL不会转换它
您可能对nl2br感兴趣,这会像您描述的那样采用换行符,并用 HTML 换行符 ( <br />) 替换它们。