PHP在URL中获取整个字符串而不是单个参数

问题描述:

If I have a domain e.g. www.example.com/w/

I want to be able to get the whole string of text appended after the URL, I know how to get parameters in format ?key=value, that's not what I'm looking for.

but I would like to get everything after the /w/ prefix, the whole string altogether so if someone appended after the above

www.example.com/w/https://www.nytimes.com/2019/04/17/us/politics/trump-mueller-report.html

I would be able to get https://www.nytimes.com/2019/04/17/us/politics/trump-mueller-report.html

I was thinking of installing codeigniter on my server if that helps, but at the moment I'm just using core php

如果我有一个域,例如 www.example.com/w/

nn

我希望能够在URL之后添加整个文本字符串,我知道如何获取格式参数?key = value,这是 不是我正在寻找的东西。 p>

但是我希望得到/ w /前缀后的所有内容,整个字符串完全如此,如果有人追加上面的 p>

www.example.com/w/ https://www.nytimes.com/2019/04/17/us/politics/trump-mueller-report.html p>

我能够 获取 https://www.nytimes.com /2019/04/17/us/politics/trump-mueller-report.html p>

我想在我的服务器上安装codeigniter,如果这有帮助,但此刻 我只是使用核心php p> div>

You just need to use str_replace()

$str = "www.example.com/w/https://www.nytimes.com/2019/04/17/us/politics/trump-mueller-report.html";
$str2 =  str_replace('www.example.com/w/', '', $str);
echo $str2;

Output

https://www.nytimes.com/2019/04/17/us/politics/trump-mueller-report.html 

Read more about str_replace()

Try this, with strpos and substr

$str = "www.example.com/w/https://www.nytimes.com/2019/04/17/us/politics/trump-mueller-report.html";
echo $str.'<pre>';
$start =  strpos($str, '/w/');
echo substr($str, $start + 3);die;

Output:

www.example.com/w/https://www.nytimes.com/2019/04/17/us/politics/trump-mueller-report.html

https://www.nytimes.com/2019/04/17/us/politics/trump-mueller-report.html

strpos() will give you first occurrence of /w/ and from there you can do substr with +3 to remove /w/

OR Try this, with strstr and str_replace

$str = "www.example.com/w/https://www.nytimes.com/2019/04/17/us/politics/trump-mueller-report.html";
echo $str.'<pre>';
$str1 =  strstr($str, '/w/');
echo $str1.'<pre>';
$str2 = str_replace('/w/', '', $str1);
echo $str2.'<pre>';die;

Output:

www.example.com/w/https://www.nytimes.com/2019/04/17/us/politics/trump-mueller-report.html

/w/https://www.nytimes.com/2019/04/17/us/politics/trump-mueller-report.html

https://www.nytimes.com/2019/04/17/us/politics/trump-mueller-report.html

strstr() will give you substring with given /w/ and use str_replace() to remove /w/from new string