Php 将字符串与basename进行比较

Php 将字符串与basename进行比较,php,string,Php,String,我想知道URL的结尾是否是,例如,?投票 使用basename($\u SERVER['REQUEST\u URI']).PHP\u EOL,我想我可以将其与字符串“?vote”进行比较,但它不起作用 $url = basename($_SERVER['REQUEST_URI']).PHP_EOL; if (strcasecmp($url, "?vote") == 0) { echo "they match"; } else { echo "they DO N

我想知道URL的结尾是否是,例如,
?投票

使用
basename($\u SERVER['REQUEST\u URI']).PHP\u EOL
,我想我可以将其与字符串
“?vote”
进行比较,但它不起作用

 $url = basename($_SERVER['REQUEST_URI']).PHP_EOL;
 if (strcasecmp($url, "?vote") == 0)
  {
    echo "they match";
  }
  else
  {
    echo "they DO NOT match";
  }

访问
?投票
,我们称之为查询字符串,使用PHP,您可以像这样访问
$\u服务器['Query\u String']
。因此,您不需要使用basename。

的访问?投票
,我们称之为查询字符串,使用PHP,您可以像这样访问
$\u服务器['Query\u String']
。所以您不需要使用basename。

怎么样

if ($_SERVER['QUERY_STRING'] == 'vote')
{
    echo "they match";
}
else
{
    echo "they DO NOT match";
}
怎么样

if ($_SERVER['QUERY_STRING'] == 'vote')
{
    echo "they match";
}
else
{
    echo "they DO NOT match";
}

要确定是否设置了
投票
查询参数,请使用:

isset($_GET['vote'])

如果您真的关心紧跟在
之后的参数的位置(您不应该这样做),请将该值与
$\u服务器['QUERY\u STRING']
匹配。具体如何取决于
投票
是否应具有值以及是否应允许其他参数。URL是这样定义的,因此查询中参数的顺序实际上不会对您产生任何影响。

要确定是否设置了
投票
查询参数,请使用:

isset($_GET['vote'])

如果您真的关心紧跟在
之后的参数的位置(您不应该这样做),请将该值与
$\u服务器['QUERY\u STRING']
匹配。具体如何取决于
投票
是否应具有值以及是否应允许其他参数。url是这样定义的,所以查询中参数的顺序对您来说应该不会有任何区别。

为什么不干脆
isset($\u GET['vote'])
?问题是url可能以“?death=123&vote=1&banana=one”结尾,并且它仍然匹配…@Robert Sure,但您需要一个很好的理由来关注这种差异。:)@daidai被设计来处理这样的情况,试试看,不要重新发明轮子。为什么不简单地
isset($\u GET['vote'])
?问题是url可能以“?death=123&vote=1&banana=one”结尾,它仍然匹配…@罗伯特:当然,但你需要一个很好的理由来关注这种差异。:)@daidai设计用于处理这样的情况,尝试一下,不要重新发明轮子。这是真的。:)你可以做一些
preg\u match
ing来避免这种情况。或者,如果
vote
是唯一允许的参数,则可以将问题简化为许多简单的解决方案。但实际上,除非你有很好的理由担心参数在查询字符串中的位置(我真的想不出任何原因),
$\u GET['vote']
无论如何都是这样做的。是的,我认为这个问题本身很模糊。没错。:)你可以做一些
preg\u match
ing来避免这种情况。或者,如果
vote
是唯一允许的参数,则可以将问题简化为许多简单的解决方案。但实际上,除非你有很好的理由担心参数在查询字符串中的位置(我真的想不出任何原因),
$\u GET['vote']
无论如何都是这样做的。是的,我认为这个问题本身很模糊。