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]   

> Без описания
xokkeist
Отправлено: 14 Апреля, 2013 - 15:42:21
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Апр. 2013  


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




Что-то уже мозг кипит, не пойму как справиться... Есть ссылка в $vk_url, юзер может ввести ее в виде "id1", либо "vk.com/id1", либо "http://www.vk.com/id1", как в итоге привести ее к одному виду - http://www[dot]vk[dot]com/id1 с помощью регулярного выражения? пока получаются нагромождения непонятные вида
PHP:
скопировать код в буфер обмена
  1.  if (preg_match("/vk.com/i", $vk_url))
  2.         {
  3.         if (preg_match("/http:\/\//i", $vk_url))
  4.        
  5.                 else
  6.                
  7.         {
  8.                 $vk_url = "http://" . $vk_url;
  9.  
  10.         }
  11.                
  12.         }
  13.        
  14.         else {
  15.        
  16.         $vk_url = "http://www." . $vk_url;
  17.  
  18.         }
  19.  
  20.  
 
 Top
Medallion
Отправлено: 14 Апреля, 2013 - 15:46:46
Post Id



Частый гость


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


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




Напиши что есть на входе, и что нужно получить на выходе, не пойму,
 
 Top
xokkeist
Отправлено: 14 Апреля, 2013 - 15:59:05
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Апр. 2013  


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




Medallion пишет:
Напиши что есть на входе, и что нужно получить на выходе, не пойму,


На входе пользователь в веб-форме вводит свой ID вконтакте, он может его ввести просто - id1 может ввести vk.com/id1 или полностью http://www[dot]vk[dot]com/id



на выходе мне нужно чтоб в $vk_url лежала ссылка вида http://www[dot]vk[dot]com/id1 независимо от того как вводилось значение
 
 Top
_Dark_
Отправлено: 14 Апреля, 2013 - 16:26:59
Post Id


Частый гость


Покинул форум
Сообщений всего: 231
Дата рег-ции: Окт. 2011  


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

[+]


PHP:
скопировать код в буфер обмена
  1. preg_match('/id[0-9]+/', $_REQUEST['vk_url'], $matches);
  2. $url = "http://vk.com/{$matches[0]}";

Может есть решение правильней, не очень с регулярками.

(Отредактировано автором: 14 Апреля, 2013 - 16:28:57)

 
 Top
snikers987
Отправлено: 14 Апреля, 2013 - 16:48:25
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


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




PHP:
скопировать код в буфер обмена
  1. preg_match('#^http\://(www\.)?vk\.com/(.+)$#is', $_REQUEST['vk_url'], $matches);
  2. echo 'http://www.vk.com/'.$matches[2];
  3.  
  4.  

?


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Medallion
Отправлено: 14 Апреля, 2013 - 17:00:33
Post Id



Частый гость


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


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




Я думаю простая функция попрактичней:

PHP:
скопировать код в буфер обмена
  1.  
  2. $id = 'vk.com/id17';
  3. $out = explode('com/', $id);
  4. echo $out[1];
  5.  

(Добавление)
xokkeist пишет:
на выходе мне нужно чтоб в $vk_url лежала ссылка вида http://www[dot]vk[dot]com/id1 независимо от того как вводилось значение


PHP:
скопировать код в буфер обмена
  1.  
  2. $www = 'http://www.vk.com/' + $out[1];
  3.  
 
 Top
_Dark_
Отправлено: 14 Апреля, 2013 - 17:38:01
Post Id


Частый гость


Покинул форум
Сообщений всего: 231
Дата рег-ции: Окт. 2011  


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

[+]


Это далеко не «попрактичней».
А адрес еще и vkontakte.ru может быть.
 
 Top
Medallion
Отправлено: 14 Апреля, 2013 - 18:17:14
Post Id



Частый гость


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


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




_Dark_ пишет:
Это далеко не «попрактичней».
А адрес еще и vkontakte.ru может быть.


Может быть, но в вопросе я не увидел этого.
 
 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