Php 更改给定url以仅返回域

Php 更改给定url以仅返回域,php,parse-url,Php,Parse Url,我从一个表单中获取一个url,通过这种方式: $input_website = isset($_POST['website']) ? check_plain($_POST['website']) : 'None'; 我需要返回一个裸域名(对于一些API集成),例如:将作为example.com返回 www.example.com将返回example.com等 我现在有了这段代码,它为第一个案例返回正确的url,但对www.example.com甚至example.com都不返回任何内容: 函数

我从一个表单中获取一个url,通过这种方式:

$input_website = isset($_POST['website']) ? check_plain($_POST['website']) : 'None';
我需要返回一个裸域名(对于一些API集成),例如:将作为example.com返回 www.example.com将返回example.com等

我现在有了这段代码,它为第一个案例返回正确的url,但对www.example.com甚至example.com都不返回任何内容:

函数获取域($url)
{
$pieces=parse_url($url);
$domain=isset($pieces['host'])?$pieces['host']:'';
if(preg_match('/(?P[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i',$domain,$regs)){
返回$regs['domain'];
}
返回false;
}

你能就这件事提出建议吗

根据与您的讨论:

$url = 'www.noamddd.com';
$arrUrl = explode("/", $url);
echo $arrUrl[0];
旧答案:

使用下面的代码块生成一个函数,并获取域名

试试这个

更多关于

此外,您还可以通过另一种方式执行此操作:

echo $domain = str_ireplace('www.', '', parse_url($url, PHP_URL_HOST));//google.com

根据与您的讨论:

$url = 'www.noamddd.com';
$arrUrl = explode("/", $url);
echo $arrUrl[0];
旧答案:

使用下面的代码块生成一个函数,并获取域名

试试这个

更多关于

此外,您还可以通过另一种方式执行此操作:

echo $domain = str_ireplace('www.', '', parse_url($url, PHP_URL_HOST));//google.com
如果您只是拥有URL(而不是像建议的那样使用当前域名)并希望提取服务器名称,则可以使用如下正则表达式:

$serverName = preg_replace('|.*?://(.*?)/.*|', '$1', $url);
如果您只是拥有URL(而不是像建议的那样使用当前域名)并希望提取服务器名称,则可以使用如下正则表达式:

$serverName = preg_replace('|.*?://(.*?)/.*|', '$1', $url);

最后我做了一些不同的事情-检查是否有http,如果没有,我将使用以下函数添加它:

function addHttp($website) {
    if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
        $url = "http://" . $url;
    }
    return $website;
}
只有这样,我才会将它发送到我的另一个函数,该函数返回域。
当然不是最好的方法,但它是有效的

我最后做了一些不同的事情-检查是否有http,如果没有,我将使用以下函数添加它:

function addHttp($website) {
    if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
        $url = "http://" . $url;
    }
    return $website;
}
只有这样,我才会将它发送到我的另一个函数,该函数返回域。
当然不是最好的方法,但它是有效的

谢谢。iv'e将代码更改为'code'函数get_domain($url){$parse=parse_url($url);return$parse['host'];}$webSite=get_domain($input_webSite);'code'但是它又空了。你能发布你的
url
吗?我收到了一个html表单的url,例如,这是一个我尝试过的url,返回时是空的www.noamdd.com将url与
http://
类似
http://www.noamddd.com
。否则它将不是一个url,只是一个字符串。正如我在问题上所说的,当用户返回带有http的url时,函数返回域名,我的问题是当用户带来不带HttpThank的url时。iv'e将代码更改为'code'函数get_domain($url){$parse=parse_url($url);return$parse['host'];}$webSite=get_domain($input_webSite);'code'但是它又空了。你能发布你的
url
吗?我收到了一个html表单的url,例如,这是一个我尝试过的url,返回时是空的www.noamdd.com将url与
http://
类似
http://www.noamddd.com
。否则它将不是一个url,只是一个字符串。正如我在问题上所说的,当用户返回带有http的url时,函数返回域名,我的问题是当用户带来不带http的url时