$7.49 .com domain with free InstantPage Website Builder$1.99 Web Hosting   捷飞网络官方淘宝店   Godaddy 优惠码
返回列表 发帖
分享到:




[PHP 语言] 关于PHP读写文件函数及案例

说明 : z* u& Y; E! p& \, S
resource fopen ( string filename, string mode [, int use_include_path [, resource zcontext]]) fopen() 将 filename 指定的名字资源绑定到一个流上,打开文件获取文件开始句柄。 mode 参数指定了所要求到该流的访问类型。可以是以下:  表格 1. fopen() 中的 mode 的可能值列表  $ J. S% M, }# k* D/ R, C& v
. R1 K2 I1 K/ L$ }# L+ e0 {" N. M& l
mode 说明  
1 `/ ~6 M) S4 c2 ~. w4 s# {'r' 只读方式打开,将文件指针指向文件头。  'r+' 读写方式打开,将文件指针指向文件头。  
  t3 i- r7 R, B* j: Z! Z6 k% B'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。  'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。  'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。  'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。  5 T6 o+ U2 q: e8 X9 G* S2 b. s' F
'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。  
; z2 v% }' q$ n5 T3 h'x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
8 b* f+ Y- o  F& f3 dstring fread ( int handle, int length)
$ P$ T( J* f8 E# r* ^9 Y9 Jfread() 从文件指针 handle 读取最多 length 个字节。 该函数在读取完 length 个字节数,或到达 EOF 的时候, , S8 J" W( b. x# M
或(对于网络流)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。
8 g$ u; `3 H' B) kbool fclose ( resource handle) fclose -- 关闭一个已打开的文件指针 % I( U9 ~  \5 m5 n) T. o
int fwrite ( resource handle, string string [, int length])
) H, s* I  K4 O1 Hfwrite() 把 string 的内容写入 文件指针 handle 处。 如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。 fwrite() 返回写入的字符数,出现错误时则返回 FALSE 。5 L3 \/ U1 ?0 \( y/ z

9 y9 P( ]* y2 L; w( b0 x+ bEXP:3 [1 w+ t* r' y3 F- g7 a# d( M4 l9 I$ u
读文件:
0 D7 H0 f  T+ z<?php 8 \7 n9 C" R% J, |1 B
$fileName="c:\qq.txt"; $handle=fopen($fileName,"r");
) p# c0 v& m4 e) j6 M: |$fileContent=fread($handle,fileSize($fileName)); fclose($handle); ) A& i  r- }* C, s5 t
print "读取到的文件内容是:$fileContent"; ?>   E' T4 e8 V! `1 ^8 N. L# m% s/ L/ Z
7 A' [) x- p1 i3 v* Q  y& P& I; K
写文件:(会覆盖原来的内容)
; f1 f5 x+ _- i% L" V<?php $ \/ u; _% \& g
$fileName="c:\qq.txt"; . g3 v1 e, }" N8 C
$someContent="这里是要写入的内容"; $handle=fopen($fileName,"w"); fwrite($handle,$someContent); fclose($handle); # J+ _3 G# n/ L) J% R8 f8 e9 J
print "数据成功写入文件"; ?>
! x  z+ e7 @" x. w3 L( u追加内容到文件后面:(如果文件不存在则尝试创建之。)
- n+ I4 _( u/ M! i: n3 t) ^<?php % g0 {+ K# X: d4 J& D
$fileName="c:\qq.txt";
3 H) w) Q, v6 l$ W1 C" F: D/ W$someContent="这里是要追加的内容"; $handle=fopen($fileName,"a"); fwrite($handle,$someContent); fclose($handle);
. M, j' f% H( L. Zprint "数据成功写入文件"; ?>
1 m* n( c0 F8 R
  }4 N* J: i" {PHP可以对txt文件读写,相关函数如下:
! m8 R5 p' \' t* D: h" |. b/ \' F4 ^fopen()打开文件( K' k# l6 x# g+ F' C
格式如:fopen("文件路径","r")
4 F: n' Q$ x- O7 |% I% Vfopen()函数有参数第一个参数要指明文件,第二个参数可以是r,w等,读文件时就可以是r,写文件时可以是w,具体查看一下手册!
) Z2 x& v+ k! g) [5 p- ?" r9 @1 x/ g1 R' b6 A* U' A
fwrite()和 fputs()写文件
; N( W% A/ \8 c6 s5 y5 F具体参照手册,有简单的例子,应该能看明白5 J3 Q6 w/ l2 |2 b# \

& D- }6 L, G% L) V4 T- o5 w8 v. Hfclose()关闭文件# g" R/ ~$ L, q1 |0 d
这个应该能理解到吧!0 v2 K' n" K+ ]6 A6 ^7 \

