来的页面的URL看起来是这样的:PHP - 获取URL参数重新排列阵列
的“http://本地主机/测试网站/ ID/1/friend_id/32/MSG_ID/5/CATEGORY_ID/40"
我想剥离这些变量(ID/1,friend_id/32,MSG_ID/5等)和使它们成为一个这样的数组:
$params = array('id' => 1, 'friend_id' => 32, 'msg_id' => 5, 'category_id' => 40)
这样我可以像这样访问这些值:
$params['id']; $params['friend_id'];
我以为我在某处使用下面的代码,但它没有太大的帮助。
$keys = explode('/', $url);
$k2 = $keys;
$result = array();
foreach ($keys as $k => $v) {
$result[$v] = next($k2);
}
array_pop($result);
print_r($result);
我会得到从上面的代码的输出如下:
Array
(
[id] => 1
[1] => friend_id
[friend_id] => 32
[32] => msg_id
[msg_id] => 5
[5] => category_id
[category_id] => 40
)
有没有人这样做之前?我如何修改上面的代码以使其正常工作?或者有没有人有关于如何做到这一点的其他想法?
我真的很感谢任何帮助, 谢谢!
有你为什么不使用URI参数的原因是什么?即:'http:// localhost/testSite?id = 1&friend_id = 32&msg_id = 5&category_id = 40'这个数组只是'$ _GET'或'$ _REQUEST' – cegfault
@cegfault不,没有什么特别的理由。我只是试验mod_rewrite和PHP。 – user1302430
如果您想在HTTPD级别执行此操作,请在.htaccess中进行,而不是重写url,您可以将其保留为原样并将其加载到Apache环境变量中(http://httpd.apache.org/docs/2.2/ env.html),它将在$ _SERVER(http://php.net/manual/en/function.getenv.php)超全局中可用。 – jacob