这是我到目前为止的代码。
$main = 'example.com';
$removed = str_ireplace("cant figure out what to put in here...", " ", "$main");
echo $removed;`
我知道我可以将 .com 放在第一个参数中,但我试图删除数百个不同的 TLD。
使用parse_url删除 URL,并使用http-build-url在删除主机后重新构建它。
一个简单的例子(警告 - 可能不起作用,我会在之后解释为什么)是。
$url = "http://example.com:port/path?query=parts&so=on";
$aParts = parse_url($url);
$aParts['host'] = '';
$removed = http_build_url($aParts);
echo $removed;
但这可能不起作用,原因有两个:
因此,更好的解决方案是:
$url = "http://example.com:port/path?query=parts&so=on";
$aParts = parse_url($url);
$aParts['host'] = '';
$removed = ($aParts['host'] ? $aParts['host'] : 'http') . '://'
'' . // This is where the host goes
($aParts['post'] ? ':' . $aParts['port'] : '') .
($aParts['path'] ? '/' . $aParts['path'] : '') .
($aParts['query'] ? '?' . $aParts['query'] : '') .
($aParts['fragment'] ? '#' . $aParts['fragment'] : '');
(未经测试 - 对任何错误表示歉意,但您应该考虑这个想法)
如果需要,添加用户并通过(检查上面链接的文档),如果你想替换主机,不要留空 - 你看看在哪里做。
这就是我想出的,感谢 robby 为我指明了正确的方向。
$url = 'example.com.uk';
$removed = stristr($url, '.',true);
echo "$removed";