$var = "Hi there"."<br/>"."Welcome to my website"."<br/>;"
echo $var;
是否有一种优雅的方式来处理PHP中的换行符?我不确定其他语言,但是C++有eol
,所以它更具可读性和优雅性。优雅的换行符(PHP)
感谢
$var = "Hi there"."<br/>"."Welcome to my website"."<br/>;"
echo $var;
是否有一种优雅的方式来处理PHP中的换行符?我不确定其他语言,但是C++有eol
,所以它更具可读性和优雅性。优雅的换行符(PHP)
感谢
我最后写的是为我好,到目前为止工作的函数:
// 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');
因为你是输出到浏览器,你必须使用<br/>
。否则有\n
和\r
或二者兼有。
对于换行符,PHP为"\n"
(见double quote strings)和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()
功能,这之前插入。
'nl2br()'实际上不会*将换行符转换为'
'。它的作用是在所有换行符之前插入'
'或'
'来返回给定的字符串。 –
2014-01-03 12:42:46
当我的PHP返回“你好。\ n欢迎。”在一个API调用中,然后我将输出记录在我的应用程序中,它显示为'你好。\ nWelcome.',与\ n完好无损(未转换为换行符)。如何让php插入实际\ n换行符char返回结果? (哦!这是否与结果是'json_encode'-ed有关?男人,这很烦人!好的,我该如何解决*那个* ??)谢谢! – Olie 2015-04-22 15:53:24
@Olie - json_encode应该没关系。仔细检查你是否使用双引号。当\ n在单引号内时,它将被逐字解释。 – azoundria 2016-02-25 11:22:32
那么,与任何语言一样,有几种方法可以做到这一点。
正如前面的应答者提到,“<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);
但总的来讲我想说避免硬编码的HTML在你的PHP echo/print语句中,如果你能保留代码之外的HTML,从长远来看,它使事情变得更加灵活和可维护。
不是非常“优雅”,有点浪费,但如果你真的在乎代码看起来像什么,你可以制作自己的花旗,然后做一个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 />
我所说的第一种方法 “中指风格”,第二个 “goatse风格”。
\ n没有为我工作。 \ n出现在我发送的电子邮件的正文中。这就是我解决这个问题的方法。
str_pad($ input,990); //这样空格就会填充到990的位置。
我已经定义了这一点:
if (PHP_SAPI === 'cli')
{
define("LNBR", PHP_EOL);
}
else
{
define("LNBR", "<BR/>");
}
这种使用LNBR
地方我想用\n
后。
在PHP换行符中,我们可以使用PHP_EOL(LINE结尾)。它以“\ n”形式工作,但它不能在html页面上显示。因为我们必须给HTML断点以打破行。
,所以你可以使用它使用定义
define ("EOL","<br>");
,那么你可以把它叫做
可能重复[如何从字符串中删除换行符(无字符!)?](http://stackoverflow.com/questions/10757671/how-to-remove-line-breaks-no-characters-from字符串) – kenorb 2015-03-03 00:28:06