仅将给定的 url 更改为 return 域
changing a given url to return only the domain
我从表单中得到一个 url,这样:
$input_website = isset($_POST['website']) ? check_plain($_POST['website']) : 'None';
我需要找回一个裸域名(为了一些API集成),例如:http://www.example.com将return作为example.com
和 www.example.com 将 return example.com 等等
我现在有了这段代码,第一种情况 return 是正确的 url http://www.example.com 但是 return www.example.com 甚至 example.com:
都没有
function get_domain($url)
{
$pieces = parse_url($url);
$domain = isset($pieces['host']) ? $pieces['host'] : '';
if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
return $regs['domain'];
}
return false;
}
您能就此事提出建议吗?
根据与您的讨论:
$url = 'www.noamddd.com';
$arrUrl = explode("/", $url);
echo $arrUrl[0];
旧答案:
使用以下代码块创建一个函数并获取域名。
试试这个
更多关于 parse_url
$url = 'http://google.com/dhasjkdas/sadsdds/sdda/sdads.html';
$parse = parse_url($url);
print $parse['host']; //google.com
你也可以用另一种方式做到这一点:
echo $domain = str_ireplace('www.', '', parse_url($url, PHP_URL_HOST));//google.com
如果你只有URL(而不想要像frayne-konok建议的当前域名)并且想要提取服务器名称,你可以使用这样的正则表达式:
$serverName = preg_replace('|.*?://(.*?)/.*|', '', $url);
我最后做了一些不同的事情 - 检查是否有 http,如果没有,我使用这个函数添加它:
function addHttp($website) {
if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
$url = "http://" . $url;
}
return $website;
}
然后我才将其发送到 return 域的其他函数。
当然不是最好的方法,但它确实有效。
我从表单中得到一个 url,这样:
$input_website = isset($_POST['website']) ? check_plain($_POST['website']) : 'None';
我需要找回一个裸域名(为了一些API集成),例如:http://www.example.com将return作为example.com 和 www.example.com 将 return example.com 等等
我现在有了这段代码,第一种情况 return 是正确的 url http://www.example.com 但是 return www.example.com 甚至 example.com:
都没有function get_domain($url)
{
$pieces = parse_url($url);
$domain = isset($pieces['host']) ? $pieces['host'] : '';
if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
return $regs['domain'];
}
return false;
}
您能就此事提出建议吗?
根据与您的讨论:
$url = 'www.noamddd.com';
$arrUrl = explode("/", $url);
echo $arrUrl[0];
旧答案:
使用以下代码块创建一个函数并获取域名。
试试这个
更多关于 parse_url
$url = 'http://google.com/dhasjkdas/sadsdds/sdda/sdads.html';
$parse = parse_url($url);
print $parse['host']; //google.com
你也可以用另一种方式做到这一点:
echo $domain = str_ireplace('www.', '', parse_url($url, PHP_URL_HOST));//google.com
如果你只有URL(而不想要像frayne-konok建议的当前域名)并且想要提取服务器名称,你可以使用这样的正则表达式:
$serverName = preg_replace('|.*?://(.*?)/.*|', '', $url);
我最后做了一些不同的事情 - 检查是否有 http,如果没有,我使用这个函数添加它:
function addHttp($website) {
if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
$url = "http://" . $url;
}
return $website;
}
然后我才将其发送到 return 域的其他函数。 当然不是最好的方法,但它确实有效。