Hướng dẫn php get root domain from url - php lấy tên miền gốc từ url
Các miền cấp cao nhất và miền cấp hai có thể dài 2 ký tự nhưng tên miền phụ đã đăng ký phải dài ít nhất 3 ký tự. Chỉnh sửa: Vì nhận xét của PJV, tôi đã học tên miền Úc là một ngoại lệ vì chúng cho phép 5 TLD là SLD (com, net, org, asn, id) Ví dụ: somedomain.com.au. Tôi đoán com.au là tên miền được kiểm soát trên toàn quốc "chia sẻ". Vì vậy, về mặt kỹ thuật, "com.au" vẫn sẽ là "miền cơ sở", nhưng điều đó không hữu ích. EDIT: Có 47.952 tên miền ba chữ cái có thể (mẫu: [A-Za-Z0-9] Chỉ với 8 trong số các TLD phổ biến nhất (com, org, v.v.), chúng tôi có 383.616 khả năng - thậm chí không thêm vào toàn bộ phạm vi của TLD. Tên miền 1 chữ cái và 2 chữ cái vẫn còn tồn tại, nhưng không hợp lệ trong tương lai. Trong Google.com - "Google" là một tên miền phụ của "com" Trong google.co.uk-"Google" là tên miền phụ của "CO", do đó là tên miền phụ của "Vương quốc Anh" hoặc miền cấp hai thực sự, vì "CO" cũng là miền cấp cao nhất hợp lệ Trong www.google.com - "www" là một tên miền phụ của "Google" là tên miền phụ của "com" "Co.uk" không phải là máy chủ hợp lệ vì không có tên miền hợp lệ Đi với giả định đó, chức năng này sẽ trả về "dựa trên" thích hợp trong hầu hết các trường hợp, mà không yêu cầu "bản đồ URL". Nếu bạn tình cờ là một trong những trường hợp hiếm hoi, có lẽ bạn có thể sửa đổi điều này để đáp ứng các nhu cầu cụ thể ... EDIT: Bạn phải truyền chuỗi miền dưới dạng URL với giao thức của nó (http: //, ftp: //, v.v.) hoặc
Nếu bạn cần sử dụng chính xác Sau đó đọc các dòng vào một mảng và sử dụng nó để so sánh các phần miền Chỉnh sửa: Để cho phép các miền Úc:
Ghi chú bổ sung quan trọng: Tôi không sử dụng chức năng này để xác nhận các miền. Đó là mã chung Tôi chỉ sử dụng để trích xuất miền cơ sở cho máy chủ mà nó đang chạy từ toàn cầu 1 2 /* 3 Get Root Domain (or TLD) from a URL with PHP 4 http://www.beliefmedia.com/root-domain-url-php 5 */ 6 7 8 9 $domain = isset($pieces['host']) ? $pieces['host'] : '';$domain = isset($pieces['host']) ? $pieces['host'] : ''; 10 & nbsp; & nbsp; if & nbsp; (preg_match ('/(? P [a-z0-9] [a-z0-9 \-] {1,63} \.i ', & nbsp; $ domain, & nbsp; $ m)) & nbsp; {{ (preg_match('/(?P 11 return ($tld === true) ? substr($m['domain'], ($pos = strpos($m['domain'], '.')) !== false ? $pos + 1 : 0) : $m['domain']; ($tld === true) ? substr($m['domain'], ($pos = strpos($m['domain'], '.')) !== false ? $pos + 1 : 0) : $m['domain']; 12 }} 13 return false; false; 14 } 15 16 /* Usage: returns 'beliefmedia.com' */ 17 echo beliefmedia_get_domain("http://something.something.beliefmedia.com/directory/filename.php"); beliefmedia_get_domain("http://something.something.beliefmedia.com/directory/filename.php"); 18 19 /* Usage: returns 'com.au' */ 20 // echo beliefmedia_get_domain("http://something.something.beliefmedia.com.au/directory/filename.php", $tld = true); |