0

我目前有这个:

$thispage = $_SERVER['QUERY_STRING'];

if($thispage == "i=f" || $thispage == "i=f&p=t" ) echo "active";

虽然,“i=f&p=t”不正确,因为页面如下所示:

i=f&p=t&cid=71&id=161

我的问题是,如果 $_GET 字符串的第一部分是正确的(在本例中为“i=f&p=t”),我该怎么做,那么它将匹配$thispage。我不希望它检查& $_GETs

我希望 $thispage 可以与其他页面一起使用,而不仅仅是上面的示例。我只想检查字符串的第一部分。不是后面的 &

4

4 回答 4

1

你是这个意思吗?

if(strpos($_SERVER['QUERY_STRING'], 'i=f') !== false) {
    echo "active";
}
于 2013-09-24T14:44:38.770 回答
1

我会选择parse_str函数:

parse_str($_SERVER['QUERY_STRING'], $thispage);

if ( $thispage['i'] === 'f' OR ($thispage['i'] === 'f' AND $thispage['p'] === 't') ) {
    echo 'active';
}

更新:

我不希望它检查 & $_GETs

我不知道您为什么不想使用您现在正在处理$_GET查询字符串,但您也可以执行以下操作,这更有意义:

if ( $_GET['i'] === 'f' OR ($_GET['i'] === 'f' AND $_GET['p'] === 't') ) {
    echo 'active';
}
于 2013-09-24T14:43:28.157 回答
0

您可以使用$_GET数组直接访问 url 参数。

var_dump($_GET);

如果你想使用$_SERVER['QUERY_STRING']你可以使用parse_str函数来解析查询字符串:

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";

parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

?>
于 2013-09-24T14:48:22.723 回答
0

如果这确实是您想要做的,那么您实际上是在检查是否

if (substr($_SERVER['QUERY_STRING'], 0, 7) === "i=f&p=t")
于 2013-09-24T14:34:47.357 回答