我想用我的自动完成功能检查多个域,它可以工作!只有它会检测到一个点(您可以在域名前面看到的),该内容可能隐藏在代码内的某个位置,由于该点,它将是无效的域名。我认为是因为我的代码的这一部分:
$arr = explode('.', $q);
有关其他信息,这是我的其余代码:
$a = array("com", "co", "net", "nl");
$q = (isset($_REQUEST["q"]) ? $_REQUEST["q"] : null);
$arr = explode('.', $q);
$result = '';
@$domains = explode("\n", $_GET['domains']);
$domains = array_map('trim', $domains);
$output = array();
foreach ($a as &$value) {
if (substr($value, 0, strlen(@$arr[1])) === @$arr[1])
{
$output[]= $arr[0] . "." . $value;
foreach ($output as &$domeinnaam) {
try
{
$domainCheckResults = Transip_DomainService::batchCheckAvailability($domains);
foreach($domainCheckResults as $domainCheckResult)
{
switch($domainCheckResult->status)
{
case Transip_DomainService::AVAILABILITY_INYOURACCOUNT:
$result .= htmlspecialchars($domeinnaam->domainName)
. ' ✕<br/>';
break;
case Transip_DomainService::AVAILABILITY_UNAVAILABLE:
$result .= htmlspecialchars($domeinnaam->domainName)
. ' ✕<br/>';
break;
case Transip_DomainService::AVAILABILITY_FREE:
$result .= htmlspecialchars($domeinnaam->domainName)
. ' ✓<br/>';
break;
case Transip_DomainService::AVAILABILITY_NOTFREE:
$result .= htmlspecialchars($domeinnaam->domainName)
. '❔<br/>';
break;
}
}
}
catch(SoapFault $e)
{
$result = 'Er vind een error plaats: ' . htmlspecialchars($e->getMessage());
}
}
echo $domeinnaam."<br>";
echo $result;
}}
答案 0 :(得分:0)
您提到了“自动完成”一词。如果这是通过每次击键向域检查器API发送请求,则可能是拾取了点并将其发送出去。
我将其分解为最简单的形式,以消除可能由自动完成功能引起的任何怪癖-使它与硬编码域一起使用,然后在此之上进行构建。我还建议删除@符号以消除错误,尤其是在对代码进行故障排除时。
答案 1 :(得分:-1)
看起来确实很喜欢。您正在使用“。”分割数组。在他们之间。如果您想摆脱它,只需用空字符串将其爆炸 explode('',$ q);