PHP:通过if-else语句返回多个结果


PHP: Return multiple results by if else statement

我想要实现的是检查多个域的可用性。

这是我的代码:

<?php
//$domain = 'example.com';
$domain = array('example.com', 'foo.com');
if ( checkdnsrr(in_array($domain), 'ANY') ) {
  $echo_checkdnsrr = in_array($domain) . " DNS Record found (checkdnsrr)" . "<br />" . PHP_EOL;
}
else {
  $echo_checkdnsrr = in_array($domain) . " NO DNS Record found (checkdnsrr)" . "<br />" . PHP_EOL;
}
if ( gethostbyname(in_array($domain)) != in_array($domain) ) {
  $echo_gethostbyname = in_array($domain) . " DNS Record found (gethostbyname)" . "<br />" . PHP_EOL;
}
else {
  $echo_gethostbyname = in_array($domain) . " NO DNS Record found (gethostbyname)" . "<br />" . PHP_EOL;
}
$separator = "-------------------------------------------" . "<br />" . PHP_EOL;
print_r($echo_checkdnsrr);
print_r($echo_gethostbyname);
echo $separator;
?>

我想要实现的目标:

example.com DNS Record found (checkdnsrr)
example.com DNS Record found (gethostbyname)
-------------------------------------------
foo.com DNS Record found (checkdnsrr)
foo.com DNS Record found (gethostbyname)
-------------------------------------------

谢谢你的帮助!

感谢@fluinc,这是我的最终代码:

$domains = array('example.com', 'foo.com');
foreach ($domains as $domain) {
    if (checkdnsrr($domain, 'ANY') || gethostbyname($domain) != $domain) {
        echo "TAKEN " . $domain . "<br />" . PHP_EOL;
    } else {
        echo "AVAILABLE " . $domain . "<br />" . PHP_EOL;
    }
}

这就是它的回报:

TAKEN example.com
TAKEN foo.com

稍后,可以非常容易地在excel中导入,选择空格作为分隔符,并通过查询找到可用的域。

使用foreach在域中循环,您使用in_array是错误的,不需要。

$domains = array('example.com', 'foo.com');
foreach ($domains as $domain) {
    if (checkdnsrr($domain, 'ANY')) {
        echo $domain . " DNS Record found (checkdnsrr)<br />". PHP_EOL;
    } else {
        echo $domain . " NO DNS Record found (checkdnsrr)<br />". PHP_EOL;
    }
    if (gethostbyname($domain) != $domain) {
        echo $domain . " DNS Record found (gethostbyname)<br />". PHP_EOL;
    } else {
        echo $domain . " NO DNS Record found (gethostbyname)<br />". PHP_EOL;
    }
    echo "-------------------------------------------<br />". PHP_EOL;
}

根据评论更新

$domains = array('example.com', 'foo.com');
foreach ($domains as $domain) {
    if (checkdnsrr($domain, 'ANY') || gethostbyname($domain) != $domain) {
        echo $domain . " TAKEN<br />". PHP_EOL;
    } else {
        echo $domain . " AVAILABLE<br />". PHP_EOL;
    }
    echo "-------------------------------------------<br />". PHP_EOL;
}

在处理每个结果时尝试使用foreach()echo

$domains = array('example.com', 'foo.com');
foreach($domains as $domain){
    if(checkdnsrr(in_array($domain), "ANY")){
        echo in_array($domain) . " DNS Record found (checkdnsrr)" . "<br />" . PHP_EOL;
    } else {
        echo in_array($domain) . " NO DNS Record found (checkdnsrr)" . "<br />" . PHP_EOL;
    }
    if(gethostbyname(in_array($domain)) != in_array($domain)) {
        echo in_array($domain) . " DNS Record found (gethostbyname)" . "<br />" . PHP_EOL;
    } else {
        echo in_array($domain) . " NO DNS Record found (gethostbyname)" . "<br />" . PHP_EOL;
    }
    echo "-------------------------------------------" . "<br />" . PHP_EOL;
}

更短:

$domains = array('example.com', 'foo.com');
foreach($domains as $domain){
    echo in_array($domain).(checkdnsrr(in_array($domain), "ANY") ? "NO " : "")."DNS Record found (checkdnsrr)" . "<br />" . PHP_EOL;
    echo in_array($domain).(gethostbyname(in_array($domain))!= in_array($domain) ? "NO " : "")."Record found (gethostbyname)" . "<br />" . PHP_EOL;
    echo "-------------------------------------------" . "<br />" . PHP_EOL;
}