[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 編程技術 > Php > 正文
PHP4手冊:函數庫及函數(三十四) 網絡函式庫
http://netleader.126.com 星空浪子 (2001-04-18 15:29:10)

--------------------------------------------------------------------------------
 網路函式庫 
--------------------------------------------------------------------------------
 


本函式庫共有 13 個函式
fsockopen: 打開網路的 Socket 連結。 
pfsockopen: 打開網路的 Socket 持續連結。 
set_socket_blocking: 切換擱置與無擱置模式。 
gethostbyaddr: 傳回機器名稱。 
gethostbyname: 傳回 IP 網址。 
gethostbynamel: 傳回機器名稱的所有 IP。 
checkdnsrr: 檢查指定網址的 DNS 記錄。 
getmxrr: 取得指定網址 DNS 記錄之 MX 欄位。 
openlog: 打開系統紀錄。 
syslog: 紀錄至系統紀錄。 
closelog: 關閉系統紀錄。 
debugger_on: 使用內建的 PHP 除錯器。 
debugger_off: 關閉內建的 PHP 除錯器。 


--------------------------------------------------------------------------------
 函式:fsockopen() 
--------------------------------------------------------------------------------
 


網路函式庫


fsockopen
打開網路的 Socket 連結。

語法: int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);

傳回值: 整數

函式種類: 網路系統


 
 
內容說明 


目前這個函式提供二個 Socket 資料流介面,分別為 Internet 用的 AF_INET 及 Unix 用的 AF_UNIX。當在 Internet 情形下使用時,參數 hostname 及 port 分別代表網址及埠號。在 UNIX 情形可做 IPC,hostname 參數表示到 socket 的路徑,port 設定為 0。可省略的 timeout 選項表示多久沒有連上就中斷。在使用本函式之會傳回檔案指標,供檔案函式使用,包括 fgets()、fgetss()、fputs()、fclose() 與 feof()。參數 errno 及 errstr 也是可省略的,主要當做錯誤處理使用。使用本函式,會使用擱置模式 (blocking mode) 處理,可用 set_socket_blocking() 轉換成無擱置模式。


 
 
使用范例 


本例用來模擬成 HTTP 連線。
$fp = fsockopen("php.wilson.gs", 80, &$errno, &$errstr, 10);
if(!$fp) {
        echo "$errstr ($errno)
\n";
} else {
        fputs($fp,"GET / HTTP/1.0\nHost: php.wilson.gs\n\n");
        while(!feof($fp)) {
                echo fgets($fp,128);
        }
        fclose($fp);
}
?> 



 
 
參考 


pfsockopen()  

--------------------------------------------------------------------------------
 函式:pfsockopen() 
--------------------------------------------------------------------------------
 


網路函式庫


pfsockopen
打開網路的 Socket 持續連結。

語法: int pfsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);

傳回值: 整數

函式種類: 網路系統


 
 
內容說明 


本函式和 fsockopen() 類似,但本函式在 PHP 程式結束時,不會將網路 socket 連結關閉,仍保持連線。用這種方式,可以增加效率,但較耗系統資源
 

--------------------------------------------------------------------------------
 函式:set_socket_blocking() 
--------------------------------------------------------------------------------
 


網路函式庫


set_socket_blocking
切換擱置與無擱置模式。

語法: int set_socket_blocking(int socket descriptor, int mode);

傳回值: 整數

函式種類: 網路系統


 
 
內容說明 


若參數 mode 值為 false,會將 socket 切換到無擱置模式 (non-blocking mode);若 mode 值為 true,則切換成擱置模式。當使用 fgets() 等函式讀取 socket 時,無法確定傳回時間,用無擱置模式可使行程繼續,不會因無法讀到資料而擱置。
 

--------------------------------------------------------------------------------
 函式:gethostbyaddr() 
--------------------------------------------------------------------------------
 


網路函式庫


gethostbyaddr
傳回機器名稱。

語法: string gethostbyaddr(string ip_address);

傳回值: 字串

函式種類: 網路系統


 
 
內容說明 


本函式可傳回某個 IP 網址的機器名稱 (Domain Name)。若執行失敗,則傳回原來的 IP 網址。


 
 
使用范例 


下例的傳回值為 dns.biglobe.net.tw

echo gethostbyaddr("202.166.255.97");
?> 

 
 
參考 


gethostbyname()  
 

