PHP獲取域名的方法和技巧
一、PHP獲取域名地址
$host = $_SERVER['HTTP_HOST']; echo "當(dāng)前域名為:" . $host;
上述代碼中,$_SERVER['HTTP_HOST'] 是PHP內(nèi)置的全局變量之一,表示當(dāng)前頁面的域名地址。通過輸出該變量的值,我們就可以獲取當(dāng)前域名。
除了獲取當(dāng)前域名,有時(shí)候我們還需要獲取URL中的其它信息,比如請求協(xié)議(HTTP/HTTPS)、端口號等。下面是一個(gè)獲取當(dāng)前URL的完整代碼示例:
$url = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http"; $url .= "://" . $_SERVER['HTTP_HOST']; $url .= $_SERVER['REQUEST_URI']; echo "當(dāng)前URL為:" . $url;
上述代碼通過判斷 $_SERVER['HTTPS'] 是否為 on 來獲取當(dāng)前協(xié)議,再通過 $_SERVER['HTTP_HOST'] 獲取當(dāng)前域名,最后通過 $_SERVER['REQUEST_URI'] 獲取當(dāng)前路徑,最終拼接成完整的URL。
二、PHP獲取文件名
獲取當(dāng)前頁面的文件名也是常見的任務(wù),下面是一個(gè)獲取文件名的完整代碼示例:
$filename = basename($_SERVER['PHP_SELF']); echo "當(dāng)前文件名為:" . $filename;
上述代碼中,basename() 函數(shù)返回路徑中的最后一個(gè)部分,即文件名。
三、PHP獲取域名IP
獲取當(dāng)前域名對應(yīng)的IP地址也是常見的任務(wù),下面是一個(gè)獲取IP地址的完整代碼示例:
$ip = gethostbyname($_SERVER['HTTP_HOST']); echo "當(dāng)前域名的IP地址為:" . $ip;
上述代碼中,gethostbyname() 函數(shù)根據(jù)域名獲取對應(yīng)的IP地址。
四、PHP獲取域名前綴
獲取當(dāng)前域名的前綴(即 www、blog、shop 等)也是常見的任務(wù),下面是一個(gè)獲取前綴的完整代碼示例:
$prefix = explode('.', $_SERVER['HTTP_HOST'])[0]; echo "當(dāng)前域名的前綴為:" . $prefix;
上述代碼中,explode() 函數(shù)通過 . 將域名拆分成數(shù)組,然后取下標(biāo)為 0 的值,即可獲取域名的前綴。
五、PHP獲取字段名
在一些特殊場景中,可能需要獲取當(dāng)前URL中某個(gè)字段的值,下面是一個(gè)獲取指定字段的完整代碼示例:
$field_name = 'id'; parse_str($_SERVER['QUERY_STRING'], $query_vars); echo "當(dāng)前URL中字段 $field_name 的值為:" . $query_vars[$field_name];
上述代碼通過 parse_str() 函數(shù)將當(dāng)前URL中的查詢參數(shù)解析成一個(gè)數(shù)組,然后取指定字段的值即可。
六、PHP獲取域名實(shí)例
在一些情況下,可能需要獲取一個(gè)完整的、包含協(xié)議和域名的URL,下面是一個(gè)獲取實(shí)例的完整代碼示例:
$url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") ."://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; echo "當(dāng)前域名實(shí)例為:" . $url;
上述代碼中,將獲取域名地址和獲取URL的代碼組合起來,即可獲取完整的域名實(shí)例。
七、PHP獲取域名的狀態(tài)
有時(shí)候我們需要判斷一個(gè)域名的狀態(tài)是否可用,下面是一個(gè)獲取域名狀態(tài)的完整代碼示例:
$url = 'http://www.example.com'; $headers = @get_headers($url); if ($headers) { $status_code = substr($headers[0], 9, 3); echo "當(dāng)前域名狀態(tài)為:" . $status_code; } else { echo "當(dāng)前域名不可用"; }
上述代碼通過 get_headers() 函數(shù)獲取指定域名的響應(yīng)頭信息,從而獲得當(dāng)前域名的狀態(tài)碼。狀態(tài)碼是 HTTP 協(xié)議定義的一種標(biāo)準(zhǔn),用于描述當(dāng)前請求的處理結(jié)果。例如,200 表示成功,404 表示找不到頁面,500 表示服務(wù)器錯(cuò)誤等。通過判斷狀態(tài)碼,我們就可以大致了解當(dāng)前域名的狀態(tài)。
八、PHP獲取域名解析
在一些場景下,我們需要獲取一個(gè)域名所有的解析記錄,下面是一個(gè)獲取域名解析的完整代碼示例:
$domain = 'www.example.com'; $records = dns_get_record($domain, DNS_ALL); echo "當(dāng)前域名的解析記錄為:"; foreach ($records as $record) { echo "{$record['host']} {$record['class']} {$record['type']} {$record['target']}"; }
上述代碼通過 dns_get_record() 函數(shù)獲取指定域名的所有解析記錄,然后遍歷輸出即可。
九、PHP獲取域名whois
whois(who is)是一種查詢域名信息的協(xié)議,我們可以通過 whois 查詢某個(gè)域名的注冊信息、過期時(shí)間等。下面是一個(gè)獲取域名whois的完整代碼示例:
$domain = 'example.com'; $whois_server = 'whois.crsnic.net'; $query_string = $domain."\r\n"; $fp = fsockopen($whois_server, 43); if ($fp) { fputs($fp, $query_string); $response = ''; while (!feof($fp)) { $response .= fgets($fp, 1024); } fclose($fp); echo "當(dāng)前域名的whois信息為:".nl2br(htmlspecialchars($response)); } else { echo "連接whois服務(wù)器失敗"; }
上述代碼中,首先定義了一個(gè) whois 服務(wù)器地址,然后通過 fsockopen() 函數(shù)連接到該服務(wù)器,并發(fā)送查詢指令。最后,將服務(wù)器返回的信息輸出即可。
十、PHP獲取域名解析記錄
如果我們只需要獲取某個(gè)域名特定類型的解析記錄,可以使用 DNS 類庫,下面是一個(gè)獲取A記錄的完整代碼示例:
$domain = 'www.example.com'; $dns = dns_get_record($domain, DNS_A); echo "當(dāng)前域名的A記錄為:"; foreach ($dns as $record) { echo "{$record['host']} {$record['class']} {$record['type']} {$record['ip']}"; }
上述代碼通過 DNS 類庫指定要獲取的記錄類型(例如 A 記錄)并獲取所有對應(yīng)的解析記錄,然后遍歷輸出即可。
結(jié)語
現(xiàn)在不同的框架,都有自己不同的簡便方式,框架中,一般都會(huì)將你可能用到的,封裝成函數(shù),大家多找一找,會(huì)給你帶來太多方便的。
以上就是PHP獲取域名的方法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于PHP獲取域名的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
PHP實(shí)現(xiàn)動(dòng)態(tài)刪除XML數(shù)據(jù)的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)動(dòng)態(tài)刪除XML數(shù)據(jù)的方法,在前面介紹的Message_XML類基礎(chǔ)上進(jìn)行改進(jìn),增加了xml刪除功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03PHP實(shí)現(xiàn)獲取客戶端IP并獲取IP信息
這篇文章主要介紹了PHP實(shí)現(xiàn)獲取客戶端IP并獲取IP信息的方法示例,非常實(shí)用,有需要的小伙伴快來參考下吧。2015-03-03基于HBase Thrift接口的一些使用問題及相關(guān)注意事項(xiàng)的詳解
本篇文章是對HBase Thrift接口的一些使用問題及相關(guān)注意事項(xiàng)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06通過實(shí)例解析PHP數(shù)據(jù)類型轉(zhuǎn)換方法
這篇文章主要介紹了通過實(shí)例解析PHP數(shù)據(jù)類型轉(zhuǎn)換方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07PHP數(shù)組式訪問接口ArrayAccess用法分析
這篇文章主要介紹了PHP數(shù)組式訪問接口ArrayAccess用法,結(jié)合實(shí)例形式分析了數(shù)組式訪問接口ArrayAccess的概念、功能、實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2017-12-12基于ThinkPHP+uploadify+upload+PHPExcel 無刷新導(dǎo)入數(shù)據(jù)
這篇文章主要介紹了基于ThinkPHP+uploadify+upload+PHPExcel 無刷新導(dǎo)入數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2015-09-09php時(shí)區(qū)轉(zhuǎn)換轉(zhuǎn)換函數(shù)
godaddy主機(jī)在國外。把站點(diǎn)建站國外,顯示時(shí)間時(shí)可能需要時(shí)區(qū)轉(zhuǎn)換,下面是個(gè)方便的工具函數(shù),用于時(shí)區(qū)轉(zhuǎn)換2014-01-01