优秀的换行解决方案(PHP)

时间:2010-04-28 04:44:34

标签: php line-breaks

$var = "Hi there"."<br/>"."Welcome to my website"."<br/>;"
echo $var;

有没有一种优雅的方法来处理PHP中的换行符?我不确定其他语言,但是C ++有eol这样的东西更具可读性和优雅性吗?

由于

8 个答案:

答案 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(".|..","&lt;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","&lt;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的截止位置。