來的頁面的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