我有一个php脚本网页让我们说abc.php @ ['localhost / abc.php'] 在abc.php我使用了这个
<?php
echo $link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
?>
我将此页面包含在另一个php网页中,例如xyz.php @ [localhost / 123 / xyz.php] 但是当我加载xyz.php网页时,我得到了这个输出
http://localhost/abc.php
虽然我想让我的xyz.php网页给我输出
http://localhost/123/xyz.php
或者,如果xyz.php页面中的任何GET请求都是这样的
http://localhost/123/xyz.php?q=searchthis
我尝试了很多东西,但无法解决这个问题
答案 0 :(得分:1)
尝试以下方法:
$uri = $_SERVER['REQUEST_URI'];
这将为您提供所请求的目录和文件名。如果您使用mod_rewrite
,这非常有用,因为它会告诉您用户正在查看的页面。
如果您需要实际的文件名,可能需要尝试$_SERVER['PHP_SELF']
,魔术常量__FILE__
或$_SERVER['SCRIPT_FILENAME']
。后面的2为您提供了完整的路径(来自服务器的根目录),而不仅仅是您网站的根目录。它们对包含等有用。
$_SERVER['PHP_SELF']
为您提供相对于网站根目录的文件名。
$relative_path = $_SERVER['PHP_SELF'];
$complete_path = __FILE__;
$complete_path = $_SERVER['SCRIPT_FILENAME'];