PHP - 获取$ _GET字符串的一部分

时间:2013-09-24 14:33:26

标签: php get

我目前有这个:

$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 个答案:

答案 0 :(得分:1)

我会选择parse_str功能:

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

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

<强>更新

  

我不希望它检查&amp; $ _GETs

我不知道为什么你不想使用$_GET如果你现在正在处理查询字符串,但你也可以做以下事情,这更有意义:

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

答案 1 :(得分:1)

你的意思是?

if(strpos($_SERVER['QUERY_STRING'], 'i=f') !== false) {
    echo "active";
}

答案 2 :(得分:0)

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

if (substr($_SERVER['QUERY_STRING'], 0, 7) === "i=f&p=t")

答案 3 :(得分:0)

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

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

?>