помогите с работой в каталоге

denw

Новичок
помогите с работой в каталоге

написал я скрипт который (по замыслу) в каталоге ищет файлы dat, с содержимым типа 1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1 (тут 24 элемента массива) и обнуляет его 0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0
но скрипт почемуто выбирает один файл и работает только с ним
Помогите

PHP:
$lokalnoe_vremya=time();
$chas_lokalnii=date('G',$lokalnoe_vremya);
$raznica=120;
$katalog=dir('memberfiles');
for ($katalog->rewind();$members=$katalog->read();)
{
 if(eregi("\.dat",$members))
  {$member=$members;
   if($robota_s_memberom=fopen('memberfiles/'.$member,'rb+'))
        echo 'memberfiles/'.$member."<br>";
        flock($robota_s_memberom,2);
        $massiv_zaxodov=array('');
        $massiv_zaxodov=split("\|",fgets($robota_s_memberom));
while ($raznica>0)
  {
  $massiv_zaxodov[$chas_lokalnii]=0;
  $raznica=$raznica-1;
  $chas_lokalnii=$chas_lokalnii-1;
   if ($chas_lokalnii<0) $chas_lokalnii=23;
  }
        fseek($robota_s_memberom,0);
        fputs($robota_s_memberom,$massiv_zaxodov[0].'|'.$massiv_zaxodov[1].'|'.$massiv_zaxodov[2].'|'.$massiv_zaxodov[3].'|'.$massiv_zaxodov[4].'|'.$massiv_zaxodov[5].'|'.$massiv_zaxodov[6].'|'.$massiv_zaxodov[7].'|'.$massiv_zaxodov[8].'|'.$massiv_zaxodov[9].'|'.$massiv_zaxodov[10].'|'.$massiv_zaxodov[11].'|'.$massiv_zaxodov[12].'|'.$massiv_zaxodov[13].'|'.$massiv_zaxodov[14].'|'.$massiv_zaxodov[15].'|'.$massiv_zaxodov[16].'|'.$massiv_zaxodov[17].'|'.$massiv_zaxodov[18].'|'.$massiv_zaxodov[19].'|'.$massiv_zaxodov[20].'|'.$massiv_zaxodov[21].'|'.$massiv_zaxodov[22].'|'.$massiv_zaxodov[23]);
        flock($robota_s_memberom,3);
        fclose($robota_s_memberom);




} }
$katalog->close();
и еще почему-то иногда строка 1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1 обнуляется без проблем а иногда количество элементов массива увеличевается 0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|1|1|1|1|1|1|1
с чем это может быть связано?
 

White Rabbit

белый кролик
Я думаю, тебе стоит кардинальнейшим образом пересмотреть
способы хранения данных.
 

denw

Новичок
Автор оригинала: White Rabbit
Я думаю, тебе стоит кардинальнейшим образом пересмотреть
способы хранения данных.
это про плоский файл?
так я на них знаю скрипты рейтингов на плоских файлах которые держат очень хорошие нагрузки

какже все таки обнулить все файлы dat?
поможите :)
очень надо
 

ybilevych

Новичок
1. О том, что использует один и тот же файл (очевидно первый) - Возможно при записи/изменении файла в каталоге объект dir('memberfiles') сбрасывает указатель на начало каталога. Попробуй сначала получить список файлов, которые будут изменяться, а потом изменять
2. Об увеличении размера файла - "fopen(" надо с режимом "w+"
3. В "fputs(" лучше вместо перечисления всех элементов массива просто написать implode( "|", $massiv_zaxodov)
4. while вместо for смотрится лучше.

ЗЫ. Как по мне, транслитер в коде не очень читабелен... Но это дело вкуса
 
Сверху