php打开文件读写函数,php中常用文件操作读写函数介绍

本文章介绍了下面几个常用的文件操作函数 file_get_contents 读取整个文件内容 fopen 创建和打开文件 fclose 关闭文件 fgets 读取文件一行内容 file_exists 检查文件或目录是否存在 file_put_contents 写入文件 fwrite 写入文件

用 PHP 内置函数 file_exists 可以检查某个文件或目录是否存在.如果文件或目录存在,file_exists 函数返回 TRUE,如果不存在,则返回 FALSE.

下面是一个简单的检查文件是否存在的实例代码:

实例代码如下:

?

$filename="C:\blabla\php\hello.txt";

if(file_exists($filename))

{echo"The file $filename exists.";

}else{

echo"The file $filename does not exist."

;}?>

如果文件存在,执行该 PHP 文件的显示结果是:

The file C:blablaphphello.txt exists.

如果文件不存在,执行该 PHP 文件的显示结果是:

The file C:blablaphphello.txt does not exist.

你也可以用file_exists 函数测试某个目录是否存在,示例代码如下:

实例代码如下:

if(file_exists("C:\blabla\php"))

{echo"yes";}

else

{echo"no";}

用 PHP 内置函数 file_get_contents 可以读取整个文件内容.

file_get_contents 函数读取整个文件,返回一个字符串.file_get_contents 最简单的写法如下:

file_get_contents(filepath)

举个例子,你有一个 .txt 文件,文件的路径为:

C:blablaphphello.txt

下面的 php 代码用 file_get_contents 函数读取该文件,并输出该文件内容:

实例代码如下:

$f=file_get_contents("C:\blabla\php\hello.txt");

echo$f;?>

注意:由于文件路径含有反斜杠,而在 PHP 字符串里,反斜杠需要转义,要用两个反斜杠表示.(如果你忘记了 PHP 某些特殊字符的转义,请翻阅前面所讲的 PHP 字符串.)

file_get_contents 函数的返回值是所读取的文件内容字符串,如果出错,返回 FALSE.

使用 PHP 内置函数 fopen,可以打开一个文件.

打开文件

fopen 最简单语法如下:

fopen(filepath,mode)

下面是打开一个文件的 PHP 代码示例:

实例代码如下:

$f=fopen("c:\data\info.txt","r");

?>

其中,c:\data\info.txt 是文件路径,r 表示打开文件的模式(mode) 为只读 (read only) 模式.

fopen 函数打开文件的模式有以下几种:

模式 (mode) 说明

r 只读,文件指针在文件开始处.

r+ 读和写,文件指针在文件开始处.

w 只写,文件指针在文件开始处,将文件长度截成0.

如果文件不存在,创建文件.

w+ 读和写,文件指针在文件开始处,将文件长度截成0.

如果文件不存在,创建文件.

a 只写,文件指针在文件末尾处.

如果文件不存在,创建文件.

a+ 读和写,文件指针在文件末尾处.

如果文件不存在,创建文件.

x 只写,文件指针在文件开始处.

如果文件已经存在,fopen () 函数返回 FALSE 并产生一个E_WARNING 级别的错误.

如果文件不存在,创建文件.

x+ 读和写,文件指针在文件开始处.

如果文件已经存在,fopen () 函数返回 FALSE 并产生一个E_WARNING 级别的错误.

如果文件不存在,创建文件.

如果成功打开文件,fopen 函数的返回值是一个文件指针资源 (a file pointer resource),如果出错,返回 FALSE.

创建文件

选择 fopen 函数参数 mode 的适当的值 ,你可以用 fopen 创建一个文件,比如:

实例代码如下:

$f=fopen("c:\data\101.txt","w");

$f=fopen("c:\data\102.txt","w+");

$f=fopen("c:\data\103.txt","a");

$f=fopen("c:\data\104.txt","a+");

$f=fopen("c:\data\105.txt","x");

