что такое шаблон для preg_match_all для получения доменного имени? - PullRequest
0 голосов
/ 20 ноября 2011

Я хочу получить доменное имя из текста, я могу легко сделать для электронной почты, но не могу получить для доменного имени.Я использовал этот код, чтобы получить адрес электронной почты:

if (!empty($text)) {
  $res = preg_match_all(
    "/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i",
    $text,
    $matches
  );
}

Каков шаблон для получения только доменного имени из текста?

Ответы [ 2 ]

1 голос
/ 20 ноября 2011
//if you mean to get domain from any url then this works:
preg_match( '@^(?:http://)?([^/]+)@i', $text, $matches );
$host = $matches[1];

//if you mean to get domain from email address , then this should work
if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/" , $email))
{
list($username,$domain)=split('@',$email);
echo "Domain is:'.$domain;

Надеюсь, это полезно

0 голосов
/ 20 ноября 2011

При проверке адреса электронной почты наиболее надежный RegEx можно найти здесь: http://fightingforalostcause.net/misc/2006/compare-email-regex.php

...