Пропадают первые строки при дозаписи файла

G-XPert

Новичок
Всем привет!

Так как у хостера отсутствует возможность использования MySQL, я написал скрипт для записи и чтения данных из файлов (по прямым ссылкам файлы нельзя просмотреть).

Проблема следующая: при дозаписи в файл следующей строки (пример): Код:
PHP:
\nКод|Код 2|Код3|
Иногда происходит "затирание" первой строки файла.
То есть строка записывается нормально, в конец - как и должна, но при этом стирается перая строка файла.

Данная проблема происходит не каждый раз, а примерно один в 15-20 раз (случайным образом).

Файл имеет следующую структуру (обозначил с переводами строк): Код:
PHP:
\n 
 |Код 1|Код 2|Код 3|\n 
 |Код 1|Код 2|Код 3|\n 
 |Код 1|Код 2|Код 3|
Дозапись пробовал производить с помощью функции put_contents(), а также с помощью fwrite с заданным режимом "a".

Не могу понять почему происходить "затирание" именно первой строки. К текущему контенту я не прикасаюсь. Использую лишь дозапись.

Кодировка PHP-скрипта и самого файла - UTF с BOM (пробовал и без BOM).

Помогите, пожалуйста, решить данную проблему.

Спасибо!
 

Dovg

Продвинутый новичок
>Дозапись пробовал производить с помощью функции put_contents(),
В каком языке есть такая функция?

>с помощью fwrite с заданным режимом "a".
У fwrite разве есть режим?
Приведи пример кода, который приводит к "затиранию первой строчки".
 

G-XPert

Новичок
То есть file_put_contents() (опечатка).
Пример кода:
PHP:
$n = func_num_args();
$data = "";
for($i=1;$i<$n;$i++) {$data.= func_get_arg($i)."|u|";}; // Преобразуем данные в нужный формат
file_put_contents($path,"\n".$data, FILE_APPEND | FILE_BINARY);
return '1';
 
Сверху