本文实例讲述了php中fsockopen用法。分享给大家供大家参考。, Q9 t8 Y) E" V$ A/ `+ } b
具体实现方法如下:
$ K0 e4 ?% U& E5 w4 z4 y复制代码 代码如下:$fp=fsockopen(127.0.0.1,80); //打开数据流1 X+ D4 m. j& Z; u m
if(!$fp) //如果打开出错
/ c9 r3 f! _. z" r/ j{, c6 e- |3 d. O6 [
echo unable to openn; //输出内容
" E J( B3 @+ k, b( o+ S0 {' P}$ p5 y2 i( d E8 r3 W0 L
else //如果成功打开4 O: ~7 ?. ]" D6 ?$ @
{
7 |8 T0 A3 B) K8 Z# a- `( z$ ]! i5 Nfwrite($fp,get / http/1.0rnrn); //向数据流写入内容" m# {5 s7 `+ y1 y! t; I* Q; R- y
stream_set_timeout($fp,2); //进行超时设置6 n x' _9 l4 X! X1 _% w( Q
$res=fread($fp,2000); //读取内容
- G4 X8 s% d; A a$info=stream_get_meta_data($fp); //获取数据流报头
! Z( N T) A) ^8 |" h0 w) Vfclose($fp); //关闭数据流
. n7 P1 [! y2 X d. r v& C7 y8 I! ^if($info['timed_out']) //如果超时
$ M. i7 `9 c$ V# t" y2 m{
: v* a4 x5 g0 `echo 'connection timed out!'; //输出内容
5 ]: `& O8 ~. L/ C4 b}
' ^& b# |& x0 Z! {7 e6 s. jelse
8 o+ A, X5 T4 W Y{6 f o" b8 o: Y# w
echo $res; //输出读取内容
. i2 b9 T. c" f2 _* t4 F8 v7 g! I}
1 [2 ~% o3 O6 S! `1 P4 a; ?}
1 }3 t; A6 K7 R1 [, U/ B( k5 @8 M//实例二
# e8 `, f4 Z% {$ I8 w# O* s//创建服务端
* @' A+ I0 i& _$ G; D$socket=stream_socket_server(tcp://0.0.0.0:8000,$errno,$errstr);
% \, `' R! C& g. e( W//如果创建失败8 Y, [% T) M- }. v# S9 b- _% p u
if(!$socket)6 d! u) U/ Y' w. F ~
{
7 z* o& j0 w" j0 }, o6 D" Recho $errstr ($errno)<br />n;
a4 } f/ G* F k8 Q}6 B. p) k/ h4 e1 s, Q) a( |
//如果创建成功
2 m3 _; S- S2 D" _ m* Delse
& i; u; J# Z2 ?8 w) M8 M2 I2 a{
; e) H n9 ^" G# F. j( c% S( `//接受连接
6 G6 w& d* K" P" s* L' r7 ^( v4 A( iwhile($conn=stream_socket_accept($socket))
* W2 V' K5 `2 e& f; |{
* u$ a" u1 L* Q2 d) s//写入数据' q( _0 o0 U' }, J
fwrite($conn,'the local time is '.date('n/j/y g:i a').n);
2 z4 ^4 G l, _5 y& N7 r//关闭连接
0 I x# A5 o3 f6 |- Sfclose($conn);% d# S( f' m* x* R/ m" d
}
/ {) b" N; j, Y$ Z5 r//关闭socket
* D& h+ G! z. f( z" g0 b3 [# kfclose($socket);7 }. g3 m2 Y% u1 w I4 Q! E% ]
}
* B* P: J" J6 u7 o//- y& x! _4 t/ t) `) O
$file=test.txt; //定义文件. u5 R' m4 O# s% b4 V
$fp=fopen($file,w); //打开数据流
c1 {. n- h% P3 _ K; l/ P1 Oif($fp) //如果成功打开
: [) q) [* L- z8 m4 j8 d{
9 w6 E/ y" S& Q5 C: w3 ostream_set_write_buffer($fp,0); //设置缓冲区3 d8 K# t9 n( F* j+ W8 k9 e
fwrite($fp,$output); //写入内容
- M# M9 c2 n0 B/ ]% ]fclose($fp); //关闭数据流& |0 k4 ^& \9 t! m: E( @3 z
}
- R3 e, }0 _$ v# O+ J' U希望本文所述对大家的php程序设计有所帮助。+ u/ e* t* @* `7 W: A
6 N. Q$ o3 ]5 ~) ^0 z4 L7 \% a7 v更多网页制作信息请查看: 网页制作 |