Đây là mã tôi đã thực hiện mà 100% chỉ tìm thấy tên miền, vì phải có tài khoản phụ mozilla vào tài khoản. Điều duy nhất bạn phải kiểm tra là cách bạn tạo bộ đệm của tệp đó, vì vậy bạn không truy vấn mozilla mỗi lần.
Vì một số lý do lạ, các tên miền như co.uk không có trong danh sách, vì vậy bạn phải thực hiện một số hack và thêm chúng theo cách thủ công. Giải pháp không sạch nhất của nó nhưng tôi hy vọng nó sẽ giúp được ai đó.
//=====================================================
static function domain($url)
{
$slds = "";
$url = strtolower($url);
$address = 'http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1';
if(!$subtlds = @kohana::cache('subtlds', null, 60))
{
$content = file($address);
foreach($content as $num => $line)
{
$line = trim($line);
if($line == '') continue;
if(@substr($line[0], 0, 2) == '/') continue;
$line = @preg_replace("/[^a-zA-Z0-9\.]/", '', $line);
if($line == '') continue; //$line = '.'.$line;
if(@$line[0] == '.') $line = substr($line, 1);
if(!strstr($line, '.')) continue;
$subtlds[] = $line;
//echo "{$num}: '{$line}'"; echo "<br>";
}
$subtlds = array_merge(Array(
'co.uk', 'me.uk', 'net.uk', 'org.uk', 'sch.uk', 'ac.uk',
'gov.uk', 'nhs.uk', 'police.uk', 'mod.uk', 'asn.au', 'com.au',
'net.au', 'id.au', 'org.au', 'edu.au', 'gov.au', 'csiro.au',
),$subtlds);
$subtlds = array_unique($subtlds);
//echo var_dump($subtlds);
@kohana::cache('subtlds', $subtlds);
}
preg_match('/^(http:[\/]{2,})?([^\/]+)/i', $url, $matches);
//preg_match("/^(http:\/\/|https:\/\/|)[a-zA-Z-]([^\/]+)/i", $url, $matches);
$host = @$matches[2];
//echo var_dump($matches);
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
foreach($subtlds as $sub)
{
if (preg_match("/{$sub}$/", $host, $xyz))
preg_match("/[^\.\/]+\.[^\.\/]+\.[^\.\/]+$/", $host, $matches);
}
return @$matches[0];
}
thấy điều này một: stackoverflow.com/questions/288810/get-the-subdomain-from-a-url/...
– Trịnh Nguyên Hùng 14:41:05 04/02/2013@LightnessRacesinOrbit Đây là một chút nhiều hơn là chỉ "tìm trong hướng dẫn". PHP
– Hồ Khánh Phi 14:45:00 25/04/2016parse_url()
trả về máy chủ , không phải miền .@ w3dk: Nó vẫn sẽ là một điểm khởi đầu tuyệt vời, cho phép câu hỏi này là về giới hạn đó
– Ngô Trúc Vân 15:25:06 25/04/2016parse_url
chứ không phải là "tôi có thể làm gì" mơ hồ.@LightnessRacesinOrbit quốc phòng của bạn là không trung thực cho danh tiếng của bạn - đơn giản hơn bạn có thể thừa nhận rằng bạn đã không đọc những câu hỏi hoàn toàn
– Lý Phương Thi 23:22:57 08/09/2016@LightnessRacesinOrbit Không nhất thiết phải như vậy. support.suso.com/supki/ từ
– Đặng Quang Thái 14:29:30 22/02/2017