How to grab URL parameters using PHP?

亡梦爱人 提交于 2019-11-28 10:00:57

问题


I'm trying to grab each URL parameter and display them from first to last, but I want to be able to display any of the parameters anywhere on the page. How can I do this? What do I have to add or modify on my script?

Here is an example of a URL value.

http://www.localhost.com/topics/index.php?cat=3&sub1=sub-1&sub2=sub-2&sub3=sub-3&sub4=sub-4

Here is my PHP script.

$url = $_SERVER['QUERY_STRING'];
$query = array();

if(!empty($url)){
  foreach(explode('&', $url) as $part){
    list($key, $value) = explode('=', $part, 2);
    $query[$key] = $value;
  }
}

回答1:


You don't need to do that manually, PHP already provides this functionality in the $_GET global variable:

<?php
    foreach($_GET as $key => $value)
        echo $key . " : " . $value;
?>



回答2:


If it is a GET request, then all the params will be in $_GET. A form POST will be in $_POST. Both are contained in $_REQUEST.




回答3:


You're looking for the $_GET superglobal

 foreach ($_GET as $key => $value) {
    echo $key . ' -- ' . $value;
}

You can access any $_GET values by using this code $_GET['sub1'] which will return sub-1




回答4:


There is a much simpler way to do this rather than using a loop. Use the built in function parse_str(). It will split the request uri into key => value pairs. Example:

$url = "cat=3&sub1=sub-1&sub2=sub-2&sub3=sub-3&sub4=sub-4";
$query = array();
parse_str( $url, $query );
print_r($query);


来源:https://stackoverflow.com/questions/3508450/how-to-grab-url-parameters-using-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!