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

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#11

Вы всё правильно написали. Считывайте сразу все файлы в разные переменные потом подставляйте нужны.

---------- Добавлено 11.01.2015 в 23:25 ----------

<?

$text=file("/home/keyword.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES));

$text2=file("/home/keyword2.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES));

$text3=file("/home/keyword3.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES));

?>

и выводим

<? shuffle($text); echo $text[0];?>

<? shuffle($text2); echo $text2[0];?>

<? shuffle($text3); echo $text3[0];?>

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
J
На сайте с 06.07.2011
Offline
169
#12
LEOnidUKG:
Вы всё правильно написали. Считывайте сразу все файлы в разные переменные потом подставляйте нужны.

---------- Добавлено 11.01.2015 в 23:25 ----------

<?
$text=file("/home/keyword.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES));
$text2=file("/home/keyword2.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES));
$text3=file("/home/keyword3.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES));

?>

и выводим
<? shuffle($text); echo $text[0];?>

<? shuffle($text2); echo $text2[0];?>

<? shuffle($text3); echo $text3[0];?>

Толковая голова у тебя :)

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

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

а не лучше ли один раз посчитать количество строк и использовать rand, чем каждый раз перемешивать массив

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#14
Dos3:
а не лучше ли один раз посчитать количество строк и использовать rand, чем каждый раз перемешивать массив

А какая разница? У нас память нынче не 2 МБ и процессоры не IBM 386, где надо было бы просчитывать и экономить. Хоть так, хоть эдак операция в памяти будет проходить за 0,00002 секунды.

---------- Добавлено 12.01.2015 в 00:13 ----------

Конечно можно и так сделать:

<?

$text=file("/home/keyword.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES));shuffle($text);

$text2=file("/home/keyword2.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES));shuffle($text2);

$text3=file("/home/keyword3.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES));shuffle($text3);

$textcount=count($text)-1;

$textcount2=count($text2)-1;

$textcount2=count($text2)-1;

?>

и выводим

<? echo $text[mt_rand(0,$textcount)];?>

<? echo $text2[mt_rand(0,$textcount3)];?>

<? echo $text3[mt_rand(0,$textcount2)];?>

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

мож у него 500к ключей в файлах, при 30ти выводах строки

да и хостинги разные бывают, как и кол. трафика

просто имхо странно это, для каждой паги 30 раз мешать ключи :)

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#16
Dos3:
мож у него 500к ключей в файлах, при 30ти выводах строки
да и хостинги разные бывают, как и кол. трафика

500 К это не много. Ну сколько это 100 МБ? Ну пусть даже в обработке это будет 200МБ в памяти.

В mysql и использование RAND() убьёт вообще сервак, если что :)

Конечно тут много вариаций оптимизированныя, но это уже останется для другого топика.

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

мускул тут и не нужен)

и как использование ранд убьёт сервак ?

$col_str = count($text);

$text[rand(0,$col_str-1)];

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#18
Dos3:
мускул тут и не нужен)
и как использование ранд убьёт сервак ?
$col_str = count($text);
$text[rand(0,$col_str-1)];

в mysql функция Order by rand() очень и очень ресурсоёмкая.

Можно и ваш код, мне лично удобнее перемешивать массив.

И кстати лучше mt_rand вместо rand.

rand очень плохо работает даже на минимальных выборках много дублей.

E
На сайте с 17.02.2008
Offline
191
#19

LEOnidUKG пишет все правильно.

shuffle - это самое простое и правильное решение для данного случая.

Выбираю прокси здесь: https://goo.su/zUub4. Хотите купить и Вы?
Dos3
На сайте с 07.01.2011
Offline
363
#20

теоретики появились в топике :)

возьмите да проверьте оба варианта, я проверил на проце i5, 6гб оперативки, и даже тут разница хорошо заметна

тут и думать не надо, накуя 30 раз мешать массив ?

ключей в файлике было 41300(чуть больше чем надо тсу)

30 раз вывод строки

ps причём разница я бы сказал существенная

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