这似乎是一个常见的问题,但他们都不是我正在寻找的东西。如果有一个网站:PHP - 获取当前URL
www.example.com/test.php
我想拉 “test.php的”,如果它是这样的:
www.example.com/folder /folder1/test.php
我想再次拉动“test.php”,但一切似乎拉动确切的路径,而不是只是页面。有什么建议么?
这似乎是一个常见的问题,但他们都不是我正在寻找的东西。如果有一个网站:PHP - 获取当前URL
www.example.com/test.php
我想拉 “test.php的”,如果它是这样的:
www.example.com/folder /folder1/test.php
我想再次拉动“test.php”,但一切似乎拉动确切的路径,而不是只是页面。有什么建议么?
$query = $_SERVER['PHP_SELF'];
$path = pathinfo($query);
$what_you_want = $path['basename'];
瞧。
非常非常感谢你! –
没问题,别忘了设置为答案! :) –
更短的版本:'$ what_you_want = basename($ _ SERVER ['PHP_SELF']);' – Cyclone
$file = $_SERVER["SCRIPT_NAME"];
$break = explode('/', $file);
$pfile = $break[count($break) - 1];
这会回到“/folder1/folder2/test.php” –
@Howdy_McGee:你确定吗? '$ pfile'应该只保存'test.php'。 –
@Howdy_McGee经过测试,它适用于我: http://localhost/test1/test2/file.php打印“file.php” –
这将让您所请求的文件名(基于调用,而不是真正的文件的位置的URL - 万一你正在使用mod_rewrite):
$filename = basename($_SERVER['REQUEST_URI']);
对于既http://www.example.com/testing01.php
和http://www.example.com/x/y/z/testing01.php
会给你:
testing01.php
这比接受的答案+1好两倍。 –
它与最上面的答案大致相同,但最常见的答案是更多信息用于分解IMO –
@Howdy_McGee:我不同意。基本的区别是我们真正展现的。你问到“_Getting Current URL_”。根据[文档](http://php.net/manual/en/reserved.variables.server.php):'$ _SERVER ['REQUEST_URI']'获得“_为了访问此页面而给出的URI ;例如'/index.html'._“,而$ _SERVER ['PHP_SELF']'等于”_当前正在执行的脚本的文件名,相对于文档根目录(...)_“,这可能会或可能不等于上述情况。我解释了我的答案(在关于'mod_rewrite'的部分)中的差异。 – Tadeck
为什么当你不要求一个网址这个问题,“当前的URL”为主题?另外,如果有mod_rewrite强制网址www.exemple.com/test,它被重写到test.php,它是test.php还是测试你想要的? – eis