PHP文件写入,读取与替换内容strReplace.php

PHP文件写入,读取与替换内容

完美实现PHP写入,读取,替换文件内容。先解释一下,主要用到:

  • fopen("文件名.扩展名","操作方式")
  • fwrite(读取的文件,"写入的文件");
  • fclose(打开的对象变量);
01 //写入文件
02 $str="This is a test from www.nowamagic.netn";
03 // w表示以写入的方式打开文件,如果文件不存在,系统会自动建立
04 $file_pointer fopen("aa.txt","a+");       
05 fwrite($file_pointer,$str);
06 fclose($file_pointer);
07 //读取文件
08  $file_name="aa.txt";
09  $fp=fopen($file_name,'r');
10  while(!feof($fp))
11  {
12   $buffer=fgets($fp,4096);
13   //替换文件
14   $buffer str_replace("nowamagic","现代魔法",$buffer);
15   $buffer str_replace("This is a test","这是一个实例",$buffer);
16   echo $buffer."<br />";
17  }
18  fclose($fp);

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 模式,您无法读取打开的文件!

1 if (feof($file))
2     echo "End of file";

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);
}

}
}
?>

猜你喜欢

转载自blog.csdn.net/wakice/article/details/78683970
今日推荐