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

HM
На сайте с 14.01.2012
Offline
253
#41
LEOnidUKG:
С каждым таким перемешиванием, почему-то массив увеличивается в разы

Не увеличивается.

<?php
$data = file('l.txt');
for($i=0;$i<=10;$i++){
shuffle($data);
var_dump($data);
}
?>

Убедись сам.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#42
hakuna matata:
Не увеличивается.

Убедись сам.

Я не хочу синтетических тестов.

Скажу так, была замена в БД. В БД 35 000 записей.

Массив из файла считывался 1 раз (25 МБ) и каждый раз перемешивался.

Вся операция проходила 35 минут

Это ужасно долго.

Далее я убрал перемешивания и заменил на mt_rand. Операция прошла за 48 секунд.

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

LEOnidUKG, это конечно так. Я лишь заметил, что массив после shuffle не увеличивается.

Dos3
На сайте с 07.01.2011
Offline
363
#44

еслиб массив после шуфле увеличивался, то это былоб пздц :)

J
На сайте с 06.07.2011
Offline
169
#45
Dos3:
ну и вставляй так
echo $text[rand(0,$col_str)]." ".$text2[rand(0,$col_str2)]." ".$text3[rand(0,$col_str3)];

какие ещё замены в файлах)

или нагенери сначала ключей, потом уже их юзай


<?
$text=file("file.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
$col_str = count($text)-1;
?>

<?
echo $text[rand(0,$col_str)]."<br />";
echo $text[rand(0,$col_str)]."<br />";
echo $text[rand(0,$col_str)]."<br />";
?>

А как сделать так, что бы выводило рэндомно file.txt, я хочу разбить один большой файл на несколкьо частей, ато сервер нагружается сильно.

$text=file("file.txt(рэндомно file1.txt...file30.txt)",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

Dos3
На сайте с 07.01.2011
Offline
363
#46

если имена файлов цифрами, 1-100 это имена файлов

$text = file("texts/".mt_rand(1,100).".txt", FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

или так, если имена разные

в папке texts лежат все файлы

$files = scandir("texts");

$text = file($files[rand(2, count($files)-1)] , FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

M
На сайте с 02.06.2008
Offline
88
#47

$files=glob("key/*.txt");  // масив со всеми файлами с кеями в папке
$s = file ($files[array_rand($files)]); // выбираем случайный файл

$keys = array_rand($s, mt_rand(3,5)); // получаем масив с случайным ко-вом кеев от 3 до 5

Так удобней не надо обзывать файлы специально 1-100 и знать сколько там их.

J
На сайте с 06.07.2011
Offline
169
#48
Dos3:
если имена файлов цифрами, 1-100 это имена файлов
$text = file("texts/".mt_rand(1,100).".txt", FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

или так, если имена разные
в папке texts лежат все файлы
$files = scandir("texts");
$text = file($files[rand(2, count($files)-1)] , FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

Огромное спасибо!

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