--------------------------------------------------------------------------------
 函式:gethostbyname() 
--------------------------------------------------------------------------------
 


網路函式庫


gethostbyname
傳回 IP 網址。

語法: string gethostbyname(string hostname);

傳回值: 字串

函式種類: 網路系統


 
 
內容說明 


本函式可傳回某個機器名稱 (Domain Name) 的 IP 網址 (IP Address)。若執行失敗,則傳回原來的機器名稱。


 
 
使用范例 


下例的傳回值為 140.137.33.246

echo gethostbyaddr("www.hkcc.pccu.edu.tw");
?> 

 
 
參考 


gethostbyaddr()  

 

--------------------------------------------------------------------------------
 函式:gethostbynamel() 
--------------------------------------------------------------------------------
 


網路函式庫


gethostbynamel
傳回機器名稱的所有 IP。

語法: array gethostbynamel(string hostname);

傳回值: 陣列

函式種類: 網路系統


 
 
內容說明 


若一個機器名稱有很多個 IP 位址 (例如一些 FTP 或是 WWW 站台),使用本函式可以取得全部的 IP 位址,傳回到陣列變數中。


 
 
使用范例 


本范例列出所有網景 FTP 站的 IP。(注:網景的 FTP 站是一個 Domain Name 卻對映到許多 IP Address 的站台。)

