PHPer謹記 10個重要的PHP網路資訊函式說明

2021-04-19 07:03:41 字數 3460 閱讀 2477

php與網頁結合得如此緊密,以致於很容易忘記這種語言還可用來執行其它功能——資料加密、視窗應用與介面程式設計就是其中三個例子。既然網路程式設計是大多數開發者最可能遇到麻煩的領域,所以值得花時間來瀏覽一下php的內建網路函式,了解它們提供的功能,以及它如何幫助您完成下乙個專案。

下表(表a)中列出了php中的10個最有趣、最有用的網路函式,它是您了解php網路程式設計功能的起點,並為您進入多數網路開發者通常並未涉及的領域提供啟示。每個函式都有說明與用法例項,為您說明在何時,該怎樣應用這些函式。

函式

說明

例項

getmxrr

($hostname,

$mxhosts)

該函式用來恢復某個特定主機的mx(郵件交換記錄)主機名稱。

用這個函式來確認某個域的郵件主機,通常以驗證那個域上的乙個郵箱開始。

**: <?php

$hosts = array();

$ret = getmxrr

('techrepublic.com', $hosts);

if ($ret) else

?>

輸出:array (

[0] => c10-mail.cnet.com

[1] => c12-mail.cnet.com

)gethostbyaddr

($ip)

該函式用來恢復與乙個ip有關的主機名。

用此函式執行乙個逆dns查詢,把乙個名稱給某個ip位址——如記錄您的網路伺服器日誌的ip位址。

**:<?php

echo gethostbyaddr

('216.239.115.148');

?>

輸出:c10-sha-redirect-

lb.cnet.com

gethostbyname

($name)

該函式與gethostbyaddr()函式互逆,恢復與主機有關的ip位址。

用此函式執行乙個標準的dns查詢,獲得與ip位址有關的主機名——例如自動將有疑點的域列入黑名單時。

**:<?php

echo gethostbyname

('techrepublic.com');

?>

輸出:216.239.115.148

p2long($ip)

和long2ip($long)

這些函式將由符號連線的四個小於255的數字代表的ip位址轉換成整數,或進行逆操作。

在您需要用整數格式表示ip位址(通常用於數字計算),或用ip位址表示數字格式時,應用這些函式。

**:<?php

echo ip2long

('216.239.115.148');

echo long2ip(-655395948);

?>

輸出:-655395948

216.239.115.148

checkdnsrr

($host, $type)

該函式在dns中檢查與$host主機相符的$type型別記錄,如發現,即返回布林真值。

用此函式檢查主機中是否存在某個特定的dns記錄型別。

**:<?php

$ret = checkdnsrr

('techrepublic.com', soa);

if ($ret) else

?>

輸出:soa records exist for host

dns_get_record

($host, $type)

該函式返回$host主機的dns記錄。可選的$type引數只可用來恢復那些與乙個特定的型別匹配的子集。

用此函式恢復某個特殊主機的詳細dns記錄。

**:<?php

$data = dns_get_record

('techrepublic.com');

print_r($data);

?>

輸出:array

([0] => array

([host] =>

techrepublic.com

[type] => mx

[pri] => 500

[target] =>

c10-mail.cnet.com

[class] => in

[ttl] => 10756

)[1] => array

([host] =>

techrepublic.com

[type] => ns

[target] =>

ns3.cnet.com

[class] => in

[ttl] => 7885))

getprotobyname

($num)

和getprotobynum

($name)

這些函式從泛系統/etc/protocols檔案中恢復協議名稱與號碼。

用這些函式根據名稱或號碼來恢復系統協議資訊。

**:<?php

echo getprotobyname(81);

echo getprotobyname

('icmp');

?>

輸出:vmtp

1getservbyname

($service,

$protocol)

該函式利用$protocol協議,從泛系統/etc/services檔案中為$service服務恢復埠號碼。

用此函式自動獲得執行系統服務的埠資訊。

輸出:80inet_ntop

($addr)

和inet_pton

($addr)

這些函式在二進位制與人可讀位址間轉換ip位址。

用此函式在ipv4/ipv6位址字串與二進位制表達法間進行轉換。

**:<?php

$packed = inet_pton

('192.168.0.1');

$unpacked = inet_ntop

($packed);

echo $unpacked;

?>

輸出:192.168.0.1

syslog

($level, $msg)

這個函式利用警告級別$level將$msg資訊記錄到系統日誌裝置中。

用此函式發布泛系統錯誤或警告。

**:<?php

define_syslog_variables();

openlog('mylog',

log_ndelay, log_local0);

syslog(log_debug, 'this is

a debug message');

closelog();

?>

資料策略的10個重要要素

我們已經知道,乙個組織的資料是乙個組織的重要的資產,我們已經清楚意識到的資料質量的重要性。然而,我們有時卻忽視了管理資料資產的基本資料策略。要知道資料策略不僅僅是資料質量。乙個資料策略應能幫助確定一下10個細節 1,哪些資料應該被收集?2,資料應該被保留多久?3,資料被儲存在 4,資料隱私和安全。該...

10個重要的Linux ps命令實戰

linux作為unix的衍生作業系統,linux內建有檢視當前程序的工具ps。這個工具能在命令列中使用。檢視它的man手冊可以看到,ps命令能夠給出當前系統中程序的快照。它能捕獲系統在某一事件的程序狀態。如果你想不斷更新檢視的這個狀態,可以使用top命令。ps命令支援三種使用的語法格式 unix 風...

10個重要的Linux ps命令實戰

檢視它的man手冊可以看到,ps命令能夠給出當前系統中程序的快照。它能捕獲系統在某一事件的程序狀態。如果你想不斷更新檢視的這個狀態,可以使用top命令。ps命令支援三種使用的語法格式 unix 風格,選項可以組合在一起,並且選項前必須有 連字元 bsd 風格,選項可以組合在一起,但是選項前不能有 連...