2011-08-21 51 views
2

我正在设计一个基本的电子商务应用程序,我有一个表单添加产品。消毒字符串,使其内容只能为纯文本

有2个文本字段:产品名称和说明。

产品名称为input type="text",介绍textarea

由于用户可以输入任何东西(最坏的情况下),我想删除所有标签(不管它的PHP,HTML,JS,CSS,任何东西),使我只得到纯文本(没有任何标签)

我该如何实现这一目标? 基本上,我需要清理字符串,所以任何使它明文

回答

1

如果你只是想从用户输入翻出所有标签,那么你可以使用strip_tags()函数。

更好的选择是通过HTML Purifier运行用户输入。这是一个更彻底的清洁。

+0

我肯定会添加一个到我的阿森纳时,需要“重型武器” - 看起来像一个伟大的图书馆! –

+0

我认为如果不需要他不需要用于文本格式化的HTML标签,那么他可以使用htmlspecialchars()作为输出。它应该够了。 – Karolis

+0

这会保留' '和'“/ \ r | \ n /”'..参见[link](https://stackoverflow.com/questions/10757671/how-to-remove-line-breaks-no-字符 - 从字符串)删除那些.. –

1

我建议用strip_tags功能,也许尝试这样的事情:

$cleaner_input = trim(strip_tags($input)); // trim is there for good measure 

确保你也处理magic quotes,否则实际报价人物可以成为一个问题,让他们之前的反斜杠(它们是折旧但在大多数主机环境中仍然相关)。

请记住,strip_tags会在标签之间保留文本,所以对于JavaScript/CSS会有些问题,但至少浏览器会将其呈现为纯文本。对正在输入数据的用户进行预览,他们会看到它们混淆了。

希望有帮助!

1

有一个简单的方法。

对于php<5.2.0版本,当我们必须验证或过滤用户数据时,我们通常使用正则表达式和/或复杂的php函数。
其中一些正则表达式很难理解/记住。所以通常大多数编码人员都会在谷歌搜索收集正确的正则表达式。

对于php>=5.2.0您可以使用filter。 - >Easy way to data filter and validation in php

这也可以帮助你:
How to sanitize your php

+0

第二个链接被打破 –