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
Форумы портала PHP.SU :: Версия для печати :: Не получается регулярка на проверку URL
Форумы портала PHP.SU » » Вопросы новичков » Не получается регулярка на проверку URL

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

1. xokkeist - 14 Апреля, 2013 - 15:42:21 - перейти к сообщению
Что-то уже мозг кипит, не пойму как справиться... Есть ссылка в $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.  
2. Medallion - 14 Апреля, 2013 - 15:46:46 - перейти к сообщению
Напиши что есть на входе, и что нужно получить на выходе, не пойму,
3. xokkeist - 14 Апреля, 2013 - 15:59:05 - перейти к сообщению
Medallion пишет:
Напиши что есть на входе, и что нужно получить на выходе, не пойму,


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



на выходе мне нужно чтоб в $vk_url лежала ссылка вида http://www[dot]vk[dot]com/id1 независимо от того как вводилось значение
4. _Dark_ - 14 Апреля, 2013 - 16:26:59 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. preg_match('/id[0-9]+/', $_REQUEST['vk_url'], $matches);
  2. $url = "http://vk.com/{$matches[0]}";

Может есть решение правильней, не очень с регулярками.
5. snikers987 - 14 Апреля, 2013 - 16:48:25 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. preg_match('#^http\://(www\.)?vk\.com/(.+)$#is', $_REQUEST['vk_url'], $matches);
  2. echo 'http://www.vk.com/'.$matches[2];
  3.  
  4.  

?
6. Medallion - 14 Апреля, 2013 - 17:00:33 - перейти к сообщению
Я думаю простая функция попрактичней:

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.  
7. _Dark_ - 14 Апреля, 2013 - 17:38:01 - перейти к сообщению
Это далеко не «попрактичней».
А адрес еще и vkontakte.ru может быть.
8. Medallion - 14 Апреля, 2013 - 18:17:14 - перейти к сообщению
_Dark_ пишет:
Это далеко не «попрактичней».
А адрес еще и vkontakte.ru может быть.


Может быть, но в вопросе я не увидел этого.

 

Powered by ExBB FM 1.0 RC1