Как избавиться от точек? - PullRequest
0 голосов
/ 14 ноября 2018

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 голосов
/ 14 ноября 2018

Вы упомянули слово «автозаполнение». Если это отправляет запрос в API проверки домена по при каждом нажатии клавиши, возможно, он выбирает точку и отправляет ее тоже.

Я бы разбил это на простейшую форму, чтобы исключить любые причуды, которые могут быть вызваны автозаполнением - заставить его работать с жестко запрограммированным доменом, а затем основываться на этом. Я также рекомендую удалить символ @, чтобы исключить ошибки, особенно когда вы устраняете неисправность кода.

0 голосов
/ 14 ноября 2018

Похоже, это так. вы разделяете массив с помощью '.' между ними. если вы хотите избавиться от этого, просто взорвите его пустой строкой взорваться ('', $ q);

...