2011-01-16 13 views
0

から抽出した文字列私はこのようなURLの持っている:するpreg_match - URL

http://localhost/adminator/index.php?section=1portal&tool=2firmyhttp://localhost/adminator/index.php?section=1portal&tool=2firmy&passedID=26

を、私はSECTIONおよびツールパラメータを抽出することができるようにしたいです。

私はこの思い付いてきました:

preg_match('/(.*)(section=)(.*)(&tool=)(.*)/', $_SERVER['HTTP_REFERER'], $matchesarray); 
echo $section = $matchesarray[3].'<br />'; 
echo $tool = $matchesarray[5]; 

しかし、これは最初のURLではなく、第二のためにのみ動作し、私はこれ持っているより:

preg_match('/(.*)(section=)(.*)(&tool=)(.*)(&)(.*)/', $_SERVER['HTTP_REFERER'], $matchesarray); 
echo $section = $matchesarray[3].'<br />'; 
echo $tool = $matchesarray[5]; 

そしてため、この唯一の作品を最初のURLではなく、2番目のURL。

どのようにして両方のケースで動作させることができますか?ありがとう。

+0

のためのグループ1と2をチェックし、動作するはず?または$ _GET ['section'] – miqbal

答えて

1
$url = 'http://localhost/adminator/index.php?section=1portal&tool=2firmy&passedID=26'; 
$url = parse_url($url, PHP_URL_QUERY); 
parse_str($url, $output); 
echo $output['section']; // 1portal 
echo $output['tool']; // 2firmy
+0

これは、ありがとう! – Mike

0

$ _GET ['section']と$ _GET ['tool']を使用できませんか?

+0

これはAJAX呼び出しのものなので、私は傾けることができます。 – Mike

0

'section=(.+?).*?&tool=(.+?)'あなたはパラメータを取得するために$ _SERVER [ 'QUERY_STRING']を使用していないのはなぜ値

+0

警告:preg_match()[function.preg-match]:デリミタはC:\ Wamp \ www \ adminator \ scripts \ it-editWindow.phpの英数字またはバックスラッシュであってはいけません。あなたのコード=/ – Mike