我想通过他们的知识产权来访问国家...现在我正在使用这个(http://api.hostip.info/country.php?ip= ......)
这是我的代码:
<?php
if (isset($_SERVER['HTTP_CLIENT_IP']))
{
$real_ip_adress = $_SERVER['HTTP_CLIENT_IP'];
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$real_ip_adress = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$real_ip_adress = $_SERVER['REMOTE_ADDR'];
}
$cip = $real_ip_adress;
$iptolocation = 'http://api.hostip.info/country.php?ip=' . $cip;
$creatorlocation = file_get_contents($iptolocation);
?>
Run Code Online (Sandbox Code Playgroud)
嗯,它工作正常,但问题是,这会返回像美国或CA这样的国家/地区代码,而不是像美国或加拿大这样的整个国家/地区名称.
那么,hostip.info提供这个有什么好的替代方案吗?
我知道我可以编写一些代码,最终将这两个字母转换为整个国家/地区名称,但我只是懒得写一个包含所有国家/地区的代码......
PS:出于某种原因,我不想使用任何现成的CSV文件或任何能为我获取此信息的代码,例如ip2country现成代码和CSV.
我有两个字段,其中一个是文本输入字段,另一个是选择标记.问题是我希望其中一个只能启用,用户应该通过单击上面的一个单选按钮来选择启用哪一个.
因此,如果用户选择第一个单选按钮,则将启用输入字段,如果他选择第二个单选按钮,则将启用选择标记.
这是我的代码:
<input type="radio" name="type" value="customurl">wanna custom url?
<input type="text" name="custom" placeholder="should be 5 charecters at least" >
<br><br>
<input type="radio" name="type" value="customurl">random?
<select name="charstype">
<option>Letters</option>
<option>Number</option>
</select>
Run Code Online (Sandbox Code Playgroud) 在某些库/框架文档中,它告诉您可以使用同步或异步功能.
例如,在Mongoose文档中它说:
自定义验证器也可以是异步的.如果验证器函数有2个参数,mongoose将假设第二个参数是回调.
所以基本上定义这样的函数时:
function(a){
return false;
}
Run Code Online (Sandbox Code Playgroud)
Mongoose会将其视为同步,但我们将其定义为:
function(a,callback){
setTimeout(function(){
callback(false);
},5000)
}
Run Code Online (Sandbox Code Playgroud)
它将被视为异步代码.
我已经注意到Mocha测试框架的相同之处,在文档中说:
使用Mocha测试异步代码并不简单!只需在测试完成后调用回调.通过向it()添加一个回调(通常名为done),Mocha将知道它应该等待调用此函数来完成测试.
我的问题是:他们是如何做到这一点的?你怎么知道在调用函数时是否需要1或2个参数?
javascript ×2
callback ×1
forms ×1
geolocation ×1
html ×1
html-input ×1
html-select ×1
ip ×1
php ×1