我需要帮助我的代码:我有一个函数,它只代替你。空格
例如:如果我添加url: www.testek.com用户将看到 testk.com
但是如果我添加url: s.dada.testek.com用户将看到s.dada.testek.com
因此,如果我们使用域名s.dada.testek.com,我希望最终用户只看到 testk.com 。
但是我只想得到主域名,而不需要任何子域名。
代码:function getdomain($url){
$parsed = parse_url($url);
return str_replace('www.','', strtolower($parsed['host']));
}
我看到一个帖子,但它不适合我。
谢谢你的帮助!
现在我把代码改成:
function getdomain($url){
$parsed = parse_url($url);
$bits = explode(".",$parsed["host"]);
$mainDomain = array_filter($bits, function ($i) use ($bits) {
return $i >= count($bits)-2;
}, array(
'www.rover.ebay.com' => 'ebay.com',
's.click.aliexpress.com' => 'aliexpress.com', );
return implode(".", $mainDomain);
}
我想的对吗?
因为现在终端用户看到这样:https://i.stack.imgur.com/JddKB.jpg
如果您只是想获得URL主域名的最后2段,那么您可以这样做:
function getdomain($url){
$parsed = parse_url($url);
$bits = explode(".",$parsed["host"]);
$mainDomain = array_filter($bits, function ($i) use ($bits) {
return $i >= count($bits)-2;
}, ARRAY_FILTER_USE_KEY );
return implode(".", $mainDomain);
}
参见https://eval.in/636860
不幸的是,大多数时候没有"一刀切"的解决方案,你必须做很多硬编码的事情。例如,英国有.co.uk
,但法国只有.fr
,所以根据这一点,你可能需要最后3个甚至4个部分。
我已经这样修复了:
function getdomain($url){
$parsed = parse_url($url);
$replace = array ("rover.", "www.", "s.click.");
return str_replace($replace,'', strtolower($parsed['host']));
}
我已经创建了一个数组的"子域",我不想显示。现在它可以正常工作了。
apokryfos感谢你的支持,让我敞开心扉:)