Anton B: знаю я, что fopen возвращает дескриптор, но ведь для изменения файла я не могу ничего придумать, кроме как загрузить его содержимое в переменную и оперировать со строкой, а затем записать переменную в файл. Это даёт сильную нагрузку при больших объемах. Так как оперировать с файлом, не переводя его в переменную?
Mikhail Osher: ну это для меня не очень удобно. я еле разобрал, что код, а что нет. сначала я вообще решил, что вы мне исходник расширения на каком-то странном языке даёте.
Роман: >Тогда в случае обработки файла как текстового стандартная библиотека языка может выделить очень много памяти под строку
Дело не в памяти, дело в скорости
Файл изменяется ежесекундно
кстати, что за манера $f = fopen('foo.bar', 'a+b') ?
почему a+b ? в документации такого нет
при том что в ней есть подобный пример:
$handle = fopen("/home/rasmus/file.gif", "wb");
спасибо, я уже нашел решение
зачем вы мне терминал скопировали
не могли просто написать?
$f=fopen('foo.bar', 'a+');
ftruncate($f, filesize('foo.bar')-1);
fclose($f);
>Работа с файлами похожа среди разных языков.
Я бы так не сказал. В PHP нет инструментов для работы с файловой системой, чтобы совершать то, что вы описали выше.
В PHP есть fopen, fseek, fread, fwrite и fclose (базово).
Ну зато вы мне рассказали, как обрабатываются файлы в ФС, чего я действительно не знал.
Из того, что вы написали я, честно говоря, не понял, как решать мои задачи.
Oxoron: "и уровень районной, раз уж 1 задачи хватает на третье место" - не совсем так. То, что на листиках, тоже проверяли, а там решено всё, только не на нужном языке. Ведь на олимпиаде важно правильно мыслить.