- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Собственно делаю плагин под ВП и часто использую функцию чтоб вызвать случайную строку из файла strochka.txt
PHP код:
function ra($f)
{$f=file($f);
shuffle($f);
$f[0] = str_replace("\r\n", "", $f[0]);
return $f[0];
}
И естественно при частом обращении к этой функции скрипт начинает медленно работать, но ведь я обращаюсь постоянно к одному и тому же файлу function ra("strochka.txt"). Можно ли как-то это ускорить, кешировать.. или что-то в этом роде ?
можно так сделать
а вообще скрипт явно работает медленно не из за этого кода.
записать все эти строки в базу, выбрать случайное число от 1 до N и считать соответствующую строчку?
зачем каждый раз его перемешивать функцией shuffle? сделай перемешку 1 раз результаты сохрани в отдельный файл strochka_temp.txt и юзай его. потом когда он станет ненужным удали.
зачем каждый раз его перемешивать функцией shuffle? сделай перемешку 1 раз результаты сохрани в отдельный файл strochka_temp.txt и юзай его. потом когда он станет ненужным удали.
Нужно чтоб каждый раз выдавало случайную строку
Попробуйте так:
UPD. Я проверил и поправил некоторые ошибки. Работает такой вариант. Выдает случайную строку из $filename
Нужно чтоб каждый раз выдавало случайную строку
1. Храни эти строки в массиве, т.е. файл должен быть примерно таким:
2. Дальше загружаешь этот массив и выбираешь нужную строку рандомом, примерно так:
function ra($filename) {$arr = required_once($filename);
return $arr[array_rand($arr)];
}
немного ускорилась работа без использования shuffle
echo $text[array_rand($text=file("strochka.txt"))];
DeXtR, чего вы к этому shuffle привязались?
Я и LEOnidUKG, показали вам более простой способ. Я в три строки, LEOnidUKG, в одну слепил то же самое :)
Точно так же работать будет
И естественно при частом обращении к этой функции скрипт начинает медленно работать
Если функция вызывается много раз, реально много, то проблема скорее всего в том, что файл дергается много раз, а не в том что его перемешивают.
Поэтому
А если в файле еще и много строк, тогда есть смысл хранить кэш в базе, в отдельной таблице, возможно memory типа.