Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с регулярным выражением для url

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
froosty
Отправлено: 12 Декабря, 2013 - 18:00:34
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Февр. 2012  
Откуда: Донецк, Украина


Помог: 0 раз(а)




Доброго времени суток.
Помогите написать регулярное выражение. Есть url сайта. Может быть задан:
http://vk[dot]com/
http://vk[dot]com
vk.com/
vk.com

Нужно регулярное выражение, с помощью него и preg_replace можно было бы достать vk.com, независимо от того, в каком из выше перечисленных видов хранится значение. Заранее спасибо за помощь =)
 
 Top
Мелкий Супермодератор
Отправлено: 12 Декабря, 2013 - 18:20:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




PHP:
скопировать код в буфер обмена
  1. if (stripos($sInput, 'vk.com')!==false) echo 'мы достали vk.com!';

?


-----
PostgreSQL DBA
 
 Top
esterio
Отправлено: 12 Декабря, 2013 - 18:39:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




PHP:
скопировать код в буфер обмена
  1. if(parse_url($url, PHP_URL_HOST) === 'vk.com')
  2. {
  3.         echo 'YES';
  4. }
 
 Top
froosty
Отправлено: 13 Декабря, 2013 - 09:48:59
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Февр. 2012  
Откуда: Донецк, Украина


Помог: 0 раз(а)




Спасибо за ответы, но это всё немного не то.
Мелкий
Честно говоря вообще не понял, к чему это
esterio
Это отчасти подходит, но тоже немного не то. Если адрес будет к примеру http://vk.com/something/, то вернёт только vk.com, а должно вернуться vk.com/something. Попробую перефразировать вопрос. Мне нужно из исходной ссылки убрать "http://" | "https://" и убираем последний слеш, если он есть.
Нужно что-то типа:
PHP:
скопировать код в буфер обмена
  1.  
  2. $clean_url = preg_replace('/ЗДЕСЬ_РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ/', 'ВЫРАЖЕНИЕ ДЛЯ ЗАМЕНЫ', 'http://vk.com/something/');
  3. echo $clean_url;
  4. // vk.com/something
  5.  


Как обрезать "http://" | "https://" вроде разобрался. Сделал вот так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $clean_url = preg_replace('/^(http:\/\/|https:\/\/)*(.*)$/', '\2', 'http://vk.com/something/');
  3.  

Но как убрать последний слеш при его наличии - не могу придумать =((((

(Отредактировано автором: 13 Декабря, 2013 - 09:50:39)

 
 Top
Panoptik
Отправлено: 13 Декабря, 2013 - 09:59:33
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. $clean_url = preg_replace('~^https?://|/$~', '', 'http://vk.com/something/');
  3.  

(Отредактировано автором: 13 Декабря, 2013 - 10:04:37)



-----
Just do it
 
 Top
froosty
Отправлено: 13 Декабря, 2013 - 10:05:12
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Февр. 2012  
Откуда: Донецк, Украина


Помог: 0 раз(а)




Panoptik, то что нужно. Огромное спасибо =)
 
 Top
Мелкий Супермодератор
Отправлено: 13 Декабря, 2013 - 12:10:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




froosty пишет:
Если адрес будет к примеру http://vk.com/something/, то вернёт только vk.com, а должно вернуться vk.com/something

А теперь сравните с исходной задачей:
froosty пишет:
можно было бы достать vk.com, независимо от того, в каком из выше перечисленных видов хранится значение.

Следовательно, если в строке содержится vk.com - то можно сразу выносить вердикт - там есть vk.com.


-----
PostgreSQL DBA
 
 Top
froosty
Отправлено: 13 Декабря, 2013 - 17:53:03
Post Id


Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Февр. 2012  
Откуда: Донецк, Украина


Помог: 0 раз(а)




Мелкий пишет:
froosty пишет:
Если адрес будет к примеру http://vk.com/something/, то вернёт только vk.com, а должно вернуться vk.com/something

А теперь сравните с исходной задачей:
froosty пишет:
можно было бы достать vk.com, независимо от того, в каком из выше перечисленных видов хранится значение.

Следовательно, если в строке содержится vk.com - то можно сразу выносить вердикт - там есть vk.com.

Сори, видимо неверно сформулировал вопрос. vk.com писал для примера, но забыл об этом упомянуть)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB