0

我想要一个组合的 php 语句,它将去除我的客户将输入的域名,因此它就像 cnn.com,而不是http://cnn.com,或 www.cnn.com,或 ftp.cnn.com 或其他任何东西常见于域 URL。有可能吗,从 Stackoverflow 到目前为止我有这个代码

$valueStrip = explode("//",$value);
$value = $valueStrip[1];

那应该处理 http:// https:// ftp:// 但其余的呢以及如何在一个语句中得到它。如果可能,请举例

4

2 回答 2

1

如果您的目标是仅获取主机名,那么您已经可以做到这一点。您不应该去掉“www”或“ftp”,因为它们是完全不同的主机名。确实,在 cnn.com 的情况下,他们会去同一个地方,但这并不一定总是如此,你不能依赖这一点。

但是,如果您的目标是删除“www”。或“ftp.”,你可以这样做:

$valueStrip = explode( "//",$value );
$value = str_replace( array( "www.", "ftp." ), "", $valueStrip[1] );

另一方面,您可能有类似“www.somesite.cnn.com”的内容。如果您只想删除“www.”,那么上面的方法就可以了。如果您仍然希望只留下域的顶级和二级部分,那么这样的事情会更好:

$valueStrip = explode( "//",$value );
$parts = explode( ".", $valueStrip[1] );
$value = $parts[ count( $parts ) - 2 ] . "." . $parts[ count( $parts ) - 1 ];

我认为这两个都不是一个好主意。相反,我认为坚持你在代码中获得的价值$value是你应该离开的地方。

于 2013-08-03T18:13:15.313 回答
0

PHP URL 解析

$parsed_url = parse_url($value);
$host_only = $parsed_url["host"];
$domain_only = stristr($host_only,".",TRUE);
于 2013-08-03T18:25:04.367 回答