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

有没有一种优雅的方式来处理 PHP 中的换行符?我不确定其他语言,但是 C++ 有eol那么一些更易读和使用更优雅的东西吗?

谢谢

4

8 回答 8

45

对于换行符,PHP as (参见双引号字符串和."\n" PHP_EOL

在这里,您使用<br />的是 ,它不是 PHP 换行符:它是 HTML 换行符。


在这里,您可以简化您发布的内容(使用 HTML 换行符):不需要字符串连接:您可以将所有内容放在一个字符串中,如下所示:

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

或者,使用 PHP 换行符:

$var = "Hi there\nWelcome to my website\n";

注意:您可能还想看一下nl2br()插入<br>before的函数\n

于 2010-04-28T04:48:08.720 回答
6

我已经定义了这个:

if (PHP_SAPI === 'cli')
{
   define( "LNBR", PHP_EOL);
}
else
{
   define( "LNBR", "<BR/>");
}

LNBR在我想用的任何地方使用之后\n

于 2013-05-15T14:08:06.480 回答
2

在 php 换行符中,我们可以使用 PHP_EOL (END of LINE)。它作为“\n”工作,但它不能显示在 ht ml 页面上。因为我们必须给 HTML 换行符来换行。

所以你可以使用它来定义

define ("EOL","<br>");

那么你可以调用它

于 2015-07-21T03:08:47.493 回答
2

我最终编写了一个到目前为止对我很有效的函数:

// pretty print data
function out($data, $label = NULL) {

  $CLI = (php_sapi_name() === 'cli') ? 'cli' : '';

  $gettype = gettype($data);

  if (isset($label)) {
    if ($CLI) { $label = $label . ': '; }
    else { $label = '<b>'.$label.'</b>: '; }
  }

  if ($gettype == 'string' || $gettype == 'integer' || $gettype == 'double' || $gettype == 'boolean') {
    if ($CLI) { echo $label . $data . "\n"; }
    else { echo $label . $data . "<br/>"; }
  }
  else {
    if ($CLI) { echo $label . print_r($data,1) . "\n"; } 
    else { echo $label . "<pre>".print_r($data,1)."</pre>"; }
  }
}


// Usage

out('Hello world!');

$var = 'Hello Stackoverflow!';
out($var, 'Label');
于 2016-11-07T02:00:36.073 回答
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 />

我称第一种方法为“中指风格”,第二种方法称为“山羊风格”。

于 2010-04-28T13:39:14.823 回答
0

因为要输出到浏览器,所以必须使用<br/>. 否则有\nand\r或两者结合。

于 2010-04-28T04:48:02.883 回答
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 回显/打印语句中对 HTML 进行硬编码。如果您可以将 HTML 保留在代码之外,那么从长远来看,它会使事情变得更加灵活和可维护。

于 2010-04-28T04:58:29.957 回答
-1

\n 对我不起作用。\n 出现在我发送的电子邮件的正文中。这就是我解决它的方法。

str_pad($输入,990);//以便空格将填充到 990 截止。

于 2013-03-05T22:20:34.667 回答