【问题标题】:PHP script to parse address?解析地址的PHP脚本?
【发布时间】:2011-08-08 05:33:54
【问题描述】:

我正在寻找一个 PHP 脚本来解析名称和地址字段,即人们附加到电子邮件末尾的那种。它将作为纯文本上传,格式如下:

John Q. Public
Director of Some Thing
123 Elm Street 
Anytown, ST 11001
(000) 555-1212
(000) 555-1213 FAX

地址的格式往往会有所不同,这就是为什么我想知道是否有人接受过这个。谢谢。

【问题讨论】:

    标签: php street-address


    【解决方案1】:

    因为地址变化很大,所以这不是一项简单的解析任务。如果可能的话,我建议使用经过验证的服务,例如 The Google Geocoding API

    您可以使用 PHP 的 file_get_contents() 检索答案并使用 json_decode() 读取答案(JSON 是 Geocoding API 可以返回的几种格式之一)。

    【讨论】:

    • 这很有帮助,而且您是对的——这可能是一项艰巨的任务。我不确定那里是否有任何东西。如果我最终没有解析器,我会检查你的答案。
    【解决方案2】:

    SmartyStreets 提供了一种提取工具来执行此类操作。您可以粘贴任何文本块,它会刮擦以提取其中可能存在的任何地址。 SmartyStreets 擅长地址验证,所以我们的开发人员已经解决了解析问题。您可以查看here。提取器是一个 Web 工具,但您可以使用 PHP 以编程方式使用它。它确实需要至少免费订阅。

    看看它从你上面的虚假电子邮件签名中发现了什么:

    (为了清楚起见,我确实在 SmartyStreets 工作。)

    【讨论】:

      【解决方案3】:

      Google 地理编码每天限制为 2,500 个。

      如果您要解析的数据很多,我建议您使用其他服务。

      可以返回类似于 Google 的格式化地址的 cheapest geocoding apiGeocode Farm。他们也有 JSON,所以你仍然可以将 file_get_contents 与 json_decode() 一起使用。如果您有大量数据,我建议您使用他们的 25,000/天(25 美元/月)并将其解析出来。如果不止于此,请升级到不同的计划。如果您只需要 2,500 但将来需要更多,我建议您仍然使用它们,因为它们也是免费的 2,500 并且您可以立即将计划升级为在他们的仪表板中付费。

      • 有点偏向于使用 GeocodeFarm,因为他们的服务是我发现的唯一比 Google 更好的服务,而且非常便宜,而且如果大多数时候没有发现,返回的结果也接近相同。从来没有停机时间,爱他们。我使用 GeocodeFarm 进行所有地理编码和地址解析。

      下站点: 他们不像谷歌那样提供地址组件,只提供返回/更正的地址......:/希望他们将来添加地址组件。我发现的唯一东西不见了。 :(

      附:谷歌他们或我将他们的网站链接到上面的“地理编码农场”这个词......

      附言很抱歉回复晚了,但希望这会帮助其他寻找这个的人......

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        • 2012-10-02
        • 1970-01-01
        • 1970-01-01
        • 2011-05-14
        • 1970-01-01
        相关资源
        最近更新 更多