1

这是我到目前为止的代码。

$main = 'example.com';

$removed = str_ireplace("cant figure out what to put in here...", " ", "$main");
echo $removed;`

我知道我可以将 .com 放在第一个参数中,但我试图删除数百个不同的 TLD。

4

2 回答 2

1

使用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;

但这可能不起作用,原因有两个:

  1. http_build_url 是一个 http 函数,并不总是安装在 PHP 中。您可能需要从 PECL 获得,但在您这样做之前...
  2. 这些函数对构建严格的 URL 非常挑剔,因此您可能希望自己实际创建它。

因此,更好的解决方案是:

$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'] : '');

(未经测试 - 对任何错误表示歉意,但您应该考虑这个想法)

如果需要,添加用户并通过(检查上面链接的文档),如果你想替换主机,不要留空 - 你看看在哪里做。

于 2012-09-27T04:56:36.020 回答
1

这就是我想出的,感谢 robby 为我指明了正确的方向。

$url = 'example.com.uk';
$removed  = stristr($url, '.',true);
echo  "$removed";
于 2012-09-27T16:52:55.050 回答