Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中拆分地址行_Php - Fatal编程技术网

在PHP中拆分地址行

在PHP中拆分地址行,php,Php,我正在使用英国皇家邮政的邮政编码数据库,以确保我在表格上获得正确的地址详细信息。它使用相关的输入框将地址拉入我的表单。这是伟大的,但我想做的是在第一个输入框的地址可能是什么 123街道或公寓29或甚至房屋命名街道。我把这些贴在我的表格里 因此,post类似于$_post[“line1”] 如何将行拆分为多个部分,以便我可以从地址中提取HouseNo或House Name,以便在下一页中显示HouseNo/Name&Street Name 使用上述示例,输出echo$houseno;-回声街123

我正在使用英国皇家邮政的邮政编码数据库,以确保我在表格上获得正确的地址详细信息。它使用相关的输入框将地址拉入我的表单。这是伟大的,但我想做的是在第一个输入框的地址可能是什么 123街道或公寓29或甚至房屋命名街道。我把这些贴在我的表格里

因此,post类似于$_post[“line1”]

如何将行拆分为多个部分,以便我可以从地址中提取HouseNo或House Name,以便在下一页中显示HouseNo/Name&Street Name

使用上述示例,输出
echo$houseno;-回声街123号街道

您可以使用正则表达式尝试拆分字符。不可否认,你那时会后悔的

一般来说,你不会发现这很容易做到。您已经发布了一些测试用例:

  • 街道123号
  • 29号公寓
  • “果园”
还有几个问题需要考虑:

  • 沿街走
  • 公寓B
与其尝试处理(字面上)具有数千种可能变体的自由格式字段,为什么不在皇家邮政数据库上提供一个接口(你说你有)?许多网站现在都提供了此选项:

  • 您输入您的邮政编码和(通常)门牌号
  • 一个框显示要从中选择的匹配地址列表
  • 您仍然可以获得与皇家邮政数据库完全匹配的地址,但现在您可以让客户在这个过程中完成棘手的地址匹配部分


    当然,您可能仍然应该让人们输入自由格式的地址数据,因为地址数据库有时比实际情况落后几步…

    尝试将其分为数字和字母两部分

    $example = $_POST["line1"];
    list($alpha,$num) = sscanf($example, "%[A-Z a-z ]%d");
    
    echo $alpha; // address in alpha with space
    echo $num; // house no
    

    更多信息:-

    为地址行2提供另一个表单元素
    explode($\u POST['line1'],'')
    也许?你尝试了什么?谢谢你的回复,我应该解释一下我想用地址分割做什么。我有能力让客户输入他们的邮政编码,然后使用选择选项搜索他们的地址,正如您上面所说的。我想做的是在我的下一页使用门牌号创建一个带有邮政编码的工作编号,例如,如果Line1是123街,邮政编码是T1 3ST,那么我的工作编号将是123T1 3ST。这就是我想要实现的。谢谢。这更有道理。如果只需要提取一个连续的数字块,那么可以使用以下正则表达式:
    (\d+)
    ,然后附加邮政编码。不过,我可能会提醒大家不要这样做。如果你有三套相同号码的公寓怎么办?多个办事处共用同一号码的业务地址如何?如果同一客户不止一次订购,那么工单编号是否可以相同?我有一个工单类型的下拉选项,因此这将构成工单编号的开头,以便我可以在不同的工单类型上拥有相同的客户