我尝试使用PHP explod()内置函数来浏览存储在mysql数据库中的文本数据 这是我尝试过的PHP代码示例:
// Get mysql database data(with \n).
$str_in =
'one
two
three
fore
five
six
';
// Convert \n into <br>.
$str = nl2br($str_in);
// Explode $str and wrapped into <p> tags.
$str_exploded = explode("<br><br>",$str);
foreach($str_exploded as $sub_str) {
echo '<p>'.$sub_str.'</p>';
}
然后我得到了这个输出。
<p>one<br>
two<br>
three<br>
<br>
fore<br>
five<br>
<br>
six<br>
</p>
但这不是我所期待的。我想要这样的事情。
<p>one<br>
two<br>
three</p>
<p>fore<br>
five</p>
<p>six</p>
我怎么能做到这一点?感谢。
答案 0 :(得分:0)
您错误地假定,nl2br
函数用<br>
替换“\ n”。实际上,它会在<br />
之前插入\n
。因此,\n\n
变为<br />\n<br />\n
。你的
explode("<br><br>",$str)
无法按预期工作。
为了解决这个问题,我使用\n\n
爆炸:
<?php
$str_in =
'one
two
three
fore
five
six
';
$str_exploded = preg_split("/(:?\r?\n){2}/",$str_in);
$n = count($str_exploded);
for ($i = 0; $i < $n; ++$i)
{
// Convert \n into <br>.
$str_exploded[$i] = nl2br($str_exploded[$i]);
echo '<p>'.$str_exploded[$i]."</p>";
if ($i !== $n - 1)
{
print "\n\n";
}
}
<p>one<br />
two<br />
three</p>
<p>fore<br />
five</p>
<p>six<br />
</p>
答案 1 :(得分:0)
你要做的就是删除一个当它唯一的东西。
Strreplace应该使用参数&#34; \ n
&#34;并取代&#34; \ n&#34;