日期:2010-07-27 09:54:00 来源:本站整理
PHP教程之对文件读写操作[网站编程]
本文“PHP教程之对文件读写操作[网站编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
刚开始学,有点涩,有点不太懂得.就以记忆为主.在多加自己操作增添理解,直到有一天融会贯穿 .
以下为文件读写操作的 基本PHP函数及情势(看不懂得就记着他)
关于情势:
'r' - 只读方法翻开, 文件指针置于文件头
'r+' - 读写方法翻开,文件指针置于文件头
'w' - 只写翻开,文件指针置于文件头, 文件被剪切为0字节, 假如文件不存在, 尝试成立文件
'w+' - 读写翻开,文件指针置于文件头, 文件大小被剪切为0字节,假如文件不存在, 尝试成立文件
'a' - 只写方法翻开,文件指针置于文件尾,假如文件不存在,尝试成立文件
'a+' - 读写翻开,文件指针置于文件尾,假如文件不存在, 尝试成立文件
fgets — 从文件指针中读取一行
fgetss — 从文件指针中读取一行并过滤掉 HTML 标志
file — 把整个文件读入一个数组中
fgetcsv — 从文件指针中读入一行并解析 CSV 字段
你一定用过“网络硬盘”吧,操纵它可以按自己的需求新建文件夹来分门别类地把自己的一些文件保存起来,有的还可以在线编辑文件.
PHP中供应了一系列的I/O函数,能简便地实现我们所需求的功效,包含文件系统操作和目录操作(如“复制[copy]”).下面给大家介绍的是基本的文件读写操作:(1)读文件;(2)写文件;(3)追加到文件.
TEXT 代码:
作者: Mukul
翻译: 无伤 <goghs@mail.com>
读取文件:
<?php $file_name="data.dat";// 要读取的文件的绝对途径: homedata.dat $file_pointer=fopen($file_name,"r");// 翻开文件,"r" 是一种情势,大概说我们要举行的操作办法,详见本文背面的介绍 $file_read=fread($file_pointer,filesize($file_name));// 通过文件指针读取文件内容 fclose($file_pointer);// 关闭文件 print"读取到的文件内容是: $file_read";// 显示文件内容?>
- <?php $file_name="data.dat";// 要读取的文件的绝对途径: homedata.dat $file_pointer=fopen($file_name,"r");// 翻开文件,"r" 是一种情势,大概说我们要举行的操作办法,详见本文背面的介绍 $file_read=fread($file_pointer,filesize($file_name));// 通过文件指针读取文件内容 fclose($file_pointer);// 关闭文件 print"读取到的文件内容是: $file_read";// 显示文件内容?>
写文件:
<?php $file_name="data.dat";// 绝对途径: homedata.dat $file_pointer=fopen($file_name,"w");// "w"是一种情势,详见背面 fwrite($file_pointer,"what you wanna write");// 先把文件剪切为0字节大小, 然后写入 fclose($file_pointer);// 完毕 print"数据成功写入文件"; ?>
追加到文件背面:
- <?php $file_name="data.dat";// 绝对途径: homedata.dat $file_pointer=fopen($file_name,"a");// "w"情势 fwrite($file_pointer,"what you wanna append");// 不把文件剪切成0字节, 把数据追加到文件最后 fclose($file_pointer);// 完毕 print"数据成功追加到文件"; ?>
以上只是简单介绍,下面我们要谈论一些更深层的.
有时刻会发生多人写入的情形(最常见是在流量较大的网站),会产生无用的数据写入文件, 比方:
info.file文件内容以下 ->
|1|Mukul|15|Male|India (n)
|2|Linus|31|Male|Finland (n)
|2|Linus|31|Male|Finland (n)
目前两个人同时注册,惹起文件破坏->
info.file ->
|1|Mukul|15|Male|India
|2|Linus|31|Male|Finland
|3|Rob|27|Male|USA|
Bill|29|Male|USA
|2|Linus|31|Male|Finland
|3|Rob|27|Male|USA|
Bill|29|Male|USA
上例中当PHP写入Rob的信息到文件的时刻,Bill恰好也开始写入,这时刻恰好需求写入Rob记录的'n',惹起文件破坏.
我们当然不但愿发生这样的情形, 所以让我们看看文件锁定:
- <?php $file_name="data.dat"; $file_pointer=fopen($file_name,"r"); $lock=flock($file_pointer, LOCK_SH);// 我利用4.0.2,所以用LOCK_SH,你大概需求直接写成 1. if($lock){ $file_read=fread($file_pointer,filesize($file_name));$lock=flock($file_pointer, LOCK_UN);// 假如版本小于PHP4.0.2, 用 3 替换 LOCK_UN } fclose($file_pointer); print"文件内容为 $file_read"; ?>
上例中,假如两个文件read.php和read2.php都要存取该文件,那么它们都可以读取,但是当一个程序需求写入的时刻,它必须等候,直到读操作完成,文件所释放.
- <?php $file_name="data.dat"; $file_pointer=fopen($file_name,"w"); $lock=flock($file_pointer, LOCK_EX);// 假如版本低于PHP4.0.2, 用 2 替换 LOCK_EX if($lock){ fwrite($file_pointer,"what u wanna write");flock($file_pointer, LOCK_UN);// 假如版本低于PHP4.0.2, 用 3 替换 LOCK_UN } fclose($file_pointer); print"数据成功写入文件"; ?>
固然"w"情势用来覆盖文件, 单我认为不实用.
- <?php $file_name="data.dat"; $file_pointer=fopen($file_name,"a"); $lock=flock($file_pointer, LOCK_EX);// 假如版本低于PHP4.0.2, 用 2 替换 LOCK_EX if($lock){ fseek($file_pointer,0, SEEK_END);// 假如版本小于PHP4.0RC1, 利用 fseek($file_pointer, filsize($file_name)); fwrite($file_pointer,"what u wanna write");flock($file_pointer, LOCK_UN);// 假如版本低于PHP4.0.2, 用 3 替换 LOCK_UN } fclose($file_pointer); print"数据成功写入文件"; ?>
Hmmm..., 关于追加数据与其他操作有点差别,就是FSEEK! 确认文件指针在文件尾部老是一个好习惯.
假如是在Windows系统下, 上面的文件中文件名前面需求加上''.
以上是“PHP教程之对文件读写操作[网站编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论