如何在PHP的echo中添加换行符?[关闭]


92

我试图为句子添加换行符,然后添加/n 了以下代码。

echo "Thanks for your email. /n  Your orders details are below:".PHP_EOL;
echo 'Thanks for your email. /n  Your orders details are below:'.PHP_EOL;

由于某些原因,我得到了服务器错误的结果。我如何解决它?


4
使用反斜杠,则此字符不能正确转义\n。但是服务器错误与此尝试无关,请查看apache日志并检查__(arg)文档
Marek Sebera 2012年

1
欢迎使用Stackoverflow。在发布任何问题之前,请遵循您需要确认的询问建议。请记住,只有您想要某些东西,而您自己问自己如何编程,就本质上不符合编程问题。
hakre 2012年

Answers:


255

\n是换行符。/n不是。


使用\n

1.直接回显页面

现在,如果您尝试将字符串回显到页面:

echo  "kings \n garden";

输出将是:

kings garden

你不会得到garden在新的生产线,因为PHP是一种服务器端语言,和您发送输出HTML,你需要在HTML创建换行符。HTML无法理解\n。您需要使用该nl2br()功能。

它的作用是:

返回在所有换行符(\ r \ n,\ n \ r,\ n和\ r)之前插入<br /><br>插入的字符串。

echo  nl2br ("kings \n garden");

输出量

kings
garden

注意确保您在回显/打印\n双引号,否则它将被字面显示为\ n。因为php解释器使用原样的概念解析单引号中的字符串

so "\n" not '\n'

2.写入文本文件

现在,如果您回显文本文件,则可以使用just \n,它将回显到新行,例如:

$myfile = fopen("test.txt", "w+")  ;

$txt = "kings \n garden";
fwrite($myfile, $txt);
fclose($myfile);
 

输出将是:

kings
 garden

1
上面的解释。这有效-示例-> echo“ <html>”。“ \ n”; 或回显“国王花园”。“ \ n”; 在第一行之后添加一个换行符。当我想在回声后添加换行符时,Google带领我来到这里。
MarcoZen

18

使用echo时必须使用br,例如:

echo "Thanks for your email" ."<br>". "Your orders details are below:"

它会正常工作


1
这将
不适

1
当您在php /服务器端语言文件中回显它们时,该方法将
不起作用

13

新行字符为\n,如下所示:

echo __("Thanks for your email.\n<br />\n<br />Your order's details are below:", 'jigoshop');

前缀是什么__(两个下划线)?
彼得·莫滕森

1
@PeterMortensen它在某些PHP框架中的功能是支持国际化。原始帖子使用了它,这就是为什么我将其添加到答案中的原因。
noetix

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.