0

0

PHP汉语件读写操作

php中文网

php中文网

发布时间:2016-06-13 10:40:41

|

995人浏览过

|

来源于php中文网

原创

PHP中文件读写操作

你一定用过“网络硬盘”吧,利用它可以按自己的需要新建文件夹来分门别类地把自己的一些文件保存起来,有的还可以在线编辑文件。

  php中提供了一系列的i/o函数,能简捷地实现我们所需要的功能,包括文件系统操作和目录操作(如“复制[copy]”)。下面给大家介绍的是基本的文件读写操作:(1)读文件;(2)写文件;(3)追加到文件。

  以下是一篇关于文件基本读写操作的文章,我曾经就是看了这篇文章后学会文件基本操作的,在这里发出来与大家共享:

DBShop开源商城系统
DBShop开源商城系统

DBShop开源商城系统,使用PHP语言基于Laminas(Zendframework 3) + Doctrine 2 组合框架开发完成。可定制、多终端、多场景、多支付、多货币;严谨的安全机制,可靠稳定;方便的操作管理,节约时间;清晰的权限分配,责任分明;便捷的更新处理,一键搞定;丰富的插件市场,扩展无限。

下载
[复制到剪贴板]TEXT代码:
  1. 作者:?Mukul
  2. 翻译:?无伤?
    读文件:

    [复制到剪贴板]PHP代码:
    1. ?
    2. ?
    3. $file_name?=?"data.dat";?
    4. //?要读取的文件的绝对路径:?homedata.dat?
    5. ?
    6. $file_pointer?=?fopen($file_name,?"r");?
    7. //?打开文件,"r"?是一种模式,或者说我们要进行的操作方法,详见本文后面的介绍
    8. ?
    9. $file_read?=?fread($file_pointer,?filesize($file_name));?
    10. //?通过文件指针读取文件内容
    11. ?
    12. fclose($file_pointer);?
    13. //?关闭文件
    14. ?
    15. print?"读取到的文件内容是:?$file_read";?
    16. //?显示文件内容
    17. ?>?
    18. ?
      写文件:

      [复制到剪贴板]PHP代码:
      1. ?
      2. ?
      3. $file_name?=?"data.dat";?
      4. //?绝对路径:?homedata.dat?
      5. ?
      6. $file_pointer?=?fopen($file_name,?"w");?
      7. //?"w"是一种模式,详见后面
      8. ?
      9. fwrite($file_pointer,?"what?you?wanna?write");?
      10. //?先把文件剪切为0字节大小,?然后写入
      11. ?
      12. fclose($file_pointer);?
      13. //?结束
      14. ?
      15. print?"数据成功写入文件";?
      16. ?
      17. ?>?
      18. ?
        追加到文件后面:

        [复制到剪贴板]PHP代码:
        1. ?
        2. ?
        3. $file_name?=?"data.dat";?
        4. //?绝对路径:?homedata.dat?
        5. ?
        6. $file_pointer?=?fopen($file_name,?"a");?
        7. //?"w"模式
        8. ?
        9. fwrite($file_pointer,?"what?you?wanna?append");?
        10. //?不把文件剪切成0字节,?把数据追加到文件最后
        11. ?
        12. fclose($file_pointer);?
        13. //?结束
        14. ?
        15. print?"数据成功追加到文件";?
        16. ?
        17. ?>?
        18. ?
          以上只是简单介绍,下面我们要讨论一些更深层的。

          有时候会发生多人写入的情况(最常见是在流量较大的网站),会产生无用的数据写入文件,?例如:

          info.file文件内容如下?->?

          |1|Mukul|15|Male|India?(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?

          上例中当PHP写入Rob的信息到文件的时候,Bill正好也开始写入,这时候正好需要写入Rob纪录的'n',引起文件破坏。

          我们当然不希望发生这样的情况,?所以让我们看看文件锁定:

          [复制到剪贴板]PHP代码:
          1. ?
          2. ?
          3. $file_name?=?"data.dat";?
          4. ?
          5. $file_pointer?=?fopen($file_name,?"r");?
          6. ?
          7. $lock?=?flock($file_pointer,?LOCK_SH);?
          8. //?我使用4.0.2,所以用LOCK_SH,你可能需要直接写成?1.?
          9. ?
          10. if?($lock)?{?
          11. ?
          12. $file_read?=?fread($file_pointer,?filesize($file_name));?
          13. $lock?=?flock($file_pointer,?LOCK_UN);?
          14. //?如果版本小于PHP4.0.2,?用?3?代替?LOCK_UN
          15. ?
          16. }?
          17. ?
          18. fclose($file_pointer);?
          19. ?
          20. print?"文件内容为?$file_read";?
          21. ?
          22. ?>?
          23. ?
            上例中,如果两个文件read.php和read2.php都要存取该文件,那么它们都可以读取,但是当一个程序需要写入的时候,它必须等待,直到读操作完成,文件所释放。

            [复制到剪贴板]PHP代码:
            1. ?
            2. ?
            3. $file_name?=?"data.dat";?
            4. ?
            5. $file_pointer?=?fopen($file_name,?"w");?
            6. ?
            7. $lock?=?flock($file_pointer,?LOCK_EX);?
            8. //?如果版本低于PHP4.0.2,?用?2?代替?LOCK_EX
            9. ?
            10. if?($lock)?{?
            11. ?
            12. fwrite($file_pointer,?"what?u?wanna?write");?
            13. flock($file_pointer,?LOCK_UN);?
            14. //?如果版本低于PHP4.0.2,?用?3?代替?LOCK_UN
            15. ?
            16. }?
            17. ?
            18. fclose($file_pointer);?
            19. ?
            20. print?"数据成功写入文件";?
            21. ?
            22. ?>?
            23. ?
              虽然"w"模式用来覆盖文件,?单我觉得不适用。

              [复制到剪贴板]PHP代码:
              1. ?
              2. ?
              3. $file_name?=?"data.dat";?
              4. ?
              5. $file_pointer?=?fopen($file_name,?"a");?
              6. ?
              7. $lock?=?flock($file_pointer,?LOCK_EX);?

相关文章

如何正确读取 PHP 会话数据:避免直接操作 session 文件的常见陷阱

Vue-Laravel 文件上传失败:FormData 为空的完整解决方案

Phpstorm怎样设置PHP编码格式_Phpstorm设置PHP编码格式法【说明】

PHP怎样操作文件_文件读写与删除操作指南【手册】

PHP怎样读取CSV文件_读取CSV文件数据的步骤【操作】

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

上一篇:转:十个超级有用的PHP代码片断 下一篇:优化PHP程序的步骤

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

32

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

23

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

16

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

268

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

195

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

170

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

85

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10.7万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

最新文章

更多
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号