完美实现PHP写入,读取,替换文件内容。先解释一下,主要用到:
- fopen("文件名.扩展名","操作方式")
- fwrite(读取的文件,"写入的文件");
- fclose(打开的对象变量);
02 | $str = "This is a test from www.nowamagic.netn" ; |
04 | $file_pointer = fopen ( "aa.txt" , "a+" ); |
05 | fwrite( $file_pointer , $str ); |
06 | fclose( $file_pointer ); |
09 | $fp = fopen ( $file_name , 'r' ); |
12 | $buffer = fgets ( $fp ,4096); |
14 | $buffer = str_replace ( "nowamagic" , "现代魔法" , $buffer ); |
15 | $buffer = str_replace ( "This is a test" , "这是一个实例" , $buffer ); |
16 | echo $buffer . "<br />" ; |
fopen()
fopen() 函数用于在 PHP 中打开文件,此函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪种模式来打开文件。
模式 描述
- r 只读。在文件的开头开始。
- r+ 读/写。在文件的开头开始。
- w 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
- w+ 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
- a 追加。打开并向文件文件的末端进行写操作,如果文件不存在,则创建新文件。
- a+ 读/追加。通过向文件末端写内容,来保持文件内容。
- x 只写。创建新文件。如果文件以存在,则返回 FALSE。
- x+ 读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
注释:如果 fopen() 无法打开指定文件,则返回 0 (false)。
feof()
检测 End-of-file
feof() 函数检测是否已达到文件的末端 (EOF),在循环遍历未知长度的数据时,feof() 函数很有用。注释:在 w 、a 以及 x 模式,您无法读取打开的文件!
fgets()
fgets() 函数用于从文件中逐行读取文件。在调用该函数之后,文件指针会移动到下一行。
strReplace.php
<?php
//替换txt文件中的某个字符串
//实现遍历指定文件下的目录总数量(不含子目录)
header("Content-Type: text/html; charset=utf-8");
$path = (dirname(__FILE__));//当前文件夹,比如book000文件夹
if (!is_dir($path ))
return null;
$handle = opendir( $path );
while (false !== ( $file = readdir($handle)))
{
if ($file != '.' && $file != '..')
{
$path2 = $path . '/' . $file;//文件路径
//$path2 = $file;//文件(含目录)的名字
if (is_dir( $path2 ))
{
if (!is_file($path2."/author.txt")){
echo "author.txt 文件不存在。"."<br>";
}
else {
//读取文件
$file_name=$path2."/author.txt";
$fp=fopen($file_name,'r');
while(!feof($fp))
{
$buffer=fgets($fp);
//echo $buffer."001<br />";
if(strstr($buffer,"作者:"))//判断是否包含某个字符串
{
//替换文件
$buffer = str_replace("作者:","",$buffer);
echo $buffer."<br />";
$fp2=fopen($file_name,'w');//以写入的方式的打开
fwrite($fp2,$buffer);
echo $file."/author.txt中的字符串替换,成功。"."<br>";
fclose($fp2);
}
else{
echo $file."author.txt 文件不包含被替换字符"."<br>";
}
}
fclose($fp);
}
}
}
}
?>