如何摆脱点点滴​​滴?

时间:2018-11-14 12:18:08

标签: php explode

A picture of the problem

我想用我的自动完成功能检查多个域,它可以工作!只有它会检测到一个点(您可以在域名前面看到的),该内容可能隐藏在代码内的某个位置,由于该点,它将是无效的域名。我认为是因为我的代码的这一部分:

$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) 
                                . ' &#10005;<br/>';
                break;
                case Transip_DomainService::AVAILABILITY_UNAVAILABLE:
                    $result .= htmlspecialchars($domeinnaam->domainName) 
                                . ' &#10005;<br/>';
                break;
                case Transip_DomainService::AVAILABILITY_FREE:
                    $result .= htmlspecialchars($domeinnaam->domainName) 
                                . ' &#10003;<br/>';
                break;
                case Transip_DomainService::AVAILABILITY_NOTFREE:
                    $result .= htmlspecialchars($domeinnaam->domainName) 
                                . '&#10068;<br/>';
                break;
            }
        }
    }
    catch(SoapFault $e)
  {
        $result = 'Er vind een error plaats: ' . htmlspecialchars($e->getMessage());
}
    } 


    echo $domeinnaam."<br>";
    echo $result;

    }}

2 个答案:

答案 0 :(得分:0)

您提到了“自动完成”一词。如果这是通过每次击键向域检查器API发送请求,则可能是拾取了点并将其发送出去。

我将其分解为最简单的形式,以消除可能由自动完成功能引起的任何怪癖-使它与硬编码域一起使用,然后在此之上进行构建。我还建议删除@符号以消除错误,尤其是在对代码进行故障排除时。

答案 1 :(得分:-1)

看起来确实很喜欢。您正在使用“。”分割数组。在他们之间。如果您想摆脱它,只需用空字符串将其爆炸 explode('',$ q);