Php 验证实际商业/住宅地址的正确方法是什么?

Php 验证实际商业/住宅地址的正确方法是什么?,php,zend-framework,Php,Zend Framework,目前,我将地址限制为100个字符,并且没有关于它必须由什么组成的规则。标点符号、数字、字母;欢迎大家 在将地址保存到数据库(准备好的语句)时,我使用strip_标记。我使用$this->escape() 我不想发疯,但我认为我需要更严格一点。我遗漏了什么?如果这些是美国地址,您应该使用美国邮政服务的API来查找和标准化地址 根据Dan的回答,我认为最好的解决方案是对地址验证服务执行一个简单的请求,例如(它完全免费,并且使用官方USPS数据)。我实际上为SmartyStreets工作,所以我一次又

目前,我将地址限制为100个字符,并且没有关于它必须由什么组成的规则。标点符号、数字、字母;欢迎大家

在将地址保存到数据库(准备好的语句)时,我使用
strip_标记。我使用
$this->escape()


我不想发疯,但我认为我需要更严格一点。我遗漏了什么?

如果这些是美国地址,您应该使用美国邮政服务的API来查找和标准化地址


根据Dan的回答,我认为最好的解决方案是对地址验证服务执行一个简单的请求,例如(它完全免费,并且使用官方USPS数据)。我实际上为SmartyStreets工作,所以我一次又一次地经历了这些困难

我读了关于你问题的评论,尽管这似乎不是一个标准化地址的问题。。。真的是到头来了。用户可以输入错误的数据——如果他们是故意这样做的,就像Catcall提到的那样,这确实会告诉你一些事情——你需要确保它是正确和完整的。CASS认证的供应商可以提供这项服务,我认为最简单/最实惠的就是LiveAddress

没有正则表达式可以做到这一点,即使是USPS API也有它的主要缺点/限制,尽管它是权威(例如,它的可交付性并不总是很明确)


当您验证任何输入(即使是地址)的有效性时,它也会建立用户的信任,让他们知道您关心他们与您的交互。

开车到那里,看看它是否存在。为什么
在将其插入数据库之前先去掉标签()
?只需转义依赖于输出上下文的特殊字符。我不知道任何字符,但您可能希望找到一个标准化地址的库inputs@alex:我越早停止恶意输入,100个字符就越好,没有标签似乎没有人会注入代码,甚至没有人会注入文本的视觉墙。+1表示权威。对于低容量要求,您可以使用邮政编码查找手动检查地址。但根据我的经验,美国邮政在应对变化方面落后于地方政府。不是很多,但这对一些应用程序来说是有区别的。