目前,我将一个地址限制为100个字符,没有关于它必须由何种组成的规则。标点符号,数字,字母;欢迎所有人。
我将地址保存到我的数据库时使用strip_tags
(预准备语句)。我将$this->escape()
(Zend Framework)回显到页面时使用它。
我不想发疯,但我认为我需要更加严格一些。我错过了什么?
答案 0 :(得分:2)
如果这些是美国地址,您应该使用美国邮政服务的API来查找和标准化地址。
答案 1 :(得分:0)
基于Dan的答案,我会提出最适合您的解决方案是对地址验证服务执行简单请求,例如SmartyStreets' LiveAddress(它完全免费并使用官方的USPS数据)。我实际上是在为SmartyStreets工作,所以我一次又一次地经历过这些箍。
我阅读了关于你的问题的评论,即使它似乎不是标准化地址的问题,但它确实是最终的。用户可以输入错误的数据 - 如果他们故意这样做,那么会告诉你一些正确的事情,正如Catcall所提到的那样 - 并且你想确保它是正确和完整的。 CASS认证的供应商可以提供这项服务,我认为最简单/最实惠的是LiveAddress。
没有正则表达式可以做到这一点,甚至USPS API也有其主要的缺点/限制,尽管它是权威(例如,它的传送能力并不总是很清楚)。
当您验证任何输入,甚至是地址的有效性时,它也会建立用户的信任,以便他们知道您关心他们与您的互动。