PHP从路径中删除最后的“/”。

5

这是我的代码

 $method = $_SERVER['PATH_INFO'];

这是我的路径:

http://localhost:8082/XXXX/controllers/User.php/newUser?name=hello

该方法的结果是/newUser。我希望只有newUser,没有/。请问你能帮我吗?
4个回答

6

你想对要使用的变量使用 ltrim 吗?对我来说这似乎是最简单的方法。

$var = ltrim($var,"/");

1
对于你的努力点个赞,但是已经有一个人在你之前回答了,公平起见应该接受他/她的回答,请原谅我,谢谢。 - Marco Dinatsoli

4
$method = ltrim($_SERVER['PATH_INFO'], '/');

1
你是第一个回答的人,加一分。当系统允许时,我会接受这个答案。非常感谢。 - Marco Dinatsoli
我几乎确定第一次看到它时是使用stripslashes。据我所知,如果没有投票,编辑不会被跟踪? - exussum
作为额外的预防措施,您可能需要考虑过滤 $_SERVER 输入 filter_input(INPUT_SERVER, "PATH_INFO", FILTER_SANITIZE_URL)。有关更多详细信息,请参见 filter_input() - War10ck
@War10ck 是的,没错,他也应该进行相同的净化,但 OP 的问题只是关于从开头删除“/”字符。 - Legionar

3
$withoutSlash = substr($_SERVER['PATH_INFO'], 1);

1
加一份努力,但是有一个人在你之前回答了,接受他/她的答案是公平的,请原谅我,谢谢。 - Marco Dinatsoli

2

也许你的问题已经存在:

网址:PHP如何删除路径的最后一部分

一个解决方案:

 preg_replace("/\/\w+$/i","",__DIR__);
 # Note you may also need to add .DIRECTORY_SEPARATOR at the end.

另一个解决方案:

dirname($path)
Documentation: http://ca3.php.net/dirname

2
加强一下你的努力,但是有一个人在你之前回答了,并且公平地接受了他/她的答案,请原谅我,谢谢。 - Marco Dinatsoli
不用担心 :) 我很高兴你找到了解决方案。还有谢谢你的“加一”。 - MartaGom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接