PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码

前端技术 2023/09/05 PHP

创建文件我们用到函数

fopen ( string filename, string mode )
参数filename为创建文件名
参数mode为以什么方式打开文件filename
其中mode可能值列表:

mode 说明

‘r\' 只读方式打开,将文件指针指向文件头。
‘r+\' 读写方式打开,将文件指针指向文件头。
‘w\' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘w+\' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘a\' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘a+\' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘x\' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
‘x+\' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
下面代码是我通过利用函数fopen创建一个名为Demo,格式为txt的文件,并在文件中写入\"Welcome To ItCodeWorld!\"的数据。

< ?php
//要创建的两个文件
$TxtFileName = \"Demo.txt\";
//以读写方式打写指定文件,如果文件不存则创建
if( ($TxtRes=fopen ($TxtFileName,\"w+\")) === FALSE){
echo(\"创建可写文件:\".$TxtFileName.\"失败\");
exit();
}
echo (\"创建可写文件\".$TxtFileName.\"成功!</br>\");
$StrConents = \"Welcome To ItCodeWorld!\";//要 写进文件的内容
if(!fwrite ($TxtRes,$StrConents)){ //将信息写入文件
echo (\"尝试向文件\".$TxtFileName.\"写入\".$StrConents.\"失败!\");
fclose($TxtRes);
exit();
}
echo (\"尝试向文件\".$TxtFileName.\"写入\".$StrConents.\"成功!\");
fclose ($TxtRes); //关闭指针
?>

PHP 创建文件 – fopen()
fopen() 函数也用于创建文件。也许有点混乱,但是在 PHP 中,创建文件所用的函数与打开文件的相同。
如果您用 fopen() 打开并不存在的文件,此函数会创建文件,假定文件被打开为写入(w)或增加(a)。
下面的例子创建名为 \"testfile.txt\" 的新文件。此文件将被创建于 PHP 代码所在的相同目录中:
实例
$myfile = fopen(\"testfile.txt\", \"w\")
PHP 文件权限
如果您试图运行这段代码时发生错误,请检查您是否有向硬盘写入信息的 PHP 文件访问权限。
PHP 写入文件 – fwrite()
fwrite() 函数用于写入文件。
fwrite() 的第一个参数包含要写入的文件的文件名,第二个参数是被写的字符串。
下面的例子把姓名写入名为 \"newfile.txt\" 的新文件中:
实例

<?php
$myfile = fopen(\"newfile.txt\", \"w\") or die(\"Unable to open file!\");
$txt = \"Bill Gates\\n\";
fwrite($myfile, $txt);
$txt = \"Steve Jobs\\n\";
fwrite($myfile, $txt);
fclose($myfile);
?>

请注意,我们向文件 \"newfile.txt\" 写了两次。在每次我们向文件写入时,在我们发送的字符串 $txt 中,第一次包含 \"Bill Gates\",第二次包含 \"Steve Jobs\"。在写入完成后,我们使用 fclose() 函数来关闭文件。
如果我们打开 \"newfile.txt\" 文件,它应该是这样的:
Bill Gates
Steve Jobs

PHP 覆盖(Overwriting)

如果现在 \"newfile.txt\" 包含了一些数据,我们可以展示在写入已有文件时发生的的事情。所有已存在的数据会被擦除并以一个新文件开始。
在下面的例子中,我们打开一个已存在的文件 \"newfile.txt\",并向其中写入了一些新数据:
实例

<?php
$myfile = fopen(\"newfile.txt\", \"w\") or die(\"Unable to open file!\");
$txt = \"Mickey Mouse\\n\";
fwrite($myfile, $txt);
$txt = \"Minnie Mouse\\n\";
fwrite($myfile, $txt);
fclose($myfile);
?>

如果现在我们打开这个 “newfile.txt” 文件,Bill 和 Steve 都已消失,只剩下我们刚写入的数据:

Mickey Mouse
Minnie Mouse


换行符‘\\n\'和回车符‘\\r\'
顾名思义,换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回车符应该确切来说叫做回车换行符

‘\\n\' 10 换行(newline)
‘\\r\' 13 回车(return)

也可以表示为\'\\x0a\'和\'\\x0d\'.(16进制)
在windows系统下,回车换行符号是”\\r\\n”.但是在Linux等系统下是没有”\\r”符号的。
在解析文本或其他格式的文件内容时,常常要碰到判定回车换行的地方,这个时候就要注意既要判定”\\r\\n”又要判定”\\n”。
写程序时可能得到一行,将其进行trim掉\'\\r\',这样能得到你所需要的string了。

本文地址:https://www.stayed.cn/item/12041

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。