Tôi cần trích xuất tên miền ra khỏi một chuỗi có thể là bất cứ điều gì. Như là:
$sitelink="//www.somewebsite.com/product/3749875/info/overview.html";
hoặc
$sitelink="//subdomain.somewebsite.com/blah/blah/whatever.php";
Trong mọi trường hợp, tôi đang tìm cách trích xuất phần 'someWebsite.com' [có thể là bất cứ điều gì] và loại bỏ phần còn lại.
j0k
22.4K28 Huy hiệu vàng77 Huy hiệu bạc87 Huy hiệu đồng28 gold badges77 silver badges87 bronze badges
Đã hỏi ngày 7 tháng 2 năm 2013 lúc 7:01Feb 7, 2013 at 7:01
4
Với parse_url [$ url]
The above example will output:
Array
[
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
]
Sử dụng các giá trị của Thos
echo parse_url[$url, PHP_URL_HOST]; //hostname
hoặc
$url_info = parse_url[$url];
echo $url_info['host'];//hostname
4
Trong mọi trường hợp, tôi đang tìm cách trích xuất phần 'someWebsite.com' [có thể là bất cứ điều gì] và loại bỏ phần còn lại.
$url="//www.example.co.uk/page/section/younameit";
or
$url="//example.co.uk/page/section/younameit";
22.4K28 Huy hiệu vàng77 Huy hiệu bạc87 Huy hiệu đồng
$host=parse_url[$url, PHP_URL_HOST];
Đã hỏi ngày 7 tháng 2 năm 2013 lúc 7:01
$parts = explode['www.',$host];
$domain = $parts[1];
// ...or...
$domain = ltrim[$host, 'www.']
Với parse_url [$ url]
Sử dụng các giá trị của Thos
2 URL phức tạp
Để nhận "www.example.co.uk":3 gold badges26 silver badges32 bronze badges
Chỉ nhận được "escess.co.uk"Apr 23, 2014 at 1:25
Nếu URL của bạn bao gồm "www." Hoặc bạn không nhận được kết quả cuối cùng, tức là "Ví dụ.co.uk"
Voilà!
$extract = new LayerShifter\TLDExtract\Extract[];
$result = $extract->parse['//www.somewebsite.com/product/3749875/info/overview.html'];
$result->getSubdomain[]; // will return [string] 'www'
$result->getHostname[]; // will return [string] 'somewebsite'
$result->getSuffix[]; // will return [string] 'com'
$result->getRegistrableDomain[]; // will return [string] 'somewebsite.com'
JabariJul 1, 2016 at 14:49
5.2293 Huy hiệu vàng26 Huy hiệu bạc32 Huy hiệu Đồng
function extract_plain_domain[$text] {
$text=trim[$text,"/"];
$text=strtolower[$text];
$parts=explode["/",$text];
if [substr_count[$parts[0],"http"]] {
$parts[0]="";
}
reset [$parts];while [list [$key, $val] = each [$parts]] {
if [!empty[$val]] { $text=$val; break; }
}
$parts=explode[".",$text];
if [empty[$parts[2]]] {
return $parts[0].".".$parts[1];
} else {
$num_parts=count[$parts];
return $parts[$num_parts-2].".".$parts[$num_parts-1];
}
} // end function extract_plain_domain
Đã trả lời ngày 23 tháng 4 năm 2014 lúc 1:25Mar 27, 2017 at 11:07
Bạn cần gói sử dụng danh sách hậu tố công cộng, chỉ bằng cách này, bạn có thể trích xuất chính xác các tên miền với các TLD cấp hai, cấp ba [Co.uk, A.BG, B.BG, v.v.] và các tên miền phụ đa cấp. Các hàm regex, parse_url [] hoặc chuỗi sẽ không bao giờ tạo ra kết quả hoàn toàn chính xác.Rafa
Tôi đề xuất sử dụng chiết xuất TLD. Ở đây ví dụ về mã:8 silver badges8 bronze badges
Đã trả lời ngày 1 tháng 7 năm 2016 lúc 14:49
Đối với một chuỗi có thể là bất cứ điều gì, cách tiếp cận mới:
$sitelink="//subdomain.somewebsite.com/blah/blah/whatever.php";
0Đã trả lời ngày 27 tháng 3 năm 2017 lúc 11:07Feb 22, 2020 at 7:45
Rafarafaeldadfux
8028 Huy hiệu bạc8 Huy hiệu Đồng2 silver badges7 bronze badges