这段代码,是可以把文本里的[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;
?>
读成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;
?>
图文混排或者带标签格式就要慎重,避免<br>插入到某个标签内部,可能需要一个相对精确的正则