【问题标题】:Get current filename with URL parameters使用 URL 参数获取当前文件名
【发布时间】:2013-05-13 18:25:12
【问题描述】:

假设用户正在加载以下页面:www.example.com/myDirectory/myPage.php?answer=yes
我想使用 PHP 从中获取myPage.php?answer=yes。但是,basename($_SERVER['PHP_SELF']) 仅返回 myPage.php。我该怎么做?

【问题讨论】:

  • PHP parse_url() 将返回一个域、文件和获取变量的数组。

标签: php filenames


【解决方案1】:

您可以在get 之后将查询字符串附加为environment variable

$myurl = basename($_SERVER['PHP_SELF']) . "?" . $_SERVER['QUERY_STRING'];

如果需要考虑没有查询字符串的可能性,添加条件测试:

$myurl = strlen($_SERVER['QUERY_STRING']) ? basename($_SERVER['PHP_SELF'])."?".$_SERVER['QUERY_STRING'] : basename($_SERVER['PHP_SELF']);

【讨论】:

  • 这将返回 /myDirectory/myPage.phpanswer=yes。我要myPage.php?answer=yes
  • @Mooseman 您可以在/ 上爆炸,并获取结果数组中的最后一个元素
  • 唯一的问题是如果没有参数存在,我们仍然有?
  • 干! $myurl = basename($_SERVER['PHP_SELF']).(strlen($_SERVER['QUERY_STRING']) ? "?".$_SERVER['QUERY_STRING'] : "");
【解决方案2】:

更容易吗?:

basename($_SERVER['REQUEST_URI'])

【讨论】:

  • 我不知道;告诉我!
【解决方案3】:

对于带有尾随参数的 URL,以下内容会将当前 URL 的第一部分(即 ? 之前的部分)放在变量 $current_url[0] 中,然后将其打印出来。

<?
$current_url = explode("?", $_SERVER['REQUEST_URI']);
echo $current_url[0] ;
?>

【讨论】:

    【解决方案4】:
    $_SERVER['QUERY_STRING']
    

    会给你参数

    【讨论】:

      猜你喜欢
      • 2011-05-26
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 2017-04-09
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      相关资源
      最近更新 更多