Answers:
只有双引号的字符串解释转义序列\r
,\n
并分别将其解释为“ 0x0D”和“ 0x0A”,因此您需要:
"\r\n"
另一方面,单引号字符串只知道转义序列\\
和\'
。
因此,除非您将单引号引起来的字符串与在其他地方生成的换行符连接起来(例如,使用双引号引起来的字符串"\r\n"
或使用chr
function chr(0x0D).chr(0x0A)
),否则在单引号引起来的字符串中具有换行符的唯一其他方法是使用编辑器按字面值键入它:
$s = 'some text before the line break
some text after';
如果需要某些特定的字符序列(\r\n
例如),请确保检查编辑器的换行设置。
PHP_EOL
改用
PHP中的“ echo”命令将输出作为原始html发送到浏览器,因此即使使用双引号,浏览器也不会将其解析为两行,因为HTML中的换行符毫无意义。这就是为什么您需要使用:
echo [output text]."<br>";
当使用“ echo”时,或者使用fwrite ...
fwrite([output text]."\n");
这将输出HTML换行符代替“ \ n”。
无论平台如何,都使用常量PHP_EOL获取正确的字符。
http://us3.php.net/manual/zh/reserved.constants.php
一个简单的用法示例:
<?php
$data = 'First line' . PHP_EOL .
'Second line' . PHP_EOL .
'Third line';
file_put_contents("filename.txt", $data);
?>
双引号之间的字符串会""
插入,这意味着它们会将转义的字符转换为可打印的字符。
单引号之间的字符串''
是文字,这意味着它们在键入字符时会被完全对待。
您可以将两者放在同一行上:
echo '$clientid $lastname ' . "\r\n";
echo "$clientid $lastname \r\n";
输出:
$clientid $lastname
1 John Doe
echo "$clientid $lastname\r\n"
实际上\r\n
是用于输出的html端。使用这些字符,您可以在html代码中创建换行符以使其更具可读性:
echo "<html>First line \r\n Second line</html>";
将输出:
<html>First line
Second line</html>
查看页面将是:
First line Second line
如果您确实要这样做,则只需用“”引号将单引号固定:
echo "\r\n";
否则,如果您打算拆分文本,则在我们的示例“第一行”和“第二行”中,您必须使用html代码<br />
:
First line<br />Second line
将输出:
First line
Second line
另外,如果将整个脚本替换为:
echo "$clientid $lastname \r\n";
First line Second line
-包括换行符在内的任何空格都将在呈现的输出中压缩为一个空格字符。另外,</br>
除了有效的HTML之外,什么都没有。
w3school提供了这种方式:
echo nl2br("One line.\n Another line.");
通过使用此功能,您可以做到。.我尝试了上述其他方式,但它们对我没有帮助。
nl2br()
函数将换行符转换为<br />
HTML标记。这对于在浏览器页面上创建换行符而不是在文本文件或JavaScript中换行符或在屏幕或控制台上打印可能很有用。
出于某些原因,每条有关PHP中换行符转义的帖子都没有提及仅在单引号字符串中插入换行符就能完全实现您的想法的情况:
前1。
echo 'foo\nbar';
示例1显然不能打印出预期的结果,但是,尽管确实不能用单引号将换行符转义,但是您可以使用一个:
例2。
echo 'foo
bar';
示例2恰好具有所需的行为。不幸的是,插入的换行符取决于操作系统。这通常不是问题,因为Web浏览器/服务器将正确地解释换行符是\ r,\ r \ n还是\ n。
显然,如果您打算通过Web浏览器和其他操作系统以外的其他方式分发文件,则此解决方案并不理想。在这种情况下,您应该会看到其他答案之一。
注意:使用功能丰富的文本编辑器,您应该能够将换行符作为二进制字符插入,表示在与编辑文件不同的操作系统上的换行符。如果其他所有方法均失败,则只需使用十六进制编辑器插入二进制ascii字符即可。
使用PHP nl2br可以在文本字符串中获取换行符。
$ text =“ Manu是个好男孩。(Enter)他会写得很好。
回声nl2br($ text);
结果。
Manu是个好男孩。
他会写得很好。
nl2br
函数将换行符转换为<br />
HTML标记。如果字符串不包含任何换行符,则此函数将不执行任何操作!此外,问题不在于在HTML中的段落中换行。关于换行符!
我也在单引号和双引号中尝试了这种组合。但是没有一个奏效。而不是在双引号中使用\n
更好的用法<br/>
。像这样..
$variable = "and";
echo "part 1 $variable part 2<br/>";
echo "part 1 ".$variable." part 2";
将chr(13)用于回车,并将chr(10)用于新行
echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo chr (13). chr (10);
什么都没有为我工作。
PHP_EOL
. "\r\n";
$NEWLINE_RE = '/(\r\n)|\r|\n/'; // take care of all possible newline-encodings in input file
$var = preg_replace($NEWLINE_RE,'', $var);
为我工作:
$admin_email_Body = $admin_mail_body .'<br>' ."\r\n";
$admin_email_Body .= 'This is line 2 <br>' ."\r\n";
$admin_email_Body .= 'This is line 3 <br>' ."\r\n";
You Can Try This.
<?php
$content = str_replace(PHP_EOL, "<br>", $your_content);
?>
<p><?php echo($content); ?></p>