0

0

php如何创建和修改文件内容

小云云

小云云

发布时间:2018-03-21 11:24:31

|

5516人浏览过

|

来源于php中文网

原创

本文主要和大家分享php如何创建和修改文件内容,希望能帮助到大家。


file_put_contents写入文件

我们先来学习第一种写入文件的方式:

int file_put_contents ( string $文件路径, string $写入数据])

功能:向指定的文件当中写入一个字符串(会清空原有的内容),如果文件不存在则创建文件。返回的是写入的字节长度

fwrite配合fopen进行写入操作

int fwrite ( resource $文件资源变量, string $写入的字符串 [, int 长度])

总结:1.不论有没有新建都会打开文件重新写入2.原有的文件内容会被覆盖掉3.文件不存在会创建

那我们来对比一下以下几个模式的不同:

模式 说明
r 只能读不能使用fwrite写
r+ 可操作读、写
w 只可以写功能
w+ 即可读又可以写

a模式和w模式的不同

同样是下面的这段代码,我们改为a模式。

立即学习PHP免费学习笔记(深入)”;

打开网页执行这段代码,你会发现:每刷新一次,文件中就会多一段:读大学迷茫了,PHP中文网学PHP给你希望。

总结:

模式 总结
x 每次写入会干掉原有文件的内容,文件不存在都会创建
a 每次写入都会向文件的尾端追加内容

x模式和w模式的不同

这段代码我们再实验一次,改为x模式:

我们会发现:

1.文件存在的时候会报错2.如果把$filename 改成其他的文件名,就可以了。但是,再次刷新的时候又报错了3.x+ 是增强的x模式。读取时也可以使用。

php 创建临时文件

我们来学习一下这个函数:

resource tmpfile ( )

功能:创建一个临时文件,返回资源类型。关闭文件即被删除。

php移动、拷贝和删除文件

重命名文件

bool rename($旧名,$新名);

这个函数返回一个bool值,将旧的名字改为新的名字。

复制文件

复制文件,就相当于是克隆技术,将一个原来的东西再克隆成一个新的东西。两个长得一模一样。

bool copy(源文件,目标文件)

功能:将指定路径的源文件,复制一份到目标文件的位置。

注:1·复制的文件名不能和源文件同名,否则无法复制;2.复制文件名如果已经存在的话,会把源文件的内容copy一份替换复制文件的内容。

删除文件

删除文件就是将指定路径的一个文件删除,不过这个删除是直接删除。使用的是windows电脑,你在回收站看不到这个文件。

你只会发现,这个文件消失了。

bool unlink(指定路径的文件)

php检测文件属性函数

bool file_exists ( $指定文件名或者文件路径)
功能:文件是否存在。bool is_readable ( $指定文件名或者文件路径)
功能:文件是否可读bool is_writeable ( $指定文件名或者文件路径)
功能:文件是否可写bool is_executable ( $指定文件名或者文件路径)
功能:文件是否可执行bool is_file ( $指定文件名或者文件路径)
功能:是否是文件bool is_dir ( $指定文件名或者文件路径)
功能:是否是目录void clearstatcache ( void )
功能:清楚文件的状态缓存

我们来讲第一个例子,文件锁。如果已经安装了,存在安装锁就提示已安装,否则就继续安装。

我们假设安装界面的网址是:install.php,安装的锁文件是install.lock。我们就可以检测install.lock文件是否存在。

php 文件常用函数和常量

|平台 |分割符|--|--||windows |
|类unix |/

我们会使用到一个常量:

DIRECTORY_SEPARATOR //代表反斜杠

由于FILE是PHP的预定义常量,所以没办法改变,如果需要让FILE也自适应操作系统。那么就是不要用FILE,可以用自定义的常量,并且把FILE处理一下,如下:

MVM mall 网上购物系统
MVM mall 网上购物系统

采用 php+mysql 数据库方式运行的强大网上商店系统,执行效率高速度快,支持多语言,模板和代码分离,轻松创建属于自己的个性化用户界面 v3.5更新: 1).进一步静态化了活动商品. 2).提供了一些重要UFT-8转换文件 3).修复了除了网银在线支付其它支付显示错误的问题. 4).修改了LOGO广告管理,增加LOGO链接后主页LOGO路径错误的问题 5).修改了公告无法发布的问题,可能是打压

下载

文件指针操作函数

rewind ( resource handle)
功能:指针回到开始处

