2

我对在我的 wordpress 应用程序中获取 URI 感到震惊,并且缺乏 PHP 知识使我的进度缓慢。我有这个网址

http://abc.com/my-blog/abc/cde 

我需要创建一个类似的 URL

http://abc.com/my-blog/added-value/abc/cde

我的 wordpress 博客的 URL在哪里 http://abc.com/my-blog,我可以使用以下方法轻松获取

home_url()

我可以使用 PHP$_SERVER["REQUEST_URI"]来获取请求 URI,它将作为

/my-blog/abc/cde

而且我没有根据我的要求直接增加价值的方法

有什么方法可以在 PHP 或 Wordpress 中轻松实现这一点,我可以获得以下信息

  1. 主页网址
  2. URL 的其余部分

所以最后我可以做以下

Home-URL+ custom-value+Rest part of the URL

我的困惑

  1. 在我的本地设置$_SERVER["REQUEST_URI"]中,wordpress 的安装目录/my-blog/abc/cde在哪里/my-blog,我可以轻松跳过第一级。
  2. 在生产服务器上,它与/my-blog不会成为 URL 的一部分不同。
4

5 回答 5

2

非常简短:

<?php

$url = "http://abc.com/my-blog/abc/cde";

$parts = parse_url($url);

$path = explode("/", $parts["path"]);
array_splice($path, 2, 0, array("added-part")); //This line does the magic!

echo $parts["scheme"] . "://" . $parts["host"] . implode("/",$path);
于 2012-11-20T16:40:07.637 回答
0

好的,所以如果$addition是您想要的中间位,并且$uri是您从中获得的$_SERVER["REQUEST_URI"]...

$addition = "MIDDLEBIT/";
$uri = "/my-blog/abc/cde";

$parts = explode("/",$uri);
$homeurl = $parts[1]."/";
for($i=2;$i<count($parts);$i++){
    $resturl .= $parts[$i]."/";
}
echo $homeurl . $addition . $resturl;

应该打印:

我的博客/MIDDLEBIT/abc/cde/

于 2012-11-20T16:38:06.547 回答
0

您可能想要使用爆炸或其他一些刺痛功能。下面的一些例子:

  $urlBits = explode($_SERVER["REQUEST_URI"]);

  //blog address
  $blogAddress = $urlBits[0];

  //abc
  $secondPartOfUri = $urlBits[1];

  //cde
  $thirdPartOfUri = $urlBits[2];

  //all of uri except your blog address
  $uri = str_replace("/my-blog/", "", $_SERVER["REQUEST_URI"]);
于 2012-11-20T16:41:18.737 回答
0

这是在 PHP 中获取当前 url 的可靠方法。

    public static function getCurrentUrl($withQuery = true)
    {
        $protocol = stripos($_SERVER['SERVER_PROTOCOL'], 'https') === false ? 'http' : 'https';
        $uri = $protocol . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

        return $withQuery ? $uri : str_replace('?' . $_SERVER['QUERY_STRING'], '', $uri);
    }
于 2019-08-18T12:23:06.150 回答
-1

您可以使用 wordpress 和get_home_url()将主页 url 存储在变量中

$home_url = get_home_url();

$custom_value = '/SOME_VALUE';

$uri = $_SERVER['REQUEST_URI'];

$new_url = $home_url . $custom_value . $uri;
于 2012-11-20T16:37:03.517 回答