使用php(读/写)打开.txt文件并删除旧内容并将其替换为新内容

时间:2013-09-11 10:09:40

标签: php

我想用新值更改文本文件的旧值(删除旧内容并替换它),当我使用下面的代码时显示错误页面,不知道如何解决这个问题,甚至使用了不同类型的文件打开方法(w,r +,a ...)并且不起作用!

$i=$_POST['id'];
$fp = fopen ("/test/member_dl.txt", "r+");  
$ch = fgets ($fp);

$t=explode('||',$ch);
$t[$i-1]='';
$ch2=implode('||',$t);
fwrite($fp,$ch2);
fclose ($fp);

2 个答案:

答案 0 :(得分:1)

如果您想完全替换内容,为什么不直接删除它,并重新创建它?

unlink ("/test/member_dl.txt"); 
$fp = fopen ("/test/member_dl.txt", "r+"); 
// Continue with your code.
// Not sure I follow what you are doing with it

编辑:我不确定我是否理解您的代码中的哪一部分是诚实的。

unlink()命令删除该文件。从那里你可以重新开始并根据需要写出文件?

答案 1 :(得分:0)

虽然它以$fp = fopen ("/test/member_dl.txt", "r+");

开放

您将无法fwrite($fp,$ch2);

用'w +'打开它应该能够读写。

试试这个:

$i=$_POST['id'];
$fp = fopen("/test/member_dl.txt", "w+");
$ch = fread($fp, filesize($fp));

$t=explode('||',$ch);
$t[$i-1]='';
$ch2=implode('||',$t);
fwrite($fp,$ch2);
fclose ($fp);

修改

经测试,这可行

$ch = file_get_contents("test.txt");

$t=explode('||',$ch);
$t[$i-1]='';
$ch2=implode('||',$t);

file_put_contents("test.txt","hello");