$f=fopen("c:\data\106.txt","x+");

?>

用 PHP 内置函数 fgets 可以读取文件的一行内容.

fgets读取文件一行内容的语法是:

fgets(filepointer)

下面我们举个例子讲述如何一行行读取一个文件.

假设我们有一个 sites.txt 文件,该文件有三行,内容如下:

woyouxian.comblabla.cngoogle.com

sites.txt 的文件路径是:

C:blablaphpsites.txt

我们用 PHP 一行行读取文件内容,PHP代码如下:

实例代码如下:

$f=fopen("C:\blabla\php\sites.txt","r");

while(!feof($f)){

$line=fgets($f);

echo"site: ",$line,"

";

}

fclose($f);?>

执行该 PHP 文件,返回的显示结果是:

site: woyouxian.comsite: blabla.cnsite: google.com

该 PHP 代码的第一行是打开文件,最后一行是关闭一个文件.当中的 while 循环语句表示,当文件没有结束,就读取一行,循环执行,直到文件指针到文章末尾为止.

feof 函数是PHP 的一个内置函数,用来测试文件指针是否已经到了文件末尾.如果是返回 TRUE,如果不是,返回 FALSE.eof 的英文意思就是 end of file,很容易记.

正常情况下,fgets 函数的返回值是一个字符串,如果出错,返回 FALSE.

讲述使用 PHP 内置函数 fclose 关闭一个文件.

fclose 函数语法如下:

fclose(filepointer)

如果成功,fclose 函数返回 TRUE,如果失败,fclose 函数返回 FALSE.

下面是一个 fclose 函数的 PHP 代码示例:

实例代码如下:

$f=fopen("c:\data\info.txt","r");

fclose($f);

?>

这一章节我们讲述如何用 fopen, fwrite, fclose 来实现打开文件、写入文件和保存关闭文件的这一系列的操作.重点讲述 fwrite 函数.

PHP 内置函数 fwrite 用于写入文件.

fwrite 函数的常用语法为:

fwrite(handle,string)

其中,参数 handle 表示文件指针资源 (通常由 fopen 函数创建),string 表示要写入的内容.

下面一个PHP 代码示例演示如何创建一个新文件,并写入内容,然后保存并关闭文件:

实例代码如下:

$f=fopen("C:\blabla\php\write.txt","w");

fwrite($f,"It is awesome.");fclose($f);echo"done";

?>

执行该 PHP 文件后,会创建一个路径为 C:blablaphpwrite.txt 的文件,文件的内容是It is awesome..

如果你想在现有文件上再追加内容,你只要修改 fopen 的 参数 mode 值即可,如下:

$f= fopen("C:\blabla\php\write.txt","a");

有关 fopen 函数的参数 mode 值,详见 fopen.

fwrite 函数返回写入文件的字节数 (number of bytes) ,如果出错,返回 FALSE.

PHP 内置函数 file_put_contents 用于写入文件.

file_put_contents 函数最简单的写法,可以只用两个参数,一个是文件路径,一个是要写入的内容,语法如下:

file_put_contents(filepath,data)

如果文件不存在,file_put_contents 函数会自动创建文件;如果文件已存在,原有文件被重写.

你可以利用 file_put_contents 函数创建并写入一个新文件,或者重写一个原有文件.

下面是一个使用 file_put_contents 函数的 PHP 代码示例:

实例代码如下:

$path="C:\blabla\filesys\one.txt";

$content="one for all";

file_put_contents($path,$content);

if(file_exists($path))

{echo"ok";}else{echo"ng";}

?>

该 PHP 代码示例会创建一个路径为 C:blablafilesysone.txt 的文件,该文件的内容是 one for all .

如果你想在一个已有文件上追加内容,你也可以使用file_put_contents 函数,只需要加一个参数即可.

file_put_contents(filepath,data,flags)

当 flags 的值为 FILE_APPEND 时,表示在已有文件上追加内容.

