在保存到数据库之前,我需要
为此我做了以下
$content = preg_replace('/<[^>]+>/', "", $content);
$content = preg_replace('/\n/', "NewLine", $content);it's for not to lose them when deleting more then one white space character
$content = preg_replace('/(\ \;){1,}/', " ", $content);
$content = preg_replace('/[\s]{2,}/', " ", $content);
并且我必须删除多个“NewLine”字样。
在前两点后我得到这种格式的文本 -
NewLineWordOfText
NewLine
NewLine
NewLine NewLine WordOfText "WordOfText WordOfText" WordOfText NewLine"WordOfText
...
如何从这样的内容中传递更多的新内容?
由于
答案 0 :(得分:3)
首先,虽然HTML is not regular使用正则表达式解析它是个坏主意,但PHP有一个函数可以为你删除标记:strip_tags
在保留换行符的同时挤压空格:
$content = preg_replace('/[^\n\S]{2,}/', " ", $content);
$content = preg_replace('/\n{2,}/', "\n", $content);
第一行会将除\n
以外的所有空格([^\n\S]
表示所有不是\n
且不是非空白字符的字符)压缩到一个空格中。第二个会将多个换行符压缩到一个换行符中。
答案 1 :(得分:0)
为什么不使用nl2br()然后使用<br /><br />
preg_replace所有<br />
,然后将所有<br />
返回到\ n?