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 風格,選項可以組合在一起,但是選項前不能有 連...