URL中的变量和变量操作

时间:2014-02-03 14:12:40

标签: php regex string url

您好,我需要捕获所有变量及其值。

网址不一定是www.sample.com?a=1&b=2,可以是www.sample.com/a=1/b=2www.sample.com/a=1&b=2&c=3,然后以这种方式有效,快速和优先。好用,这样就不会有任何数据丢失?

我已经探索了strtokstrpossubstr等功能。但不是这些功能是为了我的目的。任何帮助都将受到高度赞赏。

我在考虑在循环中使用strtok= =的长度a then b so on,这样我将使用一个函数获取a=&

之间的值

1 个答案:

答案 0 :(得分:0)

使用以下代码开始.htaccess文件:

RewriteEngine on 
## Internally rewrite extensionless file requests to .php files ## 
# If the requested URI does not contain a period in the final path-part 
RewriteCond %{REQUEST_URI} !(\.[^./]+)$ 
# and if it does not exist as a directory 
RewriteCond %{REQUEST_FILENAME} !-d 
# and if it does not exist as a file 
RewriteCond %{REQUEST_FILENAME} !-f 
# then add .php to get the actual filename 
RewriteRule ^(.*)/? index.php?q=$1 [L]

如果网址不是目录或文件,则会将完整网址发送至$_GET[q] 之后,您可以选择几个选项。我举个例子:

function gatherUrlInfo($url){
    $url = trim($url, "/"); remove all slashes in the beginning or end
    $url = explode("/", $url); // get 'a=1', 'b=2', .. seperately
    $result = array();
    foreach($url as $k=>$value){
        $values = explode("=", $value); // get the a and 1  seperately
        $result[$values[0]] = $values[1];
    }
}

print_r( gatherUrlInfo($_GET['q']) );// will be array("a"=>'1', "b"=>'2');