日期:2014-05-17  浏览次数:20503 次

数据库的文本,怎么能改为html代码?
这段代码,是可以把文本里的[img]
读成html。可以看到图,

但是,换行
<br>

却无法转换,直接就显示文本。
<br>

请问该怎么修改,才能让数据库里的换行展示换行,而不是文本。

<?php
$str=$content;

   $count=preg_match_all('/\[img\](.*?)\[\/img\]/i',$str,$match, PREG_SET_ORDER);
   if($count>0){
   for($i=0;$i<$count;$i++){
   
  // echo $match[$i][0].",".$match[$i][1]."<br>";
   $str1="<br><img src=".$match[$i][1]." width=500 ><br>";
   //echo $str1.$match[$i][0];
   $str = str_replace($match[$i][0], $str1, $str);
   
   }
   $bodytag=$str;
   } else {
   $bodytag=$str;
   }
 
$count=preg_match_all('/\[url\ssrc=(((ht){1}tp://)[-a-zA-Z0-9@:%_/+.~#?&//=]+)\](.*?)\[\/url\]/i',$bodytag,$match, PREG_SET_ORDER);

if($count>0){
for($i=0;$i<count($match);$i++){
   $str2="<a href=".$match[$i][1]." target=_blank>".$match[$i][4]."</a>";
   $bodytag = str_replace($match[$i][0], $str2, $bodytag);
}
 $bodytag1 =$bodytag;
} else {
    $bodytag1 =$bodytag;
  }
echo $bodytag1;
//echo $content;
?>

------解决方案--------------------
如果是纯文字,显示时用nl2br就行
图文混排或者带标签格式就要慎重,避免<br>插入到某个标签内部,可能需要一个相对精确的正则
------解决方案--------------------
echo nl2br($bodytag1);