我正在构建一个域检查,它现在正在运行。如果我测试例如example.com,则表示example.com可用不可用。
但如果它不可用,我希望我的代码检查其他代码(例如example.org,example.nl,example.net,example.info等)以查看它们是否可用。
这是我的检查员代码
unset($command);
$command = array(
"command" => "DomainsCheckAvailability",
"domain" => htmlentities($_POST['domain']),
"tld" => htmlentities($_POST['tld'])
);
$api = new Versio_api();
$versio = $api->api_send( $command );
IF($versio['success']==0) {
echo("Fout opgetreden. Fout code: ".$versio['command_response_code'].". Fout text: ".$versio['command_response_message']."");
}
else
{
IF($versio['status']==1) {
echo "<div class='wrapper'>";
echo "<div class='beschikbaar'>";
echo $_POST['domain'].$_POST['tld']. "";
echo " is available.";
echo "</div'>";
echo "</div'>";
}
else
{
echo "<div class='wrapper'>";
echo "<div class='beschikbaar'>";
echo $_POST['domain'].$_POST['tld']. "";
echo " is not available.";
echo "</div'>";
echo "</div'>";
};
};
这些是我的输入字段:
<form action="domeincheck.php" method="post">
<input class="www" type="text" value="www." /></input>
<input class="invul" placeholder="uw websitenaam" type="text" name="domain"></input>
<select id="dropdownveld" name="tld">
<option value=".nl">.nl</option>
<option value=".com">.com</option>
<option value=".net">.net</option>
<option value=".be">.be</option>
<option value=".eu">.eu</option>
<option value=".org">.org</option>
<option value=".biz">.biz</option>
<option value=".info">.info</option>
</select>
<button class="btn_submit" type="submit" name="SubMit" class="input">Controleren</button>
</form>
希望你能帮忙!
答案 0 :(得分:1)
据推测,你有一个执行检查的功能?我假设这叫做domainAvailable()
。您需要做的就是创建一个要检查的TLD阵列,然后循环遍历它们,添加到您正在检查的域名的末尾,并检查每个域名:
function domainAvailable($domain, $tld) {
$command = array(
"command" => "DomainsCheckAvailability",
"domain" => $domain,
"tld" => $tld
);
if ( $tld[0] == '.') {
$tld = substr($tld, 1);
}
$api = new Versio_api();
$res = $api->api_send( $command );
if ( $res['success'] )
return $res['status'] == 1;
return false;
}
$first_tld = $_POST['tld'];
$domain = $_POST['domain'];
if ( !domainAvailable($domain, $first_tld) ) {
echo '<br/>Domain '.htmlentities($domain.'.'.$first_tld).' is not available.<br/>What about these?<br/>';
$tlds = array('nl', 'com', 'net', 'be', 'eu', 'org', 'biz', 'info');
foreach($tlds as $tld) {
# Skip the first tld that was checked
if ( $tld != $first_tld) {
if ( domainAvailable($domain, $tld) )
echo '<br>'.htmlentities($domain).$tld.' is available';
else
echo '<br>'.htmlentities($domain).$tld.' is not available';
}
}
}
else {
echo '<br/>Domain '.htmlentities($domain.'.'.$first_tld).' is available';
}
更新:我已根据您更新的代码示例创建了domainAvailable()
函数。
更新2:我已经改变了一些代码。如果您可以正确使用domainAvailable()
函数,它应该可以工作,我已根据API文档和您发布的代码对其进行了最佳猜测。
答案 1 :(得分:0)
您在此段代码中设置了TLD:
$command = array(
[...]
"tld" => htmlentities($_POST['tld'])
);
在这种情况下,它来自$ _POST。如果您创建一个包含要检查的所有TLD的数组,请创建一个循环,在其中将它们作为“tld”放在$ command中并执行
$api->api_send( $command );
您将收到每个TLD的回复。