Оптимизация запроса

Статус
В этой теме нельзя размещать новые ответы.

4erepaha13

Полезный
Регистрация
20 Июн 2009
Сообщения
157
Реакции
18
Для постинга сообщений выбираю один из текстов, лежащих в папке
PHP:
$file_arr = array(); // массив, куда будут попадать пути к файлам
  while (($file = readdir($dh)) !== false) { // перебираем всё, что есть в папке
   if(!is_dir($dir.'/'.$file) )// если это не папка 
$file_arr[]= $dir.'/'.$file;}
И потом из массива рандомно берется один путь к файлу.
Если в папке несколько тысяч текстов, то я так понимаю каждый раз по крону будет создаваться неслабая нагрузка на хостинг. Как это можно оптимизировать?
 
базу данных используй, она вроде для подобных задач и создана

з.ы. если структура каталога меняется редко или не меняется вообще, можно кроном заполнять таблицу
 
Для простоты решил буфер сделать из линков, который обновлять по крону или руками
PHP:
$file=fopen("list.txt","wb"); 
$dir = 'text'; 
$dh = opendir($dir); 
while (($url = readdir($dh)) !== false) { 
   if(!is_dir($dir.'/'.$url) )
fwrite($file,$dir.'/'.$url."\r\n"); 
  }
  fclose ($file);
  closedir($dh);
Но не пойму где накосячил, не получается из него урлы забрать, ругается на file("тут функция рандомной строки из list.txt")
PHP Warning: file(text/hello.txt
) [<a href='function.file'>function.file</a>]: failed to open stream: No such file or directory
Путь правильный и файл существует. Подозрительно выглядит лишний перенос после hello.txt, хотя в текстовой файле все урлы по одному в строку.
 
Составить один раз рандомный список (бд или txt) и потом по очереди из этого стиска добавлять статьи.
 
Затык в забирании урла из списка
PHP:
$temp= file('list.txt'); //получаю список урлов
$size_temp= sizeof($temp);
$random_file= $temp[mt_rand(0,$size_temp-1)]; //выбираю случайный
$temp = file($random_file); // забираю случайный файл
и ошибка
Warning: file(text/text858.txt ) [function.file]: failed to open stream: No such file or directory
Что не так?
 
лишний пробел в имени файла. перед загрузкой файла прогони его имя через trim().
 
Что может быть не так если пхп тебе говорит что файла не существует? Значит его действительно не существует. Попробуй использовать для верности абсолютные пути, если плутаешь в относительных.
 
лишний пробел в имени файла. перед загрузкой файла прогони его имя через trim().
так и не нашел как генерится лишний пробел, но трим его корректно обрезал и теперь все работает
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху