Php 我如何将国家识别脚本附加到我的注册页面并做出if声明?

Php 我如何将国家识别脚本附加到我的注册页面并做出if声明?,php,webpage,Php,Webpage,我制作了一个由三个国家组成的分组框,分别是美国、英国和加拿大,因此我不知道如何让页面向签名者显示相应的国家分组框(我的意思是,如果签名者来自加拿大,则必须向他显示一份加拿大省份列表,与美国和英国省份列表相同),很明显,我不知道如何将脚本附加到我的注册页面 ps:我对php不是很在行,所以请各位朋友们,如果可能的话,如果你们能详细解释的话,那就太好了 <?php $IPaddress=$_SERVER['REMOTE_ADDR']; $two_letter_cou

我制作了一个由三个国家组成的分组框,分别是美国、英国和加拿大,因此我不知道如何让页面向签名者显示相应的国家分组框(我的意思是,如果签名者来自加拿大,则必须向他显示一份加拿大省份列表,与美国和英国省份列表相同),很明显,我不知道如何将脚本附加到我的注册页面 ps:我对php不是很在行,所以请各位朋友们,如果可能的话,如果你们能详细解释的话,那就太好了

    <?php

    $IPaddress=$_SERVER['REMOTE_ADDR']; 
    $two_letter_country_code=iptocountry("$IPaddress");

    function iptocountry($ip) {   
    $numbers = preg_split( "/\./", $ip);   
    include("ip_files/0.php");
include("ip_files/1.php");
include("ip_files/2.php");
    $code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]);   
    foreach($ranges as $key => $value){
    if($key<=$code){
        if($ranges[$key][0]>=$code){$country=$ranges[$key][1];break;}
        }
    }
    if ($country==""){$country="unkown";}
    return $country;

     }
     ?>

我建议您使用hostinfo API

返回国家id(例如,美国的“US”)

将其放入
元素中。 然后,一旦您确定了国家,使用一个状态数组,在其中循环添加选项元素到选择节点:

switch ($country) {
case "US":
$states = array("state1", "state2" );
    break;
case "UK":
....
}
foreach($states as $state) 
{
   $state = htmlspecialchars($state);
   echo '<option value="'. $state .'">'. $state .'</option>';
}
交换机($country){
案例“美国”:
$states=数组(“state1”、“state2”);
打破
案例“英国”:
....
}
foreach($states作为$state)
{
$state=htmlspecialchars($state);
回显“.$state.”;
}
下面是一个示例-您需要自己将国家代码生成器放入代码中(我没有nessecary
I_文件
):


工作示例(示例国家代码):

但这并没有回答我的问题:/n问题不在标识中。请注意——误读问题——如果您能够获得国家,您可以使用一个州数组,然后使用
foreach
循环该数组以添加选项元素。我会在一分钟内添加代码。嗯,不完全是这样,但非常感谢你的帮助,我感谢你,好吧,看,我用英语做了一个注册页面,在注册页面中,我没有为每个国家制作副本,我只是为适当的国家制作了不同的详细信息,比如国家分组框,比如加拿大,我制作了一个加拿大分组框各省和我们同样的事情也为英国和身份,我使用上面的脚本(工作良好)所以问题是,我不知道如何让注册页面向签名者显示相应的州框,我的意思是,当签名者是加拿大人时,他只会发现加拿大的省份不包括美国和英国的省份。事实上,这只是一个if语句的问题,以及如何将上面的脚本附加到注册页面上,以便if语句将被删除很好地执行
switch ($country) {
case "US":
$states = array("state1", "state2" );
    break;
case "UK":
....
}
foreach($states as $state) 
{
   $state = htmlspecialchars($state);
   echo '<option value="'. $state .'">'. $state .'</option>';
}