好吧,我很高兴使用这些\ r,\ n,\ t等东西。因为我在线阅读(php.net),它似乎有效,但我尝试了,这是我的简单代码:
<?php
$str = "My name is jingle \n\r";
$str2 = "I am a boy";
echo $str . $str2;
?>
但结果是“我的名字是叮当我是个男孩”
我将\ r \ n放在var中或与echo相同的行中,结果是相同的。谁知道为什么?
答案 0 :(得分:14)
由于您要输出到浏览器,因此需要使用<br />
,否则请将输出包装在<pre>
标记中。
尝试:
<?php
$str = "My name is jingle <br />";
$str2 = "I am a boy";
echo $str . $str2;
?>
或者:
<?php
$str = "My name is jingle \n\r";
$str2 = "I am a boy";
echo '<pre>' .$str . $str2 . '</pre>';
?>
除非使用<pre>serve
明确说明,否则浏览器不会<pre>
非HTML格式化 - 他们只对HTML感兴趣。
答案 1 :(得分:4)
在您的示例中,您有\n\r
而不是\r\n
- 这很少是一个好主意。
你在哪里看到这个结果?在网络浏览器中?在页面源中,仍在Web浏览器中?您使用什么操作系统?所有这些都有所不同。
不同的操作系统使用不同的行终止符,而HTML / XML并不关心换行,因为源中的换行符只是“空格”(所以你会在单词之间得到一个空格,但不是必然是换行符。)
答案 2 :(得分:1)
你也可以使用nl2br():
echo nl2br($str . $str2);
此功能的作用是将字符串中的换行符替换为<br
&gt;。
此外,您不需要\ n,只需\ n。
答案 3 :(得分:1)
使用 \ n (* NIX)或 \ r \ n (DOS / Windows),\ n \ r是非常罕见的。一旦你修复了它,它应该可以正常工作。
当然,如果你输出的是HTML,除非它在&lt; pre&gt;&lt; / pre&gt;里面,否则换行什么也不做。标签。使用&lt; br /&gt;分隔HTML中的行。如果需要,nl2br()功能可以帮助您将换行符转换为HTML。
另外,如果你使用单引号字符串(你的例子有双引号字符串),\ r和\ n将不起作用。单引号字符串中唯一可用的转义字符是\'和\。
答案 4 :(得分:1)
答案 5 :(得分:0)
您是否在HTML页面中显示结果?如果是这样,HTML会删除像换行符一样的空格。你必须要使用'&lt; br /&gt;'而不是HTML中的'/ r / n'。