您好,我需要捕获所有变量及其值。
网址不一定是www.sample.com?a=1&b=2
,可以是www.sample.com/a=1/b=2
或www.sample.com/a=1&b=2&c=3
,然后以这种方式有效,快速和优先。好用,这样就不会有任何数据丢失?
我已经探索了strtok
,strpos
,substr
等功能。但不是这些功能是为了我的目的。任何帮助都将受到高度赞赏。
我在考虑在循环中使用strtok
和=
=
的长度a then b so on
,这样我将使用一个函数获取a=
和&
答案 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');