哪种“清理”内容的最佳方法?一个例子......
示例 - 清理之前:
Morbi mollis ante vitae massa suscipit a tempus est pellentesque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla mattis iaculis consectetur.
Morbi mollis ante vitae est pellentesque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla mattis iaculis consectetur.
示例 - 清理后:
<p>Morbi mollis ante vitae massa suscipit a tempus est pellentesque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla mattis iaculis consectetur.</p>
<p>Morbi mollis ante vitae est pellentesque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla mattis iaculis consectetur.</p>
它应该做什么
知道我使用str_replace
函数,它应该是一个更好的解决方案吗?
我希望函数看起来像这样:
function sanitize($content)
{
// Do the magic!
return $content;
}
答案 0 :(得分:6)
function sanitize($content) {
// leading white space
$content = preg_replace('!^\s+!m', '', $content);
// trailing white space
$content = preg_replace('![ \t]+$!m', '', $content);
// tabs and multiple white space
$content = preg_replace('![ \t]+!', ' ', $content);
// multiple newlines
$content = preg_replace('![\r\n]+!', "\n", $content);
// paragraphs
$content = preg_replace('!(.+)!m', '<p>$1</p>', $content);
// done
return $content;
}
示例:
$s = <<<END
Morbi mollis ante vitae massa suscipit a tempus est pellentesque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla mattis iaculis consectetur.
Morbi mollis ante vitae est pellentesque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla mattis iaculis consectetur.
END;
$out = sanitize($s);
输出:
<p>Morbi mollis ante vitae massa suscipit a tempus est pellentesque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla mattis iaculis consectetur.</p>
<p>Morbi mollis ante vitae est pellentesque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla mattis iaculis consectetur.</p>
答案 1 :(得分:6)
通过类似纺织品翻译或Markdown或任何其他符合您需求的humane markup language来运行它。
为什么要这么麻烦?当HTML呈现为文档时,多个空格字符会缩减为单个空格,不是吗?你的大部分问题都解决了。
答案 2 :(得分:3)
答案 3 :(得分:1)