目前,我正在使用以下代码:
preg_replace('/\s+/m','<br>',$var);
用<br>
元素替换行结尾。我想要的一个例子:
Text Text Text
Text Text Text
Text Text Text
应该最终成为:
Text Text Text<br>Text Text Text<br><br>Text Text Text
这可以满足它的需要,但我想知道什么时候有一个双重空间并添加两个分隔线,而不是一个分隔线。如何保留单个断裂线的当前效果?
我不太熟悉preg_replace()如何工作,我实际上必须在这里得到帮助才能获得该功能。我看了一下PHP手册,这个功能看起来有点令人困惑。有谁知道我可以了解它如何正常工作的网站?
答案 0 :(得分:1)
你可以通过将 g - 修饰符添加到preg_replace来实现这一点,如下所示:
preg_replace('/\s+/mg','<br>',$var);
preg代表Perl正则表达式 - 您将在此搜索字符串中找到更多示例,例如: this site或this site(我实际上不确定, m -modifier的作用是什么?)
或者,您可以使用简单的$var = str_replace(' ', '<br', $var)
。我不确定哪一个更快。
修改:如果您想用html-breaks替换换行符,请使用nl2br()
函数。
答案 1 :(得分:1)
php有一个内置的功能
echo nl2br( $var );
这是\ n,\ r \ n,\ r和\ n \ r
答案 2 :(得分:1)
您可以使用<br />
preg_replace
$var = str_replace(array("\r\n", "\n"), '<br />', $var);
无需使用正则表达式,但如果您真的需要,可以使用{{3}}来达到同样的效果:
$var = preg_replace("/\r?\n/", '<br />', $var);
答案 3 :(得分:0)
看看这个。不确定你是否要求,但至少它对我有用
$input = <<<DOC
Test Test Test
Test Test Test
Test Test Test
DOC;
$output = preg_replace("/$/m","<br/>",$input);
echo $output;
Hovewer,nl2br
也是如此。
答案 4 :(得分:0)
这是你想要做的吗?
<?php
$text = <<<EndText
Text Text Text
Text Text Text
Text Text Text
EndText;
$text = str_replace("\r", "", $text);
$text = str_replace("\n", "<br>", $text);
echo $text;
?>