我想用新值更改文本文件的旧值(删除旧内容并替换它),当我使用下面的代码时显示错误页面,不知道如何解决这个问题,甚至使用了不同类型的文件打开方法(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);
答案 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");