本篇文章主要介绍如何创建和修改文件内容,感兴趣的朋友参考下,希望可以对大家有所帮助。file_put_contents写入文件

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

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

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

<?php $data = "在PHP中文网学好PHP,妹子票子不再话下!"; $numbytes = file_put_contents('binggege.txt', $data); //如果文件不存在创建文件,并写入内容 if($numbytes){ echo '写入成功,我们读取看看结果试试:'; echo file_get_contents('binggege.txt'); }else{ echo '写入失败或者没有权限,注意检查'; }?>fwrite配合fopen进行写入操作int fwrite ( resource $文件资源变量, string $写入的字符串 [, int 长度])<?php $filename = 'test.txt'; $fp= fopen($filename, "w"); //w是写入模式,文件不存在则创建文件写入。 $len = fwrite($fp, '我是一只来自北方的狼,却在南方冻成了狗'); fclose($fp); print $len .'字节被写入了\n';?>

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

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

模式说明

r只能读不能使用fwrite写

r+可操作读、写

w只可以写功能

w+即可读又可以写

a模式和w模式的不同

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

<?php $filename = 'test.txt'; $fp= fopen($filename, "a"); $len = fwrite($fp,'读大学迷茫了,PHP中文网学PHP给你希望'); echo $len .'字节被写入了\n';?>

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

总结:

模式总结

x每次写入会干掉原有文件的内容,文件不存在都会创建

a每次写入都会向文件的尾端追加内容

x模式和w模式的不同

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

<?php $filename = 'test.txt'; $fp= fopen($filename, "x"); $len = fwrite($fp,'读大学迷茫了,PHP中文网学PHP给你希望'); echo $len .'字节被写入了\n';?>

我们会发现:

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

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

resource tmpfile ( )

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

php移动、拷贝和删除文件

重命名文件

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

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

<?php //旧文件名$filename = 'test.txt';//新文件名$filename2 = 'reName.txt.';//修改名称rename($filename, $filename2);?>

复制文件

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

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

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

<?php //旧文件名 $filename = 'copy.txt'; //新文件名 $filename2 = 'copy2.txt'; //修改名字。 copy($filename, $filename2);?>

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

删除文件

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

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

bool unlink(指定路径的文件)<?php $filename = 'test.txt'; if (unlink($filename)) { echo "删除文件成功 $filename!\n"; } else { echo "删除 $filename 失败!\n"; }?>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文件是否存在。

<?phpif(file_exists('install.lock')){ echo '已安装,请不要再次进行安装'; exit; }?>php 文件常用函数和常量

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

我们会使用到一个常量:

DIRECTORY_SEPARATOR //代表反斜杠

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

<?php//获取文件路劲,然后用DIRECTORY_SEPARATOR替换路劲中的'/'、'\\';$_current_file = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, __FILE__);//重新字定义常量,输出格式化后的文件路劲define('__CUR_FILE__', $_current_file);echo __CUR_FILE__; // D:\myphp\test\inidex.php?>

文件指针操作函数

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

其它操作文件的函数

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

函数名功能

file把整个文件读入一个数组中

fgets从文件指针中读取一行,读到最后返回false

fgetc从文件指针中读取一个字符,读到最后返回false

ftruncate将文件截断到给定的长度