我之前在html页面上textarea中排版提交到mysql后,数据库里并没有<p><br/> 等等这些标签,现在我从数据库里读出来放到fckeditor编辑器里,通过$arr['content'] = trim(str_replace(' ','</p><p style="text-indent:2em">',$arr['content']));这句代码实现了fckeditor里面的分段,但是第一段前面也由于这样替换导致产生一个空段:<p> </p>,求帮忙,这个怎么去掉,我试过$arr['content'] = str_replace('<p> </p>','',$arr['content']);但是没反应,也试过$arr['content'] = preg_replace('/<p> <\/p>/','',$arr['content']);也是没反应,考虑到fckeditor可能会自动在总内容前后加<p>和</p>,所以我就再试了$arr['content'] = str_replace(' </p>','',$arr['content']);和$arr['content'] = preg_replace('/ <\/p>/','',$arr['content']);但是都一样没反应,各位请帮帮忙,怎么处理这问题
$tmpstr = preg_replace('/ <\/p>/','',$arr['content']);
$arr['content'] = $tmpstr;
$arr['content'] = trim(str_replace(' ','</p><p style="text-indent:2em">',$arr['content']));
处理后,只是在开始处多出了“</p>”和最后一个“p”标记未封闭(在html中是允许的)
所以你只需
$arr['content'] = preg_replace("#^</p>#", '', $arr['content']);2、既然原来是经textarea编辑的纯文本文件,那么分段应不止是段首的空格,还有段尾的换行
所以宜写作
$arr['content'] = preg_replace("/ (.+)/im", '<p style="text-indent:2em">$1</p>', $arr['content']);
或直接用php函数nl2br()处理