PHP 字符串截取域名是指从一串包含域名的字符串中提取出完整的域名部分。这在处理 URL 或网页数据时非常有用,例如分析网站来源、生成站点地图等。
preg_match
函数匹配域名。explode
、substr
等函数组合截取域名。以下是基于正则表达式和字符串函数的两种截取域名的方法:
<?php
function getDomainFromUrl($url) {
$pattern = '/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n]+)/';
preg_match($pattern, $url, $matches);
return $matches[1] ?? '';
}
$url = 'https://www.example.com/path/to/page?query=string';
$domain = getDomainFromUrl($url);
echo $domain; // 输出: example.com
?>
<?php
function getDomainFromUrl($url) {
$url = parse_url($url);
$domain = isset($url['host']) ? $url['host'] : '';
if (strpos($domain, 'www.') === 0) {
$domain = substr($domain, 4);
}
return $domain;
}
$url = 'https://www.example.com/path/to/page?query=string';
$domain = getDomainFromUrl($url);
echo $domain; // 输出: example.com
?>
parse_url
函数来处理这些情况。idn_to_ascii
函数将其转换为 ASCII 格式。<?php
$url = 'https://例子.测试';
$domain = getDomainFromUrl($url);
$asciiDomain = idn_to_ascii($domain);
echo $asciiDomain; // 输出: xn--fsq.xn--0zwm56d
?>
通过以上方法和示例代码,你可以有效地从 URL 中截取域名,并处理各种常见的情况。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云