$var = "Hi there"."<br/>"."Welcome to my website"."<br/>;"
echo $var;
有没有一种优雅的方法来处理PHP中的换行符?我不确定其他语言,但是C ++有eol
这样的东西更具可读性和优雅性吗?
由于
答案 0 :(得分:44)
对于换行符,PHP为 "\n"
(请参阅double quote strings)和 PHP_EOL
。< / p>
在这里,您使用的是<br />
,它不是PHP换行符:它是一个HTML换行符。
在这里,您可以简化发布的内容(使用HTML换行符):不需要字符串连接:您可以将所有内容放在一个字符串中,如下所示:
$var = "Hi there<br/>Welcome to my website<br/>";
或者,使用PHP换行符:
$var = "Hi there\nWelcome to my website\n";
注意:您可能还需要查看nl2br()
函数,该函数会在<br>
之前插入\n
。
答案 1 :(得分:6)
我已经定义了这个:
if (PHP_SAPI === 'cli')
{
define( "LNBR", PHP_EOL);
}
else
{
define( "LNBR", "<BR/>");
}
使用LNBR
后,无论我想在哪里使用\n
。
答案 2 :(得分:2)
在php换行符中,我们可以使用PHP_EOL(LINE的END)。以#34; \ n&#34; 但它无法在ht ml页面上显示。因为我们必须给HTML打破以打破这条线。
所以你可以使用define
来使用它define ("EOL","<br>");
然后你可以称之为
答案 3 :(得分:2)
到目前为止,我最终编写了一个对我有用的函数:
amazing angular
答案 4 :(得分:1)
不是很“优雅”,有点浪费,但如果你真的关心代码看起来像什么,你可以制作自己的花式旗,然后做一个str_replace。
Example:<br />
$myoutput = "After this sentence there is a line break.<b>.|..</b> Here is a new line.";<br />
$myoutput = str_replace(".|..","<br />",$myoutput);<br />
或
how about:<br />
$myoutput = "After this sentence there is a line break.<b>E(*)3</b> Here is a new line.";<br />
$myoutput = str_replace("E(*)3","<br />",$myoutput);<br />
我称第一种方法是“中指式”,第二种称为“山羊式”。
答案 5 :(得分:0)
由于您要输出到浏览器,因此必须使用<br/>
。否则,\n
和\r
或两者合并。
答案 6 :(得分:0)
嗯,和任何语言一样,有几种方法可以做到。
正如之前的回答者所提到的那样,“<br/>"
不是传统意义上的换行符,它是一个HTML换行符。我不知道内置的PHP常量,但你可以随时定义你的自己的:
// Something like this, but call it whatever you like
const HTML_LINEBREAK = "<br/>";
如果您输出一堆行(例如,来自字符串数组),您可以这样使用它:
// Output an array of strings
$myStrings = Array('Line1','Line2','Line3');
echo implode(HTML_LINEBREAK,$myStrings);
但是,一般来说,我会说避免在PHP echo / print语句中硬编码HTML。如果您可以将HTML保留在代码之外,那么从长远来看,它会使事情变得更加灵活和可维护。
答案 7 :(得分:-1)
\ n对我不起作用。 \ n出现在我发送的电子邮件的正文中..这就是我解决它的方式。
str_pad($ input,990); //这样空格就会填充到990的截止位置。