Mình xin chia sẻ với các bạn 3 hàm giúp lọc 1 đường dẫn bất kỳ từ 1 tên miền nào đó. Đoạn code sau sẽ là nguồn tham khảo hữu ích cho những ai đam mê lập trình nói chung và bằng ngôn ngữ PHP nói riêng.
<?php
/*Hàm thứ nhất : loại bỏ tất cả các query string,
chỉ lấy subdomain (nếu có) hoặc domain */
function fulldomain($domainb) {
$bits = explode('/', $domainb);
if ($bits[0]=='http:' || $bits[0]=='https:')
{
return $bits[0].'//'.$bits[2].'/';
} else {
return 'http://'.$bits[0].'/';
}
unset($bits);
}
// Hàm thứ 2 : công dụng tương tự như hàm thứ 1 nhưng sử dụng regex
function preg_fulldomain ($domainb) {
return
preg_replace('/^((http(s)?:\/\/)?([^\/]+)(\/)?)(.*)/','$1',$domainb);
}
// Hàm thứ 3 : lấy domain và loại bỏ subdomain
function domain($domainb)
{
$bits = explode('/', $domainb);
if ($bits[0]=='http:' || $bits[0]=='https:')
{
$domainb= $bits[2];
} else {
$domainb= $bits[0];
}
unset($bits);
$bits = explode('.', $domainb);
$idz=count($bits);
$idz-=3;
if (strlen($bits[($idz+2)])==2) {
$url=$bits[$idz].'.'.$bits[($idz+1)].'.'.$bits[($idz+2)];
} else if (strlen($bits[($idz+2)])==0) {
$url=$bits[($idz)].'.'.$bits[($idz+1)];
} else {
$url=$bits[($idz+1)].'.'.$bits[($idz+2)];
}
return $url;
}
?>
Và sau đây là ví dụ minh họa việc sử dụng 3 hàm trên như sau :
<?php
$address='http://www.subdomain.example.com/blog/index.php?id=1';
echo fulldomain($address); // xuất ra http://www.subdomain.example.com/
echo '<br>';
echo preg_fulldomain($address); // xuất ra http://www.subdomain.example.com/
echo '<br>';
echo domain($address); // xuất ra example.com
?>
Hy vọng với 3 hàm trên sẽ giúp cho bạn thêm 1 kỹ năng lập trình bằng ngôn ngữ PHP, Chúc các bạn thành công !