我试图得到在我的url中显示的最后一个变量名,并使用它来确定我的页面上显示的内容。例如,下面是我的url:
http://mysite.php/catalog/?department=123&category=456&sub_category=789
如果URL显示sub_category
,那么我想显示所有将被视为子类别的内容。但是,如果url只显示:
http://mysite.php/catalog/?department=123&category=456
然后我想显示只属于类别的内容。
获得最后一个变量名后,我将使用switch语句来显示内容。我一直在使用这段代码,但它只得到第一个变量名,而不是最后一个?
switch(key($_GET))
{
case 'department':
print('show department');
break;
case 'category':
print('show category');
break;
case 'sub_category':
print('show sub_category');
break;
}
也许这不是最好的方法,如果你有比使用switch语句更好的方法,请告诉我;)
不要依赖查询字符串参数的顺序。更好的方法是按照特定的顺序检查参数是否存在:
if (isset($_GET["sub_category"]))
{
print('show sub_category');
}
elseif (isset($_GET["category"]))
{
print('show category');
}
elseif (isset($_GET["department"]))
{
print('show department');
}
else
{
print('show error');
}
在你的分类中添加一个条件,如下所示:
case 'category':
if (isset($_GET['sub_category'])) {
print('show sub_category');
} else {
print('show category');
}
break;
如果您正确配置了$_SERVER
,我想说这样做的最佳方法是:
<?php
$qs = $_SERVER['QUERY_STRING'];
parse_str($qs, $data);
$keys = array_keys($data);
$last = count($keys)-1;
echo $keys[$last];