我需要在没有GET参数的情况下找到我所包含的文件的文件名。
例如为: 如果当前网址为http://www.mysite.com/folder/file.php?a=b&c=d, 我想要file.php返回
我发现了什么:
basename($_SERVER['REQUEST_URI'])
返回:
file.php?a=b&c=d
在我的情况下: 我在购物车的部分中使用了表单中的文件名,因此每次单击“减少产品数量”按钮时,它会将表单的GET参数(productId和action)添加到结尾处。网址: file.php A = B&安培; C = d A = B&安培; 13 C = d A = B&安培; 13 C = d A = B和C = d ...
我知道我可以简单地在'?'
上爆炸或类似的东西$file = explode("?", basename($_SERVER['REQUEST_URI']))
并使用数组的第一部分,但我似乎更容易回忆一些事情,但无法再找到代码..
我是PHP的新手,所以对您的代码的解释将不胜感激。
谢谢, V
答案 0 :(得分:11)
您可以使用parse_url。在您的情况下,您可以使用:
$url = parse_url($url, PHP_URL_PATH);
要获取文件名,您可以执行以下操作:
$url = explode('/', parse_url($url, PHP_URL_PATH));
$url = end($url);
答案 1 :(得分:10)
也许您正在寻找$_SERVER['PHP_SELF']
。
请注意,它的开头有一个'/'字符。
答案 2 :(得分:5)
你试过一个简单的basename(__FILE__);
吗?这将为您提供代码所在位置的文件名,因为它位于磁盘上。
要获取请求的文件,您可以使用basename($_SERVER['SCRIPT_NAME']);
。这将始终获取所请求的文件,而不是包含代码的文件。
答案 3 :(得分:2)
basename($_SERVER['SCRIPT_NAME']);
这样就可以了。
此外,了解一些给定的变量总是好的。 php文件中的以下片段非常有用。
<pre><?php
print_r($_SERVER);
?></pre>
答案 4 :(得分:1)
basename(parse_url($url,PHP_URL_PATH));
parse_url($ url,PHP_URL_PATH)擦除参数。 basename()获取路径的文件名。
答案 5 :(得分:0)
查看$_SERVER
中的其他一些值。
也许$_SERVER["PHP_SELF"]
或$_SERVER["SCRIPT_NAME"]
会返回您想要的内容。
答案 6 :(得分:0)
这是我发现的最接近的。我是这样做的:
$url = parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH);
$url = explode('/', parse_url($url, PHP_URL_PATH));
$url = end($url);
error_log($url);
答案 7 :(得分:0)
最适合我的解决方案:
x=np.pi/2
答案 8 :(得分:-1)
获取没有参数的脚本名称的唯一方法是发出POST请求