, p5 ^( @: f' m) t( D% _fgets()读取记录
6 a2 U- A& r: i! h. h当然上面几个是常用,参数就看情况应用,还有其他函数请查看手册!先暂位,今晚再继续按你要求写段代码,现在下班喽```
! L1 v! M8 h- h1 N" j& ^研究了一整晚,现在23:47分,主要是你要求id累加,文本操作有局限,要是数据库早就OK了!不过也终于研究出来!辛苦..9 Z1 d3 s1 L, q4 T# Z* R
代码如下:
0 ~1 X2 x. Q! @4 _* n--------------------------------------------3 C9 k: W& l7 s4 k9 I% Z
<?php6 V4 c7 u* ?% Z& B* L
//$name = $_POST['name'];; D1 b" ^+ Q5 R3 w+ P. @
//$password = $_POST['password']; 7 @" k6 ~" J% ?  b7 P2 R4 P
$name = '0758jian'; # B- n7 q, w: b( l/ {' {
$password = '123456';
( g9 O- n3 |' Y" z  E" ?$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
5 M# M1 ^) i$ S) t* gif (!file_exists("$DOCUMENT_ROOT/study/info.txt")) { //注意你的站点的实际路径 0 r) o! ^( {1 J2 P& t
$fp = fopen("$DOCUMENT_ROOT/study/info.txt",'ab'); //以二进制追加方式打开文件,没文件就创建 * }* F, s/ m- M/ M
$id = 1; 1 q0 _  }& a8 P$ C& X
$col ="$id"."\t"."$name"."\t"."$password"."\n"; //记录赋值
3 F! d! R1 r! I4 y+ H7 V# Efwrite($fp, $col, strlen($col)); //插入第一条记录   _* b' V! q# f. h! W
fclose($fp); //关闭文件 : m2 B% X  P" i6 D, K
echo "创建文件成功并添加了一条记录";
' L; C! a3 [7 X3 S} else { * j2 S& q* e% w4 n+ E
if (!$fp = fopen("$DOCUMENT_ROOT/study/info.txt",'r')) { 0 S# K5 F0 c% p7 F2 d& [7 @; A1 v0 t0 {
echo '文件访问出错';
: z4 R2 d1 }: Q$ d& Iexit;
+ a$ R' I1 e/ |+ ]+ A1 i. s  B}
2 {6 F0 O" R- L6 o  b6 N% p" mwhile (!feof($fp))
6 z, K* Z3 D( r: o* B& k2 d{ 7 L+ s  K' P) ?1 J, U
$co[] = fgets($fp,4096);
5 r" I) o+ J3 a' m3 }9 U7 h}
7 {. t8 U. P2 I" s2 }! p9 a6 v$numco = count($co); ' l+ w* `# d5 m! A" j8 g8 i0 H4 S# R
$strco = $co[$numco-2]; / S( e, f/ s; G
$exco = explode(' ',$strco); % d1 X% h7 p; A3 ]; q) n
$id = $exco[0]+1;
8 M! H: W) Q/ c8 U0 v& |% q7 lfclose($fp);
- G) s4 C( t+ p. U+ B$fp = fopen("$DOCUMENT_ROOT/study/info.txt",'ab'); $ n5 @& F3 {' M- I
$col ="$id"."\t"."$name"."\t"."$password"."\n"; 5 t+ q/ q7 |( J& d, n
fwrite($fp, $col, strlen($col));
2 d) G/ a: L  Hfclose($fp);
" j' m/ n4 L: @+ W# mecho '总共有:'.$numco.'条记录,记录添加成功!!';
4 W: X5 m: q5 e$ X( `0 l}
- V! A; e+ q& r8 M3 z( [; |?>
9 v( A0 G/ ?) i2 d嘻嘻,不明白的地方可以留言给我~我亲自测试OK,请注路径问题!至于提交表单和显示我就没写你能看明白上面那段代码就应该写出显示没问题的!
3 m' m4 `; c. g! I
  Z3 D5 O1 N' K6 a参考自网络.

美国VPS、域名代购:http://tu8l.taobao.com

返回列表
Namecheap
Namecheap.com - Cheap domain name registration, renewal and transfers - Free SSL Certificates - Web Hosting
互联网安全