Как изменить функцию замены url?

229
19 декабря 2016, 19:34

Есть такой код функции форматирования url, полученный из поля ввода

    function check_url($url)
    {
        global $EGN, $LANG;
        $url = strtolower(trim($url));
        if ($url != '')
        {
            if( !preg_match("#^([a-z\.\-_:\/]+[a-z]{2,4})$#", $url) || ( strlen($url) > 64 ) )
            {
                $EGN['errors'] .= $LANG['err_urlnotvalid'];
                $url = '';
            }
            elseif ( !eregi('http://', $url) )
            {
                $url = 'http://'.$url;
            }
        }
        return $url;
    }

после форматирования данной функцией в случае, если введена вот такая ссылка http://example.com, то на странице появляется правильная ссылка, но если была введена вот такая ссылка example.com (т.е., без http://), то почему-то к такой ссылке прибавляется текущий сайт, то есть, получается вот так: mysait.ru/example.com.

как можно решить эту проблему?

можно как-нибудь изменить функцию форматирования ссылки, полученной из поля ввода?

Answer 1

Замените

elseif ( !eregi('http://', $url) )
    {
        $url = 'http://'.$url;
    }

на

}
if ($url && substr($url, 0, 4)!='http') {
    $url = 'http://'.$url;
}
READ ALSO
Наследование ошибка prepare()

Наследование ошибка prepare()

Есть 4 класса: Db, Core, User, ProfileProfile наседует User, User => Core, а Core наследует Db

218
Не вижу в диспетчере EventSubscriber

Не вижу в диспетчере EventSubscriber

Делаю по мануалу http://symfonycom/doc/current/cookbook/doctrine/event_listeners_subscribers

270
Проблемы с чатом на сайте

Проблемы с чатом на сайте

Нашел в интернете гайд по созданию чата на сайтеВроде делал всё, как там, но в поле не выводятся введённые сообщения

216