Lọc lấy đường dẫn (url) từ tên miền (domain) bằng PHP


domain, filer url, hoc php, lập trình php, php code, php tutorial

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 !

 

 HỖ TRỢ TRỰC TUYẾN