PHP,使用UTF8进行表单检查


PHP, doing form checks with UTF8

因此,为了在网站上支持多语言,我需要确保进入数据库的所有数据都存储为utf8。我的问题是,有没有一个类可以使用utf8格式的表单数据对表单进行表单检查和数据清理?现在我会检查表单数据是否为空,或者是否有一定长度,但由于utf8的原因,我不得不使用不同的命令。所以我只是想检查一下,看看是否有一个预先存在的类用于这种类型的检查/消毒,因为我尽量不重新发明轮子。

有关该主题的一些一般信息可在Cal Hernderson(O’Reilly,2006)的构建可扩展网站第5章(第5章为PDF)中找到。

我的问题是,有没有一个类可以使用utf8格式的表单数据对表单进行表单检查和数据清理?

首先这不应该是必要的。如果您的表单(以及其他所有表单)正确地编码为UTF-8,那么就不会出现任何问题。

如果一切都设置正确,唯一可能出错的就是用户在表单中输入无效字符。不可能可靠地防止这种情况发生,但发生这种情况的风险很小。

如果您在真实世界中遇到无效字符会进入数据的情况,则可以使用//IGNORE选项执行iconv()以清除无效字符:

$data = iconv("UTF-8", "UTF-8//IGNORE", $data);

同样,您可以通过比较iconv()前后的字符串长度来确定字符串是否包含无效字符。