fseek ( resource handle, int offset [, int from_where])
功能:文件指针向后移动指定字符
 demo2.txt
    >     aaaaa
    >     bbbbb
    >     11111
    >     22222$fp = fopen('demo2.txt', 'r+');//读取10个字符, //读取前十个字节(空格算一个,换行算两个字节)echo fread($fp,10);//指针设置回到开始处    rewind($fp);    // aaaaa bbb//再读取10次看看输出的是什么echo '
';echo fread($fp,10); // aaaaa bbbecho '
';//文件指针向后移动10个字符,(当前指针在最开始的位置)echo fseek($fp,10); // fseek的返回值为0echo '
';//再看看文件中输出的是什么echo fread($fp,10); // bb 11111 echo '
'; fclose($fp);?>

filesize 检测文件的大小

其它操作文件的函数

其实还有一些其他操作文件的函数,读取文件

函数名 功能
file 把整个文件读入一个数组中
fgets 从文件指针中读取一行,读到最后返回false
fgetc 从文件指针中读取一个字符,读到最后返回false
ftruncate 将文件截断到给定的长度

fgetc

//以增加的r模式打开$fp = fopen('demo2.txt','r+');
//你会发现每次只读一个字符echo  fgetc($fp) .'
'; //只读取一个字符//我要全部读取可以,读取一次将结果赋值一次给$stringwhile($string = fgetc($fp)) { echo $string; //读取不到返回false}

fgets

//以增加的r模式打开$fp = fopen('demo.txt','r+');
//你会发现每次读取一次打开一行echo  fgets($fp);echo  fgets($fp);echo  fgets($fp);echo  fgets($fp);  
 //读取不到返回false

ftruncate返回值为1 int

ftruncate($file , len);截取的长度大于文件内容长度,会用空字符填补
//打开我们上面的demo.txt文件$file = fopen("demo.txt", "a+");
//你可以数数20个字有多长,看看是不是达到效果了echo ftruncate($file,20);
fclose($file);

文件的时间函数

函数 功能说明
filectime 文件创建时间
filemtime 文件修改时间
fileatime 文件上次访问时间

php 文件锁处机制

文件锁的用途:

若一个人在写入一个文件,另外一个人同时也打个了这个文件进行写入文件。这情况下,如果遇到一定的碰撞概率的话,不知道到底谁的操作为准。因此,这个时候我们引入锁机制。若用户A在写入或者读取这个文件的时候,将文件加上共享所。我可以读,其他人也可以读。但是,我如果这与的时候。我使用独占锁。这个文件归我了,你们都别动,除非我将文件锁进行释放。

注意:加上了文件锁后要注意释放。

php 文件锁处机制文件锁机制一般在单一打开文件的时候根本看不到效果。这一块的学习有一点点抽象。

大家不要去思考怎么实现的呀?

为什么看不到效果呀?答:因为电脑的操作太快了,基本上是毫秒级的。所以这个实验其实是看不到效果的。

这一章了解文件锁的基本概念即可,熟悉文件锁函数和锁机制。

文件锁的用途:

若一个人在写入一个文件,另外一个人同时也打个了这个文件进行写入文件。这情况下,如果遇到一定的碰撞概率的话,不知道到底谁的操作为准。因此,这个时候我们引入锁机制。若用户A在写入或者读取这个文件的时候,将文件加上共享所。我可以读,其他人也可以读。但是,我如果这与的时候。我使用独占锁。这个文件归我了,你们都别动,除非我将文件锁进行释放。

注意:不论加上了文件锁后要注意释放。

我们来看看这个函数:

bool flock ( resource $handleFile , int $operation)

我们来看看锁类型:

锁类型 说明
LOCK_SH 取得共享锁定(读取的程序)
LOCK_EX 取得独占锁定(写入的程序)
LOCK_UN 释放锁定(无论共享或独占)

我们接下来把demo2.txt加上一个独占锁,进行写入操作。

    $fp = fopen("demo2.txt", "r+");    
    // 进行排它型锁定
    if (flock($fp, LOCK_EX)) {    
        echo '1';
    
        fwrite($fp, "文件这个时候被我独占了哟\n");    
        // 释放锁定
        flock($fp, LOCK_UN);
    } else {        echo "锁失败,可能有人在操作,这个时候不能将文件上锁";
    }
    
    fclose($fp);

说明:

1.上例中我为了写入文件,把文件加上了独占锁。

2.如果我操作完成,写入完成后,解除掉了独占锁。

3.如果是在读取文件的时候,大家可加按照同样的处理思路加上共享锁。

相关文章

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

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

下载

相关标签:

php

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

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

65

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

43

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

35

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

41

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

204

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

9

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

8

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

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

精品课程

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

共137课时 | 8.1万人学习

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

共6课时 | 6.9万人学习

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

共13课时 | 0.8万人学习

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

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