Как можно ускорить фунцкии shuffle($f) или random($f) ?

Тема в разделе "PHP", создана пользователем -denver, 25 июл 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. -denver

    -denver Создатель

    Регистр.:
    14 сен 2009
    Сообщения:
    40
    Симпатии:
    6
    Собственно делаю плагин под ВП и часто использую функцию чтоб вызвать случайную строку из файла strochka.txt
    PHP код:
    function ra($f)
    PHP код:
    {
    $f=file($f);
    shuffle($f);
    $f[0] = str_replace("\r\n", "", $f[0]);
    return $f[0];
    }
    И естественно при частом обращении к этой функции скрипт начинает медленно работать, но ведь я обращаюсь постоянно к одному и тому же файлу function ra("strochka.txt"). Можно ли как-то это ускорить, кешировать.. или что-то в этом роде ?
    DeXtR вне форума Добавить отзыв для DeXtR Пожаловаться на это сообщение Ответить с цитированием
     
  2. mc-alkin

    mc-alkin

    Регистр.:
    17 июл 2009
    Сообщения:
    164
    Симпатии:
    100
    <?
    $f=file($f);
    return trim($f[mt_rand(0,count($f))]);
    ?>
     
  3. Ragger

    Ragger

    Регистр.:
    14 июн 2008
    Сообщения:
    167
    Симпатии:
    183
    PHP:
    function ra($name){
        global 
    $ra_arr$ra_name;
        if(
    $name !== $ra_name){
            
    $ra_arr file($name);
            
    $ra_name $name;
        }
        return 
    trim($ra_arr[array_rand($ra_arr)]);
    }
     
  4. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    200
    Симпатии:
    55
    Все верно, за исключением того, что последняя строка будет иметь индекс count($f)-1, а функцияя mt_rand генерит число до "max" включительно.
     
Статус темы:
Закрыта.