int函数(怎么开启)
1.如果服务器没有同时禁用pfsockopen,直接用pfsockopen替换fsockepen功能。
操作:搜索字符串fsockepen(替换为pfsockopen()。例子如下
修改前:
$fp=fsockopen($host,80,$errno,$errstr,30);
修改后:
$fp=pfsockopen($host,80,$errno,$errstr,30);
2.如果服务器同时禁用pfsockopen,请改用其他函数,例如stream_socket_client()。注意:stream_socket_client()和fsockopen()的参数不同。
操作:用stream_socket_client()替换搜索程序中的字符串fsockepen(),然后删除原fsockepen函数中的端口参数“80”,添加到$host。例子如下
修改前:
$fp=fsockopen($host,80,$errno,$errstr,30);
修改
$fp=stream_socket_client($host。“80”$ errno,$errstr,30);
3.如果PHP版本低于5.0,fsockopen被禁用,没有stream_socket_client()怎么办?写一个函数来实现fsockopen的功能。参考代码:
函数b_fsockopen($host,$port,$errno,$errstr,$ time out){ 0
$ IP=gethostbyname($ host);
$s=socket_create(AF_INET,SOCK_STREAM,0);
if(socket _ set _ nonblock($ s)){ 0
$r=@socket_connect($s,$ip,$ port);
if($ r | | socket _ last _ error()==EINPROGRESS){ 0
$ errno=EINPROGRESS
返回$ s;
}
}
$ errno=socket _ last _ error($ s);
$ errstr=socket _ strerror($ errno);
socket _ close($ s);
返回false
}
具体操作:1。首先,使用fsockepen函数找到代码段,将上面的代码添加到它的顶部,并搜索字符串fsockepen(将其替换为b _ fsockepen()。
2.因为fsockepen函数返回文件指针,可以由file函数操作,但是这个b _ fsockepen函数未能返回文件指针,所以需要继续修改代码段:replace fread(用socket_read)、fwrite(用socket_write)和fclose(用socket_close)。