強大的PHP網(wǎng)絡(luò)功能介紹
PHP已經(jīng)是十分強大的腳本語言了,這個已不容置疑。而在處理網(wǎng)絡(luò)方面的功能上,PHP其實也毫不遜色。本文將展示PHP中主要的關(guān)于網(wǎng)絡(luò)方面的主要功能函數(shù),代碼可以在本文的附件中下載。
通過PHP訪問并獲得網(wǎng)頁內(nèi)容
通過PHP去訪問并獲得網(wǎng)頁內(nèi)容是十分容易的,通過使用fopen函數(shù),就象訪問普通的文件那樣就可以了,如
- fopen(http://localhost/websecure/ftp.php, "r");
fopen函數(shù)有如下的一些參數(shù):
要注意的是,注意fopen中訪問的URL中,如果最后的是目錄,要加上斜杠,比如
- fopen("http://localhost/websecure/ftp.php/", "r");
而象
- fopen(http://localhost/websecure/ftp.php, "r");
則是會報錯的。當(dāng)用fopen打開網(wǎng)頁后,接下來可以用很多方法獲得網(wǎng)頁的內(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域名解析方面的功能也十分強大。當(dāng)然這功能會受到DNS客戶端的一些限制,目前PHP在DNS解析方面提供了gethostbyname(string hostname)這個方法,其中參數(shù)是服務(wù)器的域名,返回的是對應(yīng)的IP,比如:
- <?php
- $host = "www.sohu.com";
- $ip = gethostbyname($host);
- echo "The IP address of $host is $ip";
- ?>
而另外一個方法gethostbynamel則是可以返回某個域名下的所有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");
- }
- ?>
比如你的機器是有多個IP的話,上面則可以輸出所有的IP了。
同樣,如果給出了IP的話,則可以反過來通過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ù)
有的時候,只是通過域名還是不能完全了解一個網(wǎng)站的詳細(xì)情況的話,可以通過使用WHOIS服務(wù)去查詢。WHOIS服務(wù)可以具體查出某一域名及其注冊的詳細(xì)情況,而在PHP中也有相關(guān)函數(shù)可以查詢,是通過PEAR包中的Net_Whois(http://pear.php.net/package/Net_Whois/)實現(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指定了用哪一個whois解析商去進(jìn)行解析,$query指定了需要查找的域名,最后使用var_dmp列出了域名的詳細(xì)信息。
在本文的附件中(附件代碼下載),提供了一個完整的例子,是一個通過PHP簡單實現(xiàn)的FTP程序,可供參考。
【編輯推薦】