Рассмотрим код ниже (файл test.txt
не существует):
$fp = fopen('test.txt', 'a+');
echo ftell($fp); // 0
fwrite($fp, "abc\n");
fclose($fp);
Я запускаю код один раз — echo ftell($fp); // 0
Я запускаю код снова — echo ftell($fp); // 0
по-прежнему возвращает 0. Теперь файл содержит а \ NABC \ п, поэтому я предполагаю, что он должен вернуть 3, так как файл уже содержал абв \ п до второго пробега.
Если бы я запускал код снова и снова, ftell
все еще возвращает 0, почему это? я думал a+
должен поставить указатель в конец файла? Что мне не хватает?
Комментарии на php.net уже заявить о проблеме — так что это известная ошибка / поведение.
Других решений пока нет …