当前位置:  开发笔记 > 编程语言 > 正文

使用php,如何插入文本而不覆盖文本文件的开头

如何解决《使用php,如何插入文本而不覆盖文本文件的开头》经验,为你挑选了1个好方法。

我有:

 "")
{
   fwrite($file,$_POST["lastname"]."\n");
}

fclose($file);

?>

但它会覆盖文件的开头.如何插入?



1> ConroyP..:

我不完全确定你的问题 - 你想写数据而不是覆盖现有文件的开头,或者将新数据写入现有文件的开头,保留现有文件之后的现有内容吗?

要插入文本而不覆盖文件的开头,您必须打开它才能追加(a+而不是r+)

$file=fopen(date("Y-m-d").".txt","a+") or exit("Unable to open file!");

if ($_POST["lastname"] <> "")
{
   fwrite($file,$_POST["lastname"]."\n");
}

fclose($file);

如果您尝试写入文件的开头,则必须首先读入文件内容(请参阅参考资料file_get_contents),然后将新字符串后跟文件内容写入输出文件.

$old_content = file_get_contents($file);
fwrite($file, $new_content."\n".$old_content);

上述方法适用于小文件,但您可能会遇到内存限制,试图在使用时读取大文件file_get_conents.在这种情况下,请考虑使用rewind($file),它将句柄的文件位置指示符设置为文件流的开头.使用时请注意rewind(),不要使用a(或a+)选项打开文件,如下所示:

如果您已在附加("a"或"a +")模式下打开文件,则无论文件位置如何,您将始终追加写入文件的任何数据.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有