$netscapeftp=gethostbynamel("ftp.netscape.com");
echo "Netscape FTP 站台 IP Address:";
for ($i=0; $i  echo "
  • ".$netscapeftp[$i];
    }
    echo "";
    ?> 



     
     
    參考 


    gethostbyaddr()  gethostbyname()  checkdnsrr()  getmxrr()  

    --------------------------------------------------------------------------------
     函式:checkdnsrr() 
    --------------------------------------------------------------------------------
     


    網路函式庫


    checkdnsrr
    檢查指定網址的 DNS 記錄。

    語法: int checkdnsrr(string host, string [type]);

    傳回值: 整數

    函式種類: 網路系統


     
     
    內容說明 


    本函式用來檢查 DNS 的欄位紀錄。指定的參數 host 可以是網路位址 (IP Address),也可以用機器名稱 (Domain Name)。參數 type 可以省略,內定值為 MX。而參數 type 的值可為以下的其中之一:A、MX、NS、SOA、PTR、CNAME 或 ANY。若找到了指定網址的 DNS 欄位,傳回 true;若未找到指定的 DNS 欄位或是有錯誤均會傳回 false。


     
     
    參考 


    gethostbyaddr()  gethostbyname()  gethostbynamel()  getmxrr()  
     

    --------------------------------------------------------------------------------
     函式:getmxrr() 
    --------------------------------------------------------------------------------
     


    網路函式庫


    getmxrr
    取得指定網址 DNS 記錄之 MX 欄位。

    語法: int getmxrr(string hostname, array mxhosts, array [weight]);

    傳回值: 整數

    函式種類: 網路系統


     
     
    內容說明 


    本函式用來檢查 DNS 欄位紀錄中的 MX 欄位,也就是電子郵件伺服器 Mail eXchanger 欄位。若找到了指定網址 DNS 紀錄的 MX 欄位,傳回 true;若未找到指定的 DNS MX 欄位或是有錯誤均會傳回 false。指定網址的所有 MX 欄位紀錄的機器都會傳入陣列參數 mxhosts 中。若有指定陣列參數 weight,則同時傳回 MX 機器的優先順序。


     
     
    參考 


    gethostbyaddr()  gethostbyname()  gethostbynamel()  checkdnsrr()  
     

    --------------------------------------------------------------------------------
     函式:openlog() 
    --------------------------------------------------------------------------------
     


    網路函式庫


    openlog
    打開系統紀錄。

    語法: int openlog(string ident, int option, int facility);

    傳回值: 整數

    函式種類: 作業系統與環境


     
     
    內容說明 


    本函式會開啟作業系統的紀錄機制 (logger)。參數 ident 會加到紀錄的字串中。參數 option 的值包括了 LOG_PID、LOG_CONS、LOG_ODELAY、LOG_NDELAY、LOG_NOWAIT、LOG_PERROR,在 Win32 系統中,只有 LOG_PID 有效。參數 facility 的值可能為 LOG_KERN、LOG_USER、LOG_MAIL、LOG_DAEMON、LOG_AUTH、LOG_SYSLOG、LOG_LPR、LOG_NEWS、LOG_UUCP、LOG_CRON 或 LOG_AUTHPRIV,在 Win32 系統上,本參數是無效的欄位。本函式呼叫 UNIX 系統的 openlog() 函數,因此在 Windows 系列的作業系統中,本函式沒有完全的實作。


     
     
    使用范例 


    openlog("FUN", LOG_PID | LOG_CONS, LOG_USER);
    syslog(LOG_INFO, "Wa ha ha ....");
    closelog();
    ?> 

     
     
    參考 


    syslog()  closelog()  


    --------------------------------------------------------------------------------
     函式:syslog() 
    --------------------------------------------------------------------------------
     


    網路函式庫


    syslog
    紀錄至系統紀錄。

    語法: int syslog(int priority, string message);

    傳回值: 整數

    函式種類: 作業系統與環境


     
     
    內容說明 


    本函式將 message 字串寫到系統紀錄中,參數 priority 的值可能為 LOG_EMERG、LOG_ALERT、LOG_CRIT、LOG_ERR、LOG_WARNING、LOG_NOTICE、LOG_INFO、LOG_DEBUG。本函式呼叫 UNIX 作業系統的 syslog() 函數,在 Windows NT 上,使用事件檢視器模擬出本功能。


     
     
    參考 


    openlog()  closelog()  
     

    --------------------------------------------------------------------------------
     函式:closelog() 
    --------------------------------------------------------------------------------
     


    網路函式庫


    closelog
    關閉系統紀錄。

    語法: int closelog(void);

    傳回值: 整數

    函式種類: 作業系統與環境


     
     
    內容說明 


    本函式用來關閉已打開的系統紀錄。本函式無傳入參數,亦不是必須要的函式,PHP 劇本程式在執行完成就會自動關閉開啟的資源。


     
     
    參考 


    openlog()  syslog()  

     

    --------------------------------------------------------------------------------
     函式:debugger_on() 
    --------------------------------------------------------------------------------
     


    網路函式庫


    debugger_on
    使用內建的 PHP 除錯器。

    語法: int debugger_on(string address);

    傳回值: 整數

    函式種類: PHP 系統功能


     
     
    內容說明 


    本函式用來對遠端的機器 PHP 除錯。除錯使用的埠 (Port) 在 php.ini 中的 debugger.port 欄位設定,內定埠是 7869。


     
     
    使用范例 


    debugger_on("123.123.123.123"); 
    ?> 

     

    --------------------------------------------------------------------------------
     函式:debugger_off() 
    --------------------------------------------------------------------------------
     


    網路函式庫


    debugger_off
    關閉內建的 PHP 除錯器。

    語法: int debugger_off(void);

    傳回值: 整數

    函式種類: PHP 系統功能


     
     
    內容說明 


    本函式用來關閉遠端的機器 PHP 除錯功能。本函式無傳入參數。

     
    (http://www.fanqiang.com)
        進入【UNIX論壇

  • 相關文章
    PHP4手冊:函數庫及函數(四十六) SNMP 網管函式庫 (2001-04-18 16:56:55)
    PHP4手冊:函數庫及函數(四十五) Solid 資料庫連結函式庫 (2001-04-18 16:54:16)
    PHP4手冊:函數庫及函數(四十四) 信號與共享記憶體函式庫 (2001-04-18 16:49:09)
    PHP4手冊:函數庫及函數(四十三) 常規表示法函式庫 (2001-04-18 16:40:33)
    PHP4手冊:函數庫及函數(四十二) URL 處理函式庫 (2001-04-18 16:37:13)
    PHP4手冊:函數庫及函數(四十一) PostgreSQL 資料庫函式庫 (2001-04-18 15:58:12)
    PHP4手冊:函數庫及函數(四十) PDF 格式檔案函式庫 - 2 (2001-04-18 15:53:53)
    PHP4手冊:函數庫及函數(四十) PDF 格式檔案函式庫 - 1 (2001-04-18 15:53:35)
    PHP4手冊:函數庫及函數(三十九) Perl 相容語法函式庫 (2001-04-18 15:45:08)
    PHP4手冊:函數庫及函數(三十八) Oracle 資料庫函式庫 (2001-04-18 15:43:09)

    ===更多相關===
     

    ★  樊強制作 歡迎分享  ★