Задать вопрос
docmikhail
@docmikhail

Как выбрать случайную строку из большого файла?

Проблема следующая: есть сайт, на одной страничке в определенном месте должен быть случайно сгенерирован ID. Список ID хранится в большом txt-файле, весом порядка 20Мб.

Каким образом можно решить данную задачу?

Спасибо.
  • Вопрос задан
  • 192 просмотра
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
@zhainar
Гуглю за вас
Предлагаю заранее рандомизировать строки и читать первую
Ответ написан
@springimport
Я бы загнал файл в базу. В любом случае rand(1, n) от id.
Ответ написан
Комментировать
riky
@riky
Laravel
чтобы не читать каждый раз весь файл целиком можно открыть его через fopen, сместить указатель fseek на случайную величину в пределах длины файла и считать fgets немного байт (примерно в два-три раза длиннее чем самый длинный ид).
далее разделить строку по \n и взять вторую строку.

таким образом не нужно будет грузить все 20мб в память, а только 20 байт например.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