【问题标题】:Is it possible to detect empty request?是否可以检测到空请求?
【发布时间】:2012-05-05 18:01:19
【问题描述】:

如果用户请求“example.com/mypage/”,是否可以看到?或“example.com/mypage/”?

如果查询字符串是符号“?”,我想提供不同的内容存在于请求中。请注意,没有名称或值(例如 ?name=value),只有请求符号“?”。 python 中的解决方案会很好,但 php 也可以接受。

【问题讨论】:

  • 我认为这是一种不好的做法。问号与否,URL 指向同一个资源。
  • 顺便说一句。我不确定这是否可以使用 python,因为这会影响 php 脚本的 url。

标签: php python google-app-engine query-string


【解决方案1】:

在 PHP 中,您可以检查 REQUEST_URI 是否以 ? 结尾。以下三种不同的情况可能对您有用:

if('?' === substr($_SERVER['REQUEST_URI'], -1)){
    // Empty query string with '?'
}else if(false === strpos($_SERVER['REQUEST_URI'], '?')){
    // No ? at all
}else{
    // Some query string exists (check $_GET)
}

【讨论】:

    【解决方案2】:

    检查最后一个字符

    if ('?' === substr($_SERVER['REQUEST_URI'], -1))
    

    【讨论】:

      【解决方案3】:

      拿起$_SERVER['REQUEST_URI'],看看里面有没有问号。

      if(strpos($_SERVER['REQUEST_URI'], "?") >= 0) {
          //Question mark found
      }
      

      【讨论】:

      • 显示有无参数。 OP 正在寻找一个没有参数,只有问号的场景。
      • @cilosis 但是你在网络服务器根目录之后得到了整个调用字符串,包括?。如果你只用 ? 调用 url,它仍然会显示 /file.php?。您只需要检查其中是否有问号。另外,检查其他答案,我并不孤单。
      猜你喜欢
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 2012-01-03
      • 2020-11-27
      • 1970-01-01
      相关资源
      最近更新 更多