Preg_Match строка в виде URL - PullRequest
       9

Preg_Match строка в виде URL

0 голосов
/ 14 июля 2009

У меня есть URL в виде строки. Как мне сопоставить номера после VideoID. Также VideoID может появляться в разных точках URL. Но потом я буду беспокоиться об этом, поскольку я даже не могу этого сделать.

$string = 'http://example.com/index.php?action=vids.individual&VideoID=60085484';

preg_match('/(?<VideoID>)=/', $string, $matches);

print_r($matches);

... Оставьте немного изменений для новичка. :)

Ответы [ 3 ]

3 голосов
/ 14 июля 2009

Просто используйте встроенный parse_url / parse_str

$string = 'http://example.com/index.php?action=vids.individual&VideoID=60085484';
$URL = parse_url($string);
parse_str($URL['query'],$Q);
print_r($Q);

1010 * возвращается *

Array (  
    [action] => vids.individual  
    [VideoID] => 60085484
)
1 голос
/ 14 июля 2009
/(?:\?|&)VideoID=([0-9]+)/   # get just the ID, stored in \\1
/(?:\?|&)(VideoID=[0-9]+)/   # get VideoId=ID, stored in \\1

При условии, что ваш URL сформирован правильно, ему всегда будет предшествовать либо ?, либо &, а в вашем примере URL строго числовой, поэтому он будет соответствовать действительному идентификатору до следующего сегмента. URL.

0 голосов
/ 14 июля 2009
$string = 'http://example.com/index.php?action=vids.individual&VideoID=60085484&somethingelse';
$s = explode("VideoID=",$string);
print preg_replace("/[^0-9].*/","",$s[1]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...