Вывод строк из .тхт файла в случайном порядке

M1
На сайте с 24.06.2013
Offline
2
961

Код предоставленный ниже работает, но он выводит все строки из файла.

Нужен вывод 12-ти строк из N-го (200-300) количества строк в случайном порядке.


$fn = fopen("file.txt","r") or die("fail to open file");
while($row = fgets($fn)) {
list($url,$title) = explode(" | ", $row);
echo '<div><img src="'.$url.'"/>';
echo '<a href="'.$url.'">';
echo '<span>'.$title.'</span></a></div>';
}
fclose( $fn );
R
На сайте с 27.04.2010
Offline
29
#1

Рандом скрипт

<? 

$words=file('file.txt');
echo $words[rand(0,count($words)-1)];
?>
IL
На сайте с 20.04.2007
Offline
435
#2
rusxeon:
Рандом скрипт

При повторении есть вероятность 2 раза выбрать одну и ту же строчку.

http://php.net/manual/en/function.array-rand.php (там ниже по тексту и примеры имеются)

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#3

$file=file('file.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

shuffle($file);

for ($i=0;$i<12;$i++)

{

list($url,$title) = explode(" | ", $file[$i]);

echo '<div><img src="'.$url.'"/>';

echo '<a href="'.$url.'">';

echo '<span>'.$title.'</span></a></div>';

}

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Mik Foxi
На сайте с 02.03.2011
Offline
1217
#4

$arr = file('file.txt'); // берем файл в массив

shuffle($arr); // перемешиваем массив

$arr = array_slice($arr, 0, 12); // оставляем в массиве 12 строк

// выводим в цикле:

foreach ($arr as $line)

{

list($url,$title) = explode(" | ", $line);

}

Антибот, антиспам, веб фаервол, защита от накрутки поведенческих: https://antibot.cloud/ (8 лет на защите сайтов). Форум на замену серчу: https://foxi.biz/
M1
На сайте с 24.06.2013
Offline
2
#5

Большое спасибо LEOnidUKG и foxi, оба кода работают идеально.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий