Проверка URL хоста с использованием preg_match - PullRequest
0 голосов
/ 13 февраля 2012

Это моя фактическая функция:

public function _validate_host($url)
{
    $pattern = "/^([w]{2}([\w\-]+\.)?([\w]{2,5}))(:[\d]{1,5})?/";
    if (!preg_match($pattern, $url))
    {
        return FALSE;
    }

    return TRUE;
}

Демонстрация работы в реальном времени: http://regexr.com? 300ag

Фактический шаблон выбирает только URL, например:

www.my-url.com

Я хочу, чтобы он совпадал с URL-адресами хоста, например:

my-url.com - if found, match.
my.server.com - if found, match.
www.my-url.com - if found, match.

http://www.my-url.com/ - if www.my-url.com found, match.

Он также должен игнорировать (при проверке) http:// (если он добавлен), а затем он должен заменить fe.следующий URL: http://www.my-url.com/ на www.my-url.com.

Любые решения будут оценены.

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

попробуйте это

^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?

или

[a-z\-\:\/\.]+

это подберет URL, даже если они имеют http: // однако вы можете использовать str_replace в php для удаления http: // из результата.

0 голосов
/ 16 декабря 2012

Я занимаюсь этим:)

function validate_url($domain)
{    
    if(preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $domain))
        return $domain;
    else
        return false;    
}
...