使用PHP在页面中显示时,从URL中删除+(加号)

时间:2016-12-23 16:13:20

标签: php

我已创建了一个功能,因此我可以显示网址的特定部分:

function PageName() {
return substr($_SERVER["REQUEST_URI"],strrpos($_SERVER["SCRIPT_NAME"],"/")+10,strrpos($_SERVER["SCRIPT_NAME"],"/")-4);
}

如果网址为domain.com/my-pages/The+Title/go/

,我可以显示 The + Title

如果标题是一个单词,它的效果很好,但在上面的例子中,它是带有+号的两个单词。

我尝试在末尾添加 str_replace(“+”,“”,PageName),用空格替换加号,但似乎不起作用:

function PageName() {
return substr($_SERVER["REQUEST_URI"],strrpos($_SERVER["SCRIPT_NAME"],"/")+10,strrpos($_SERVER["SCRIPT_NAME"],"/")-4,str_replace("+"," ",PageName));
}

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

要解码+,最好使用urldecode,因为这就是您正在做的事情:解码网址格式。

此外,表达式中的+10使您的解决方案不能重复使用。也许您知道该标题位于URL中的哪个位置(计算正斜杠)。在这种情况下,这可能更有用作为解决方案:

// $_SERVER["REQUEST_URI"] = "domain.com/my-pages/The+Title/go/";

function pageName($url) {
    return urldecode(explode("/", $url)[2]); // adapt the 2 to what you need.
}

echo pageName($_SERVER["REQUEST_URI"]);