PHP Socket编程 之使用fsockopen()函数
来源:互联网 发布:有生活情趣的人 知乎 编辑:程序博客网 时间:2024/06/08 19:39
PHPSocket编程
Socket可以理解为两台计算机相互通信的通道。
用法:使用fsockopen()函数
具体用法详见上篇文章。函数的参数为URL、端口号、一个存放错误编号的变量、一个存放错误信息字符串的变量和超时等待时间。(只有第一个参数是必须的)
常见的端口表:
端口号
主要用途
21
FTP
22
SSH
23
Telnet
25
SMTP
80
Web
110
POP
其中,组成URl的几个部分为:协议名(scheme),主机(host),端口号(port),文件路径(path),查询参数(query)。
当url是http://www.example.com/view.php?week=1#demo时:
指标
值
Scheme
http
Host
www.example.com
Port
80
User
Pass
Path
View.php
Query
Week=1
Fragment
#demo
常见的HTTP状态码:
代码
含义
200
OK
204
NO Content
400
Bad Request
401
Unauthorized
403
Forbidden
404
Not Found
408
Time out
5**
Server error
【示例】:
<?PHP function check_url($url){ //解析url $url_pieces = parse_url($url); //设置正确的路径和端口号 $path =(isset($url_pieces['path']))?$url_pieces['path']:'/'; $port =(isset($url_pieces['port']))?$url_pieces['port']:'80'; //用fsockopen()尝试连接 if($fp =fsockopen($url_pieces['host'],$port,$errno,$errstr,30)){ //建立成功后,向服务器写入数据 $send = "HEAD $path HTTP/1.1\r\n"; $send .= "HOST:$url_pieces['host']\r\n"; $send .= "CONNECTION: CLOSE\r\n\r\n"; fwrite($fp,$send); //检索HTTP状态码 $data = fgets($fp,128); //关闭连接 fclose($fp); //返回状态码和类信息 list($response,$code) = explode(' ',$data); if(code == 200){ return array($code,'good'); }else{ return array($code,'bad');//数组第二个元素作为css类名 } }else{ //没有连接 return array($errstr,'bad'); } } //创建URL列表 $urls = array( 'http://www.sdust.com', 'http://www.example.com' ) //调整PHP脚本的时间限制: set_time_limit(0);//无限长时间完成任务 //逐个验证url: foreach($urls as $url){ list($code,$class) = check_url($url); echo "<p><a href =\"$url\">$url</a>(<span class =\"$class\">$code</span>)</p>"; }?>
注意:使用fsockopen()函数比fopen()函数的优点:fopen()只会在PHP中已经将allow_url_fopen设置为真时才能使用,而fsockopen()并没有限制。
0 1
- PHP Socket编程 之使用fsockopen()函数
- PHP函数:fsockopen简介
- PHP函数:fsockopen简介
- PHP fsockopen函数详解
- php curl , fsockopen 函数
- php函数:fsockopen
- PHP fsockopen函数
- PHP函数:fsockopen简介
- PHP函数:fsockopen简介
- PHP fsockopen函数详解
- 巧用php的fsockopen函数
- PHP的fsockopen函数详解
- PHP socket网络编程之使用curl
- php中socket、fsockopen、curl、stream 区别
- socket编程之使用socket发送电子邮件(PHP)
- PHP之Socket编程
- PHP fsockopen 函数报错 Permission denied13
- php中 curl, fsockopen ,file_get_contents 三个函数
- OpenGeo Suite QGIS Plugin安装和使用
- sql之left join、right join、inner join的区别
- 细节 Reverse Integer
- 网易游戏实习招聘
- 今天是微软40岁生日,图说微软的初创故事
- PHP Socket编程 之使用fsockopen()函数
- 【Java并发编程】之八:多线程环境中安全使用集合API(含代码)
- matlab保存图像去除白框
- 如何使用 xcodebuild命令archive导出ipa文件?
- 教你实现别人家的动画2
- 【万里征程——Windows App开发】使用华丽丽的字体
- C语言中用函数实现整型数据位宽,如16,32位,不可以使用sizeof
- 关于使用Jquery Ajax点击checkbox 获取数据库 实现刷新当前页面
- 2015-04-08-数据聚合与分组运算(3)-透视表和交叉表+2012联邦选举委员会数据库