(我搜索过,发现很多关于转换相对于绝对网址的问题,但绝对没有关于绝对网址的问题。)
我想从表单字段中获取输入,最后得到一个相对URL。理想情况下,这将能够处理以下任何输入并以/page-slug
结束。
http://example.com/page-slug
http://www.example.com/page-slug
https://example.com/page-slug
https://www.example.com/page-slug
example.com/page-slug
/page-slug
编辑:我也希望这适用于相对网址为例如/page/post
(即具有多个斜杠的东西)。
答案 0 :(得分:9)
如果您一直在使用网址,请查看parse_url
。具体做法是:
parse_url($url, PHP_URL_PATH)
仅供参考,我根据您的所有输入对其进行了测试,除了以下所有内容之外,它都有效:example.com/page-slug
答案 1 :(得分:2)
试试这个正则表达式。
#^ The start of the string
(
:// Match either ://
| Or
[^/] Not a /
)* Any number of times
#
并用空字符串替换它。
$pattern = '#^(://|[^/])+#';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);
答案 2 :(得分:1)
我认为你想要在主机名后面的URL部分,你可以使用parse_url
:
$path = parse_url($url, PHP_URL_PATH);
请注意,这会在主机名后面显示网址的整个,因此http://example.com/page/slug
会提供/page/slug
。
答案 3 :(得分:0)
如果您了解自己的应用程序,我会以一种简单的方式执行此操作。我会使用正则表达式来搜索
[a-z].([(com|org|net)])