在PHP中拆分地址行

时间:2014-07-14 12:36:19

标签: php

我正在使用皇家邮政邮政编码数据库,以确保我在表单上获得正确的地址详细信息。它使用相关的输入框将地址拉入我的表单。这很棒,但我想做的是在第一个输入框中,地址可能是什么 123 The Street or Apartment 29甚至HouseName The Street。我在表格中发布这些内容。

所以帖子就像$ _POST [“line1”];

怎么可能将线分成几个部分,以便我可以从地址中取出HouseNo或House Name,这样在我的下一页上我可以将它显示为HouseNo / Name&街道名称?

使用上面的示例输出echo $houseno; - 123, echo $street; - The Street

2 个答案:

答案 0 :(得分:1)

尝试将数字和alpha分成两部分

$example = $_POST["line1"];
list($alpha,$num) = sscanf($example, "%[A-Z a-z ]%d");

echo $alpha; // address in alpha with space
echo $num; // house no

更多信息: - PHP: Best way to split string into alphabetic and numeric components

答案 1 :(得分:0)

可以使用正则表达式来尝试分割字符。不可否认,你当时have two problems

一般来说,你不会觉得这很容易。你发布了一些测试用例:

  • 123 The Street
  • 29号公寓
  • “The Orchard”

这里还有几点要考虑:

  • 1A The Street
  • Flat B

为什么不在皇家邮件数据库(你说你有)上提供一个界面,而不是试图处理一个自由形式的字段(字面上)成千上万的可能变体?许多网站现在提供此选项:

  1. 您输入邮政编码和(通常)门牌号
  2. 一个框显示了可供选择的匹配地址列表
  3. 您仍然可以获得与皇家邮政数据库完全匹配的地址,但您现在可以让客户执行该过程中棘手的地址匹配部分。

    当然,您可能仍然应该让人们输入自由格式的地址数据,因为地址数据库有时会落后于现实......