所以我的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
我怎样才能做到这一点它并没有给我" \"?我一直想弄明白,但我无法弄明白。任何帮助将不胜感激。
答案 0 :(得分:2)
dirname($_SERVER["REQUEST_URI"])
是罪魁祸首。此外,您在一台服务器上有子目录HPPCurrent
而在另一台服务器上没有它。在Windows服务器目录路径上,大多使用\
而不是/
您可以使用
删除\
rtrim(dirname($_SERVER["REQUEST_URI"],'\\') // Will remove \ if present
注意:不要被\\
弄糊涂,它仍然会移除单个,你会在那个表达式中看到两个,因为第一个是逃避第二个。