我创建了一个html表单,您可以在其中输入单个字符串中的街道地址。如何在PHP中提取街道号码,街道名称和街道类型(新月,道路,街道等)?我不确定他们将输入的字符串的长度,它可能无法提取正确的信息。
请帮助我,因为我是PHP的新编码。
以下是我的代码:
$address = $_POST["address"];
echo "Your address is: $address <br>";
$addressSubstring = substr($address,0 , 15);
echo "Address: $addressSubstring <br>";
$strNumber = substr($addressSubstring, 0, 2);
$strName = substr($addressSubstring, 2, 8);
$strType = substr($addressSubstring, 8, 15);
echo "Your street number is: $strNumber <br>";
echo "Your street name is: $strName <br>";
echo "Your street type is: $strType <br>"
答案 0 :(得分:1)
您不能依赖于在代码中获取固定位置和长度的子字符串,因为它们每次都会更改。
不使用任何API或AI,您可以做的最好的事情是创建一个包含道路类型(及其缩写)的数组,并检查字符串中是否有任何单词。
为此,您可以对每个单词或匹配的正则表达式使用 strpos 。
然后你可以从字符串中删除该单词,并再次使用strpos获取第一个空格的位置。然后使用该位置获取空格(街道号)前的子字符串和空格后的子字符串(街道名称)。
答案 1 :(得分:0)
请记住道路类型是“crescent | road | street”:
使用正则表达式可以解决问题:
#Basic configuration
global
log 127.0.0.1 local0
maxconn 4096
stats socket /tmp/haproxy
defaults
log global
option dontlognull
retries 3
option redispatch
timeout client 5s
timeout server 5s
timeout connect 5s
frontend forwarder
bind *:1025
mode http
default_backend proxy
backend proxy
option httpclose
option http_proxy
mode http