叁柒設計 三七设计 Three seven design 我的学习与分享
详细信息
来自:关键字:

PHP4手册:函数库及函数(三十四) 网络函式库

  December 21th,2008 22:39:58   Category : PHP+Mysql
 Click (509)

--------------------------------------------------------------------------------
 网路函式库 
--------------------------------------------------------------------------------
 


本函式库共有 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 除错功能。本函式无传入参数。

[ 资讯评论 ]
暂时没有任何评论!
[ 提交评论 ]
请选择表情
  • 昵称:
  • *
  • 验证码:
  • *点击更换验证码
  • 尚能输入个字符
申明:本网站部分分享内容来自网络,如有侵权请及时与我联系,谢谢,另网友评论仅代表个人观点,与本站立场无关,如果在评论中发表违反我国任何法律的,请即时与我们联系(QQ:77132915),我们将立即予以删除. [ 注:提交评论后,通过审核后方能在网站上显示!]