$var = "Hi there"."<br/>"."Welcome to my website"."<br/>;"
echo $var;
有没有一种优雅的方式来处理 PHP 中的换行符?我不确定其他语言,但是 C++ 有eol
那么一些更易读和使用更优雅的东西吗?
谢谢
$var = "Hi there"."<br/>"."Welcome to my website"."<br/>;"
echo $var;
有没有一种优雅的方式来处理 PHP 中的换行符?我不确定其他语言,但是 C++ 有eol
那么一些更易读和使用更优雅的东西吗?
谢谢
对于换行符,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
。
我已经定义了这个:
if (PHP_SAPI === 'cli')
{
define( "LNBR", PHP_EOL);
}
else
{
define( "LNBR", "<BR/>");
}
LNBR
在我想用的任何地方使用之后\n
。
在 php 换行符中,我们可以使用 PHP_EOL (END of LINE)。它作为“\n”工作,但它不能显示在 ht ml 页面上。因为我们必须给 HTML 换行符来换行。
所以你可以使用它来定义
define ("EOL","<br>");
那么你可以调用它
我最终编写了一个到目前为止对我很有效的函数:
// 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');
不是很“优雅”而且有点浪费,但如果你真的关心代码的样子,你可以制作自己的精美标志,然后执行 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 />
我称第一种方法为“中指风格”,第二种方法称为“山羊风格”。
因为要输出到浏览器,所以必须使用<br/>
. 否则有\n
and\r
或两者结合。
好吧,与任何语言一样,有几种方法可以做到这一点。
正如之前的回答者所提到的,“<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 保留在代码之外,那么从长远来看,它会使事情变得更加灵活和可维护。
\n 对我不起作用。\n 出现在我发送的电子邮件的正文中。这就是我解决它的方法。
str_pad($输入,990);//以便空格将填充到 990 截止。