PHP $_SERVER ["REQUEST_URI"]返回 "\"

标签 php relative-path filepath

所以我的 php 文件中有以下函数:

 function curPageURL() {
 $pageURL = 'http';
 if (isset($_SERVER["HTTPS"])) {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80" ) {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"]. dirname($_SERVER["REQUEST_URI"]).'/HPP_Receipt.php';
 } else{
 $pageURL .= $_SERVER["SERVER_NAME"].dirname($_SERVER["REQUEST_URI"]).'/HPP_Receipt.php';
  }

  return $pageURL;
 }

在大多数情况下,它似乎工作正常。例如,在我的 WAMP www 文件夹中,如果我在另一个文件夹中有此/HPP_Receipt 文件,则它看起来像这样:

http://localhost/HPPCurrent/HPP_Receipt.php

这是正确的。但是,如果我将其切换回 www 文件夹,则会给出以下结果:

http://localhost\/HPP_Receipt.php

我怎样才能让它不给我“\”?我一直试图弄清楚,但我无法弄清楚。任何帮助将不胜感激。

最佳答案

dirname($_SERVER["REQUEST_URI"])

罪魁祸首是。另外,您在一台服务器上有子目录 HPPCurrent,而在另一台服务器上没有它。在 Windows 服务器上,目录路径大多使用 \ 而不是 /

您可以使用

修剪 \
rtrim(dirname($_SERVER["REQUEST_URI"],'\\')   // Will remove \ if present

注意:不要被 \\ 混淆,它仍然会删除单个,您在该表达式中看到两个,因为第一个是转义第二个一个。

关于PHP $_SERVER ["REQUEST_URI"]返回 "\",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25430654/

相关文章:

php - 动态和静态 HTML 中 div 悬停样式的不同行为

enterprise-library - 使用安全应用程序 block 时到 AzMan XML 存储的相对连接字符串

python - Django 1.8 : Help making filenames RELATIVE

c - 从相对路径获取绝对路径

php - 如何在不添加任何数据的情况下创建 mongodb 数据库集合?

php - cakephp 从助手中访问 View 属性/变量

relative-path - linux -gcc env 上的相对路径解释

winapi - 路径前面的 "\\?\"是什么意思?

c# - 文件路径是url吗?

php - 我如何在 Cakephp 中完全禁用缓存?