Using php, how to insert text without overwriting to the beginning of a text file(使用php,如何插入文本而不覆盖文本文件的开头)
问题描述
我有:
<?php
$file=fopen(date("Y-m-d").".txt","r+") or exit("Unable to open file!");
if ($_POST["lastname"] <> "")
{
fwrite($file,$_POST["lastname"]."
");
}
fclose($file);
?>
但它会覆盖文件的开头.如何让它插入?
but it overwrites the beginning of the file. How do I make it insert?
推荐答案
我不完全确定您的问题 - 您是要写入数据并且不让它覆盖现有文件的开头,还是写入新文件数据到现有文件的开头,在其后保留现有内容?
I'm not entirely sure of your question - do you want to write data and not have it over-write the beginning of an existing file, or write new data to the start of an existing file, keeping the existing content after it?
要插入文本而不覆盖文件的开头,您必须打开它以进行附加 (a+
而不是 r+
)
To insert text without over-writing the beginning of the file, you'll have to open it for appending (a+
rather than r+
)
$file=fopen(date("Y-m-d").".txt","a+") or exit("Unable to open file!");
if ($_POST["lastname"] <> "")
{
fwrite($file,$_POST["lastname"]."
");
}
fclose($file);
如果您尝试写入文件的开头,则必须读入文件内容(请参阅 file_get_contents
),然后将新字符串和文件内容写入输出文件.
If you're trying to write to the start of the file, you'll have to read in the file contents (see file_get_contents
) first, then write your new string followed by file contents to the output file.
$old_content = file_get_contents($file);
fwrite($file, $new_content."
".$old_content);
上述方法适用于小文件,但您可能会在尝试使用 file_get_conents
读取大文件时遇到内存限制.在这种情况下,请考虑使用 rewind($file)
,它设置文件文件流开头句柄的位置指示器.注意使用rewind()
时,不要用a
(或a+
)选项打开文件,如:
The above approach will work with small files, but you may run into memory limits trying to read a large file in using file_get_conents
. In this case, consider using rewind($file)
, which sets the file position indicator for handle to the beginning of the file stream.
Note when using rewind()
, not to open the file with the a
(or a+
) options, as:
如果您以追加(a"或a+")模式打开文件,则无论文件位置如何,您写入文件的任何数据都将始终被追加.
If you have opened the file in append ("a" or "a+") mode, any data you write to the file will always be appended, regardless of the file position.
这篇关于使用php,如何插入文本而不覆盖文本文件的开头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用php,如何插入文本而不覆盖文本文件的开头
基础教程推荐
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01