強(qiáng)大的PHP網(wǎng)絡(luò)功能介紹
PHP已經(jīng)是十分強(qiáng)大的腳本語(yǔ)言了,這個(gè)已不容置疑。而在處理網(wǎng)絡(luò)方面的功能上,PHP其實(shí)也毫不遜色。本文將展示PHP中主要的關(guān)于網(wǎng)絡(luò)方面的主要功能函數(shù),代碼可以在本文的附件中下載。
通過(guò)PHP訪問(wèn)并獲得網(wǎng)頁(yè)內(nèi)容
通過(guò)PHP去訪問(wèn)并獲得網(wǎng)頁(yè)內(nèi)容是十分容易的,通過(guò)使用fopen函數(shù),就象訪問(wèn)普通的文件那樣就可以了,如
- fopen(http://localhost/websecure/ftp.php, "r");
fopen函數(shù)有如下的一些參數(shù):
要注意的是,注意fopen中訪問(wèn)的URL中,如果最后的是目錄,要加上斜杠,比如
- fopen("http://localhost/websecure/ftp.php/", "r");
而象
- fopen(http://localhost/websecure/ftp.php, "r");
則是會(huì)報(bào)錯(cuò)的。當(dāng)用fopen打開(kāi)網(wǎng)頁(yè)后,接下來(lái)可以用很多方法獲得網(wǎng)頁(yè)的內(nèi)容了,比如:
- if ($stream = fopen('http://www.sohu.com', 'r')) {
- // print the first 5 bytes
- echo stream_get_contents($stream, 5);
- fclose($stream);
- }
也可以用更快的函數(shù),如file_get_contents即可:
- $url="http://www.blogjava.net/";
- echo file_get_contents( $url );
關(guān)于DNS和IP
PHP在DNS域名解析方面的功能也十分強(qiáng)大。當(dāng)然這功能會(huì)受到DNS客戶(hù)端的一些限制,目前PHP在DNS解析方面提供了gethostbyname(string hostname)這個(gè)方法,其中參數(shù)是服務(wù)器的域名,返回的是對(duì)應(yīng)的IP,比如:
- <?php
- $host = "www.sohu.com";
- $ip = gethostbyname($host);
- echo "The IP address of $host is $ip";
- ?>
而另外一個(gè)方法gethostbynamel則是可以返回某個(gè)域名下的所有IP,比如:
- <?php
- $host= "localhost";
- $ip= gethostbynamel($host);
- echo("The IP addresses of $hostare:<br>\n");
- for ($i = 0; $i < count($ip); $i++) {
- echo("$ip [i] <br>\n");
- }
- ?>
比如你的機(jī)器是有多個(gè)IP的話(huà),上面則可以輸出所有的IP了。
同樣,如果給出了IP的話(huà),則可以反過(guò)來(lái)通過(guò)gethostbyaddr()獲得其域名,如下例:
- <?php
- $ip = "127.0.0.1";
- $host= gethostbyaddr($ip);
- echo("The host name corresponding to the IP
- address $ip is $host");
- ?>
關(guān)于WHOIS服務(wù)
有的時(shí)候,只是通過(guò)域名還是不能完全了解一個(gè)網(wǎng)站的詳細(xì)情況的話(huà),可以通過(guò)使用WHOIS服務(wù)去查詢(xún)。WHOIS服務(wù)可以具體查出某一域名及其注冊(cè)的詳細(xì)情況,而在PHP中也有相關(guān)函數(shù)可以查詢(xún),是通過(guò)PEAR包中的Net_Whois(http://pear.php.net/package/Net_Whois/)實(shí)現(xiàn),安裝該包后,代碼如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- <title>Untitled Document</title>
- </head>
- <body>
- <?
- require_once "Net/Whois.php";
- $server = "whois.networksolutions.com";
- $query = "metroworks.com";
- $whois = new Net_Whois;
- $urlinfo = $whois->query($query, $server);
- var_dump($urlinfo);
- ?>
- </body>
- </html>
其中$server指定了用哪一個(gè)whois解析商去進(jìn)行解析,$query指定了需要查找的域名,最后使用var_dmp列出了域名的詳細(xì)信息。
在本文的附件中(附件代碼下載),提供了一個(gè)完整的例子,是一個(gè)通過(guò)PHP簡(jiǎn)單實(shí)現(xiàn)的FTP程序,可供參考。
【編輯推薦】