我正在尝试抓取每个网址参数并从头到尾显示它们,但我希望能够在页面的任何位置显示任何参数。我怎样才能做到这一点?我需要在脚本上添加或修改什么内容?
以下是网址值的示例。
http://www.localhost.com/topics/index.php?cat=3&sub1=sub-1&sub2=sub-2&sub3=sub-3&sub4=sub-4
这是我的PHP脚本。
$url = $_SERVER['QUERY_STRING'];
$query = array();
if(!empty($url)){
foreach(explode('&', $url) as $part){
list($key, $value) = explode('=', $part, 2);
$query[$key] = $value;
}
}
答案 0 :(得分:15)
您不需要手动执行此操作,PHP已在$ _GET全局变量中提供此功能:
<?php
foreach($_GET as $key => $value)
echo $key . " : " . $value;
?>
答案 1 :(得分:1)
如果是GET请求,则所有参数都将在$ _GET中。表单POST将在$ _POST中。两者都包含在$ _REQUEST。
中答案 2 :(得分:0)
您正在寻找$_GET
超全球
foreach ($_GET as $key => $value) {
echo $key . ' -- ' . $value;
}
您可以使用此代码$_GET
访问任何$_GET['sub1']
值,该代码将返回sub-1
答案 3 :(得分:0)
有一种更简单的方法可以做到这一点,而不是使用循环。使用内置函数parse_str()。它会将请求uri拆分为key =&gt;价值对。例如:
$url = "cat=3&sub1=sub-1&sub2=sub-2&sub3=sub-3&sub4=sub-4";
$query = array();
parse_str( $url, $query );
print_r($query);