$ _SERVER ['REQUEST_URI']详细信息

时间:2011-11-04 11:48:38

标签: php regex

让我们说我的请求网址:

http://google.com?asdgeez~user=USERNAME~hash=SECRET_TOKKEN

我想选择数据,如$ data [1],$ data [2],$ data [3] 它应该看起来像:

Array
(
    [0] => http://google.com?asdgeez
    [1] => USERNAME
    [2] => SECRET_TOKKEN
)

所以基本上它需要删除 ~user = ~hash = 部分。 对于功能使用,它可以帮助我分别验证每个值。

任何想法怎么做?

3 个答案:

答案 0 :(得分:0)

嗯......你可以这样试试:

 $data = preg_split('#~(:?\w+=)?#', $_SERVER['REQUEST_URI']);

答案 1 :(得分:0)

尝试使用regexp:

$input = 'http://google.com?asdgeez~user=USERNAME~hash=SECRET_TOKKEN';
preg_match('/^(.*?)~\w+=(.*?)~\w+=(.*)$/', $input, $matches);

var_dump($matches);

/*
array(4) {
  [0]=>
  string(58) "http://google.com?asdgeez~user=USERNAME~hash=SECRET_TOKKEN"
  [1]=>
  string(25) "http://google.com?asdgeez"
  [2]=>
  string(8) "USERNAME"
  [3]=>
  string(13) "SECRET_TOKKEN"
}
*/

答案 2 :(得分:0)

$uri = "http://google.com?asdgeez~user=USERNAME~hash=SECRET_TOKKEN";

$str1 = explode('~user=', $uri);
$str2 = explode('~hash=', $str1[1]);

$final = array_merge($str1[0], $str2[0], $str2[1]);