所以我的 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/