domaincheck(TLD)可通过PHP API获得什么

时间:2015-04-15 07:25:15

标签: php api

我正在构建一个域检查,它现在正在运行。如果我测试例如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>

希望你能帮忙!

2 个答案:

答案 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的回复。