簡體   English   中英

PHP從數組中查找域名和域名擴展

[英]PHP Finding a domain name and domain extension from an array

我有一個包含一些帶有TLD擴展名的域的數據數組。 我想分別收集域名和TLD擴展名。

例如,我想從“ hello.com”收集“ hello”作為一個變量,然后收集“ .com”作為另一個變量。

另一個重要提示,我想從“ hello.co.uk”收集“ hello”作為一個變量,然后收集“ .co.uk”作為另一個變量。

我當前使用pathinfo()的代碼可以在“ hello.com”上正常運行,但不能在“ hello.co.uk”上正常運行。 對於“ hello.co.uk”,它將收集“ hello.co”作為一個變量,然后收集“ .uk”作為另一個變量。

這是我正在使用的代碼:

// Get a file into an array
$lines = file($_FILES['file']['tmp_name']);

// Loop through array
foreach ($lines as $line_num => $line) {
    echo $line;

    //Find TLD
    $tld = ".".pathinfo($line, PATHINFO_EXTENSION);
    echo $tld;

    //Find Domain
    $domain = pathinfo($line, PATHINFO_FILENAME);
    echo $domain;
    }

希望我解釋得足夠好。 我經常使用stackoverflow,但是找不到特定的示例。

謝謝

除了使用用於文件的函數外,您還可以使用一些簡單的字符串操作:

$domain = substr($line, 0, strpos($line, "."));
$tld = substr($line, strpos($line, "."), (strlen($line) - strlen($domain)));

第一種方法:

$domains = array("hello.co.uk", "hello.com");

foreach ($domains as $d) {

    $ext = strstr($d, '.'); // extension
    $index = strpos($d, '.');

    $arr = str_split($d, $index);

    $domain = $arr[0]; // domain name


    echo "domain: $domain, extension: $ext <br/>";

}

第二種方法:(感謝hakre)

$domains = array("hello.co.uk", "hello.com");

foreach ($domains as $d) {

    list($domain, $ext) = explode('.', $d, 2);
    echo "domain: $domain, extension: $ext <br/>";

}

這是一個非常靈活的功能,可以使用從example.com到http:// username:password@example.com/public_html/test.zipftp://username@example.comhttp:// www的所有功能.reddit.com / r / aww / comments / 165v9u / shes_allergic_couldnt_help_herself /

function splitDomain($url) { 
 $host = "";
 $url = parse_url($url);
 if(isset($url['host'])) { 
    $host = $url['host'];
 } else {
    $host = $url['path'];
 }
 $host = str_replace('www.','',$host);
 $tmp = explode('.', $host);
 $name = $tmp[0];
 $tld = $tmp[1];
return array('name'=>$name,'tld'=>$tld);
}

除了使用大量合法擴展名外,沒有其他可靠的方法。

一種流行的表是稱為“ 公共后綴列表”的表

為了使用兩個( co.uk )和三個級別的TLD( act.edu.au ),您需要使用公共后綴列表 (頂級域列表)的庫,我建議使用TLDExtract

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM