使用 PHP 清理内容的最佳方法?

发布于 2024-08-26 04:35:21 字数 1310 浏览 5 评论 0 原文

“净化”内容的最佳方法是什么?示例...

示例 - 清理之前:

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>

它应该做什么

  • 它应该添加 p 标签而不是换行符喜欢。
  • 它应该删除空格,例如三重空格
  • 。它应该删除双换行符。
  • 它应该删除选项卡。
  • 如果有的话,它应该删除内容之前的换行符和空格。
  • 如果有的话,它应该删除内容后面的换行符和空格。

我知道我使用了 str_replace 函数,它应该是一个更好的解决方案吗?

我希望函数看起来像这样:

function sanitize($content)
{
    // Do the magic!
    return $content;
}

Which is the best way to "sanitize" content? An example...

Example - Before sanitize:

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.

Example - After sanitize:

<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>

What it should do

  • It should add p-tags instead of line break like.
  • It should remove empty space like tripple spaces
  • It should remove double line breaks.
  • It should remove tabs.
  • It should remove line breaks and spaces before the content if any.
  • It should remove line breaks and spaces after the content if any.

Right know I use the str_replace function and it should be a better solution for this?

I want the function to look like this:

function sanitize($content)
{
    // Do the magic!
    return $content;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

温暖的光 2024-09-02 04:35:21
  • 它应该添加 p 标签而不是换行符之类的。

通过 Textile 解释器、Markdown 或任何其他 人性化标记语言适合您的需求。

  • 它应该删除空格,例如三重空格
  • 。它应该删除双换行符。
  • 它应该删除选项卡。
  • 如果有的话,它应该删除内容之前的换行符和空格。
  • 如果有的话,它应该删除内容后面的换行符和空格。

何苦呢?当 HTML 呈现为文档时,多个空白字符会减少为单个空格,不是吗?大多数问题都会自行解决。

  • It should add p-tags instead of line break like.

Run it through something like the Textile interpreter, or Markdown, or any another humane markup language which suits your needs.

  • It should remove empty space like tripple spaces
  • It should remove double line breaks.
  • It should remove tabs.
  • It should remove line breaks and spaces before the content if any.
  • It should remove line breaks and spaces after the content if any.

Why bother? When HTML is rendered as a document, multiple white space characters are reduced to a single space, no? Most of your problems solve themselves.

少女七分熟 2024-09-02 04:35:21
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>
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;
}

Example:

$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);

Output:

<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>
沫离伤花 2024-09-02 04:35:21

看一下 Sanitize 类rel="nofollow noreferrer">CakePHP。

Take a look at Sanitize class of CakePHP.

巴黎盛开的樱花 2024-09-02 04:35:21

整齐的!!

zend 有一篇相当过时的文章,但请查看他们给出的示例:

http://devzone.zend .com/article/761

Tidy!!

There is a pretty outdated article on zend, but check out the example they give:

http://devzone.zend.com/article/761

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文