Вы можете использовать fseek
, чтобы изменить указатель в примечании.
Следует отметить, что если вы используете fwrite
, он удалит текущий контент. Поэтому в основном вы должны прочитать весь файл, использовать fseek
, написать свой новый контент, записать старые данные файла.
$file_data = file_get_contents('database.txt')
$fp = fopen('database.txt', 'a');
fseek($fp,0);
fwrite($fp, 'new content');
fwrite($fp, $file_data);
fclose($fp);
Если ваш файл действительно огромный, и вы не хотите чтобы использовать слишком много памяти, вы можете захотеть иметь два подхода к файлу, например
$fp_source = fopen('database.txt', 'r');
$fp_dest = fopen('database_temp.txt', 'w'); // better to generate a real temp filename
fwrite($fp_dest, 'new content');
while (!feof($fp_source)) {
$contents .= fread($fp_source, 8192);
fwrite($fp_dest, $contents);
}
fclose($fp_source);
fclose($fp_dest);
unlink('database.txt');
rename('database_temp.txt','database.txt');
. Решение Ben кажется более простым в моем честном мнении.
Последний пункт: Я не знаю, что у вас есть в database.txt
, но вы можете сделать то же самое проще с помощью сервера базы данных.