比如我们要在上面示例的C:blablafilesysone.txt 文件上追加内容,我们可以这样写:

实例代码如下:

$path="C:\blabla\filesys\one.txt";

$content=" all for one";

file_put_contents($path,$content,FILE_APPEND);

if(file_exists($path))

{echo"ok";}else{echo"ng";}

?>

执行该 PHP 文件之后,我们再看 C:blablafilesysone.txt 文件,发现文件内容增加了,变成了:

one for all all for one

file_put_contents 函数返回写入文件的字节数 (number of bytes) ,如果出错,返回 FALSE.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos7卸载mysql数据库,CentOS7 安装卸载MySQL

[rootlocalhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm安装MySQL服务器rootlocalhost ~]# yum -y install mysql-community-server2. MySQL数据库设置启动MySQL[rootlocalhost ~]# systemctl start mysqld.service查看MySQL运行…

php v9 如何获取超级管理员权限,phpcms v9 增加后台管理员其他权限角色可以查看信息不能修改信息...

phpcms v9 增加后台管理员其他角色可以查看信息不能修改信息phpcms\modules\content\templates\content_list.tpl.php这里面判断是不是管理员角色,如果不是原来的编辑链接改为查看链接,php代码如下if ($_SESSION[roleid]!1){?>查看详情}else{?>查…

用matlab绘制外部导入数据图像,matlab 外部数据导入方法详解(3)

● load filename X Y Z ...:将filename中的变量X、Y、Z等导入到工作区中,如果是MAT文件,在指定变量时可以使用通配符“*”。● load filename -regexp expr1 expr2 ...:通过正则表达式指定需要导入的变量。● load -ascii filena…

matlab储备池算法,储备池计算概述.pdf

第 期 电 子 学 报10 Vol.39 No.10年 月2011 10 &a…

matlab课程设计图像处理,MATLAB课程设计--GUI图像处理

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [sfilename ,sfilepath]uiputfile({*.jpg;*.bmp;*.tif;*.*},保存图像文件,untitled.jpg);if ~isequal([sfilename,sfilepath],[0,0]) sfil…

php ../ 和 ./ 区别,php $_POST 与 php://input的区别分析

$_POST 与php://input可以取到值,$HTTP_RAW_POST_DATA 为空$_POST 以关联数组方式组织提交的数据,并对此进行编码处理,如urldecode,甚至编码转换php://input 也可以实现此这个功能可以获得POST的原始数据。代码实例echo file_ge…

php fast cgi nginx,通过fast-cgi连接php-fpm和nginx之间的连接是持久的(保持活动)连接吗?...

一年后,我问了这个问题,我似乎找到了答案。(gdb) bt#0 close () at ../sysdeps/unix/syscall-template.S:84#1 0x0000000000a40dff in fcgi_close (req0x1dae3c0, force0, destroy1) at /home/dinosaur/Downloads/php-7.2.2/main/fastcgi.c:1311#2 0x000…

php电影推荐算法,每周一道算法题013:电影推荐

问题:A、B、C三位用户都喜欢看电影,他们给自己所喜欢的电影类型打了如下的分:ABC喜剧片342动作片435生活片451恐怖片113爱情片451B用户喜欢的电影类型是应该推荐给A还是C?思路:用K最近邻(k-nearest neighbours&#xf…

100转换成二进制 java,一段简单的java代码,十进制转二进制

一段简单的java代码,十进制转二进制mip版 关注:188 答案:5 悬赏:40解决时间 2021-01-23 23:14已解决2021-01-23 05:43代码如下,希望可以帮我说明白点这段代码。factorOfTwo到底是指的什么?这段代码是如何运行的?多谢int number…

有向图算法 PHP,科学网—一种可用于脑神经网络分析的有向图分解算法 第六稿 - 谢勤的博文...

摘要:文献[1-9]提出了血液循环在大脑处理信息的过程中具有时序控制作用,并用量化模型结合结构风险最小化相关理论说明时序控制作用的意义。文献[10-24]汇总介绍量化模型中的一些细节。本文介绍我们开发的一个算法,这一算法实现将一个有向网络…

oracle中substrb用法,oracle中substr和instr的用法

1、substr(string string, int a, int b)参数1:string 要处理的字符串参数2:a 截取字符串的开始位置(起始位置是1,也可以是0)参数3:b 截取的字符串的长度(是字符串的结束位置)例如:substr("ABCDEFG", 0); //返回:ABCDEF…

oracle 索引回表,oracle 索引简单总结

建立索引时先进行排序,逻辑上分为Root(根块),Branch(茎块),leaf(叶子块)。leaf中存在索引列的值、长度、和所在rowid,茎块存了指向具体茎块的指针,root块同理。这是逻辑上的划分实际上根据表中数据量的多少可能会存在多…

oracle查效能,【DataGuard】Oracle 11g物理Active Data Guard实时查询(Real-time query)特性...

在Oracle 11g以前版本中的的Data Guard物理备用数据库,可以以只读的方式打开数据库,但此时Media Recovery利用日志进行数据同步的过程就停止了,如果物理备用数据库处于恢复的过程中数据库就不能打开查询,也就是说日志应用和只读打…

oracle sequence last_number,关于oracle序列的LAST_NUMBER

这是正常的,是的.从documentation for the all_sequences data dictionary view开始,last_number是:Last sequence number written to disk. If a sequence uses caching, the number written to disk is the last number placed in the sequence cache. This numbe…

oracle存储过程日志打印,如何在oracle存储过程中逐行打印

我正在执行一个存储过程,但它在某个时候失败了, 当前错误代码不帮我找到错误的位置和确切位置 我想知道它正在失败,所以想要在执行时逐行输出。 例如:如何在oracle存储过程中逐行打印create or replace-- decaring required varia…

linux依赖包在哪个目录,命令-Linux cmd在jar中搜索类文件,而与jar路径无关

Linux,演练以在许多jar中查找类文件。转到包含下面的jar的目录。ericdev /home/el/kafka_2.10-0.8.1.1/libs $ lsblah.txt metrics-core-2.2.0.jarjopt-simple-3.2.jar scala-library-2.10.1.jarkafka_2.10-0.8.1.1-sources.jar zkclient-0.3.jarkafka_2.10-0.8.1.1…

linux 挂在iso文件,linux 挂载iso文件安装文件 与 网络yum的搭建

挂载1.首先,创建文件作为挂载点mkdir /文件名/2.mount /iso/rhel-server-7.3-x86_64-dvd.iso /dir/将/iso目录下的镜像挂载到 /dir/文件上3. cd /etc/yum.repos.d/ 进入文件4. rm -fr * 删除目录下所有文件5.vim yum.repo 编辑文件内容6. rhe17.3] 说明namerhe17.3 …

微软引入linux内核,微软内部已在讨论Linux内核中加入exFAT的可能性

微软的exFAT文件系统已经有十多年的历史了,虽然已经有了一些突破,但是主流Linux内核仍然不支持此文件系统,即使它出现在更多的SD卡和其他设备上。但现在又重新努力将exFAT驱动程序引入Linux内核,有一个开发人员对为exFAT添加一个新…

linux内核ddr初始化,X-007-UBOOT-DDR的初始化(Bubblegum-96平台)

X-007-UBOOT-DDR的初始化(Bubblegum-96平台)作者:wowo 发布于:2016-7-21 22:47分类:X Project1. 前言到目前为止,“X Project”在Bubblegum-96平台上的代码,都是运行在SRAM中。由于SRAM的size很小(最多也就96KB)&#…

linux message日志只有4k,linux命令查看日志

首先介绍几个日志查看种常用的简单命令:1、tailtail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filena…