сопоставление URL со строкой запроса - PullRequest
0 голосов
/ 03 октября 2011

Мне нужен кусок кода, который в основном выполняет задачу сопоставления URL.Я перечислил 2 сценария ниже, чтобы понять, как мне это нужно.

Соответствующий URL может / не может содержать подкаталог, поэтому есть 2 сценария.

http://example.com/sub-dir/?pgid=1
http://example.com/sub-dir/?pgid=1&opt2=2
http://example.com/sub-dir/?opt2=2&pgid=1
http://example.com/sub-dir/?pgid=1&opt2=2&opt3=3
http://example.com/sub-dir/?opt2=2&pgid=1&opt3=3
http://example.com/sub-dir/?opt2=2&opt3=3&pgid=1

should match => http://example.com/sub-dir/?pgid=1

Как я могу достичь вышеупомянутой вещи, помощь оценена.Спасибо.

Ответы [ 3 ]

0 голосов
/ 03 октября 2011

Полагаю, вы имеете в виду что-то вроде этого:

$input = array('http://example.com/?pgid=1',
               'http://example.com/?pgid=1&opt2=2',
               'http://example.com/?opt2=2&opt3=3&pgid=1',
               'http://example.com/sub-dir/?opt2=2&opt3=3&pgid=1');


foreach($input as $i){

    $url = parse_url($i);
    echo $url['scheme'].'://'.$url['host'].$url['path'];
    parse_str($url['query'],$query);
    echo 'pgid='.$query['pgid'];
    echo '<br/>';

}

Очевидно, вам следует настроить это в соответствии с вашими личными потребностями, но это показывает, как вы можете извлечь pgid и перестроить URL только с этим параметром.

После этого вы можете выполнить сопоставление, возможно, просто используя $query['pgid'] или, возможно, используя новый URL.

0 голосов
/ 03 октября 2011

вы можете использовать parse_url и parse_str :

$url = parse_url('http://example.com/?pgid=1&opt2=2&opt3=3');
$against = parse_url('http://example.com/?pgid=1');

$folder = $url['path'];
$query = parse_str($url['query']);
$pgidout = $pgid;
$query = parse_str($against['query']);


if(($url['path'] == $against['path']) && ($pgid == $pgidout)){
    echo "matched";
} else {
    echo "not matched";
}
0 голосов
/ 03 октября 2011

Регулярное выражение для mach это URL: \?pgid=1$

Как я понимаю, вам не нужны никакие другие параметры строки запроса в вашем URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...