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

3zz*_*zzy 26 php line-breaks

$var = "Hi there"."<br/>"."Welcome to my website"."<br/>;"
echo $var;
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Pas*_*TIN 44

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

在这里,您正在使用<br />,这不是PHP换行符:它是一个HTML换行符.


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

$var = "Hi there<br/>Welcome to my website<br/>";
Run Code Online (Sandbox Code Playgroud)

或者,使用PHP换行符:

$var = "Hi there\nWelcome to my website\n";
Run Code Online (Sandbox Code Playgroud)

注意:您可能还想查看之前nl2br()插入的函数.<br>\n

  • `nl2br()`实际上并不*将换行符转换为`<br/>`.它的作用是返回给定的字符串,在所有换行符之前插入`<br />`或```. (2认同)
  • @Olie - json_encode 应该不重要。仔细检查您是否使用了双引号。当 \n 位于单引号内时,它将按字面解释。 (2认同)

The*_*yom 6

我已经定义了这个:

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

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


3zz*_*zzy 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');
Run Code Online (Sandbox Code Playgroud)