function и static и скорость работы

Статус
В этой теме нельзя размещать новые ответы.
Интересная идея, а можешь описать как данный код работает?

Переходим fseek() в случайное место файла (скорее всего попадаем куда-то в середину строки). Читаем fgets() до конца строки. Читаем следующую строку. Все.

Отдельно еще проверка если мы при первом fseek() попали в последнюю строку - тогда выводим первую.

Еще есть идея, перемешать строки в файле и просто брать строку а потом ее удалять, как думаете это будет менее ресурс затратно?

Удалять из файла - нереально. Это тебе ни один кеш с отложенной записью не позволит быстро читать-писать. Будут тормоза.

Если надо выбирать каждый раз уникальную строку, т.е. чтобы строки не повторялись - придется строить массивчик для "уже выбранных" и заносить туда md5(), и при следующей выборке проверять сначала этот массивчик. Выбирать при этом желательно десятую часть от того что есть в файле, потому что если надо выбрать ВСЕ строки, то на последних этапах такая штука будет работать все медленнее и медленнее.

С хранением в памяти все, как обычно, очень просто:
PHP:
class randstr {
   var $arr;
   function randstr($file) {
     $this->arr = file($file);
     shuffle($this->arr);
   }
   function get() {
      return array_pop($this->arr);
   }
}
Сначала перемешиваем все строки из файла, потом возвращаем по одной пока не закончатся.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху