Рандомный вывод строк из текстового файла на PHP03.03.2021 От: faq Из: Веб-строительство рецидивист 18 декабря 2013, 14:29 5782Приветствую.На просторах интернета нашел код PHP, который выводит случайные записи из текстового файла, но есть два момента, которые не могу понять как изменить:1) выводятся записи по порядку следования друг за другом (1,2,3,4,5 или 6,7,8,9,10), а нужно, чтобы выводились не по порядку а рандомно (2,5,8,12,3)2) в восьмой строке редактор показывает ошибку, но все работаетСам код:<?php $data = file("data.txt"); $c=5; $s="<br/>"; $out = mt_rand(1, count($data) - $c); $sad=$out+$c; for($i = $out; $i < $sad; $i++) { print "$data[$i]$s"; } ?> LEOnidUKG 18 декабря 2013, 14:50Объясните, подробнее. Вам нужно выводить определённое количество строк, рандомно из файла?Не одну строку, а сколько угодно? siv1987 18 декабря 2013, 14:51/ru/forum/617261/ru/forum/459747http://php.net/manual/ru/function.array-rand.php LovelAss 18 декабря 2013, 15:06<?php$num = 5; # Кол-во строк$data = file("data.txt"); $arr = array();$output = "";$s = "<br/>";for ( $i = 0; $i < $num; $i++ ) { do { $rand = mt_rand(0, count($data) - 1); } while ( in_array($rand, $arr) ); $arr[] = $rand; $output .= $data[$rand].$s;}echo $output; рецидивист 18 декабря 2013, 15:07LEOnidUKG:Объясните, подробнее. Вам нужно выводить определённое количество строк, рандомно из файла? Не одну строку, а сколько угодно?В настоящее время мне нужно выводить шесть строк, оформленных тегами. LEOnidUKG 18 декабря 2013, 15:12<?$counstr=6;$file=file(‘myfile.txt’, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);shuffle($file);for($i=0;$i<$counstr;$i++){echo $file[$i];}?>LovelAss, мало циклов вставили. Ещё штук 5-ть и будет идеальный говнокод. рецидивист 18 декабря 2013, 15:17Всем огромное Спасибо, работает так как надо! Pi4nic 3 февраля 2021, 09:10 LEOnidUKG #:<?$counstr=6;$file=file(‘myfile.txt’, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);shuffle($file);for($i=0;$i<$counstr;$i++){echo $file[$i];}?>LovelAss, мало циклов вставили. Ещё штук 5-ть и будет идеальный говнокод.Подскажите, при файле 25к строк, получаем одну строку, скрипт будет долго обрабатываться? LEOnidUKG 3 февраля 2021, 09:17 Pi4nic #:Подскажите, при файле 25к строк, получаем одну строку, скрипт будет долго обрабатываться? Для 1 строки другой код: $text=file(‘banner.txt’, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );echo $text[array_rand($text)]; Этот код работает достаточно быстро до 1 млн строк, потом уже нужно построковые запросы без открытия файла. Pi4nic 3 февраля 2021, 09:40 Спасибо! Похожие записи:Создание вопросов и ответов на умножение для приложения в стиле викторины Незавершенная ролевая игра Выпадающее меню смены языков Анализ запасов запрашивает данные с Yahoo Вычисление пи с помощью Монте-Карло с использованием OpenMP
рецидивист
Приветствую.
На просторах интернета нашел код PHP, который выводит случайные записи из текстового файла, но есть два момента, которые не могу понять как изменить:
1) выводятся записи по порядку следования друг за другом (1,2,3,4,5 или 6,7,8,9,10), а нужно, чтобы выводились не по порядку а рандомно (2,5,8,12,3)
2) в восьмой строке редактор показывает ошибку, но все работает
Сам код:
LEOnidUKG
Объясните, подробнее. Вам нужно выводить определённое количество строк, рандомно из файла?
Не одну строку, а сколько угодно?
siv1987
/ru/forum/617261
/ru/forum/459747
http://php.net/manual/ru/function.array-rand.php
LovelAss
рецидивист
Объясните, подробнее. Вам нужно выводить определённое количество строк, рандомно из файла?
Не одну строку, а сколько угодно?
В настоящее время мне нужно выводить шесть строк, оформленных тегами.
LEOnidUKG
<?
$counstr=6;
$file=file(‘myfile.txt’, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
shuffle($file);
for($i=0;$i<$counstr;$i++)
{
echo $file[$i];
}
?>
LovelAss, мало циклов вставили. Ещё штук 5-ть и будет идеальный говнокод.
рецидивист
Всем огромное Спасибо, работает так как надо!
Pi4nic
<?
$counstr=6;
$file=file(‘myfile.txt’, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
shuffle($file);
for($i=0;$i<$counstr;$i++)
{
echo $file[$i];
}
?>
LovelAss, мало циклов вставили. Ещё штук 5-ть и будет идеальный говнокод.
Подскажите, при файле 25к строк, получаем одну строку, скрипт будет долго обрабатываться?
LEOnidUKG
Подскажите, при файле 25к строк, получаем одну строку, скрипт будет долго обрабатываться?
Для 1 строки другой код:
$text=file(‘banner.txt’, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
echo $text[array_rand($text)];
Этот код работает достаточно быстро до 1 млн строк, потом уже нужно построковые запросы без открытия файла.
Pi4nic