Открытие\чтение\запись в файл

  • Автор темы Oracool
  • Дата начала

Oracool

Guest
Открытие\чтение\запись в файл

Доброго времени суток господа!

Такая вот ситуация. Запутался я немного...
Есть текстовый файл, называется "stats.dat" выглядит примерно так:

photo5:::3
photo1:::2
photo2:::4
photo7:::1

т.е. имя фотки и количество скачанных раз ее.
В скрипт передается переменная

script.php?photo=5.jpg

Что хотелось бы?
Нужно открыть файл stats.dat, построчно его читать и если нашлась строка соответствующяя переменной 'photo', то цифру стоящую после ':::' увеличить на единицу. Если не нашлась такая строчка (т.е. фотка первый раз скачивается), то просто дописать в конец новую строку.

Подскажите в каком режиме лучше в моеи случае открывать файл? И потом как его читать и записывать т.е. какими функциями?

Всем спасибо!
 

zumo

Guest
file("stats.dat")
в этом случае лучше - прочитает весь файл в массив (по 1 строчке)
а потом открываем файл для записи в начало с урезанием до 0
и как по мне так лучше сделать такой формат файла
имя_файла1
количество_скачек
имя_файла2
количество_скачек
имя_файла3
количество_скачек

так легче и читать и писать
 

DimbIch

Новичок
zumo
ничем не легче чем при формате file_name:::number_of_downloads
разницы никакой в сложности.....

а вот что быстрее будет работать - это надо тестить...
 

zumo

Guest
почему не легче ? - так ты читаеш файл 1 сточкой кода а по обычному 3 мя
А быстрее будут работать при моём формате файла так как тут никакой explode не нужен и файл такого формата легче записывать
 

zumo

Guest
PHP:
while($n<count($array))
{
   if(($n%2)==1)
   {   
       $ima_faila=array[$n-1];
       $kolichestvo=array[$n];
    }
$n++;
}
примерно вот-так
 

DimbIch

Новичок
zumo
это называеться проще ?:))))
интересное понятие о простоте :)
 

zumo

Guest
но это решение раз 10 быстрее explode

-~{}~ 07.11.04 23:57:

интересно а почему тут мои посты не удаляют ?
 

SelenIT

IT-лунатик :)
zumo, как тестировал? И как при тестах прошло array[что-то]?
Интересно, во сколько раз тогда будет быстрее это? ;)
PHP:
for ($n=0,$lim=count($arr)+1;$n<$lim;$n+=2){
   $filename=$arr[$n];
   $quantity=$arr[$n+1];
}
 
Сверху