Мета-валидация домена - PullRequest
       32

Мета-валидация домена

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

У меня есть кодовый набор на Laravel.Это проверка DNS, я хочу проверить определенное поле в метатеге, который я хочу.

Пример кода

    public function verifyDomainDns()
{
    $fqdn = sprintf('%s.%s', $this->getVerificationTxtName(), $this->name);
    $results = collect(dns_get_record($fqdn, DNS_TXT));
    $results = $results->where('type', 'TXT')
                       ->where('txt', $this->verification_token);

    $this->domain_verified = $results->isEmpty() ? self::UNVERIFIED : self::VERIFIED;
    $this->save();
}

verify_token Автоматически сгенерированные номера, зарегистрированные в базе данных

Метатег, который я хочу проверить.

 <meta name="book" content="verification_token" />

1 Ответ

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

Нет никакой связи между тем, что ваш код уже делает, и тем, что вы хотите сделать.

Один из способов добиться этого - получить содержимое URL-адреса, например file_get_contents(), что приведет к получению HTML-содержимого URL-адреса.

Получив это, вы можете использовать что-то вроде DOMXpath, чтобы проанализировать его и получить содержимое метатега.

$html = file_get_contents('https://example.com');
$dom = new DomDocument();
$dom->loadHTML($html);
$xpath = new DomXPath($dom);
$contents = $xpath->query('/html/head/meta[@name="book"]/@content');

if ($contents->length === 0) {
    echo 'No tag found';
} else {
    foreach ($contents as $content) {
        echo $content->value;
    }
}
...