LEOnidUKG

LEOnidUKG
Рейтинг
1776
Регистрация
25.11.2006
Должность
PHP
Интересы
Программирование
Dos3:
мускул тут и не нужен)
и как использование ранд убьёт сервак ?
$col_str = count($text);
$text[rand(0,$col_str-1)];

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

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

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

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

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

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

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

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

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)];?>

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

---------- Добавлено 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];?>

jano:
Примерно 30 раз.
Ещё раз спасибо за рабочий код. ))

Тогда делайте по другому.

В начале страницы:

<?

$text=file("/home/keyword.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES)); // Считываем массив

shuffle($text); // Перемешиваем

?>

Далее где нужно уже расставляете:

<? echo $text[0];?>

<? echo $text[1];?>

<? echo $text[2];?>

........

<? echo $text[30];?>

Сколько уже вам надо.

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

Если количество раз не известно:

<?

$text=file("/home/keyword.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES)); // Считываем массив

?>

Далее где нужно уже расставляете:

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

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

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

........

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

тем самым мы не будем дёргать файл с диска много раз.

И я не ошибся, везде 0 надо ставить в таком варианте.

У меня есть код существенно меньше:

Сколько раз придуманный мной код вызывается на странице ? :)

---------- Добавлено 11.01.2015 в 22:54 ----------

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

30К? Не разгрузите именно для этой задачи.

Ну пропишите к ссылке параметр ?banner=1 и ?banner=2

Такого не бывает т.к. нельзя заведомо знать, где разместит свои ссылки движок каталога.

Учитывайте ещё модерацию.

Также время потраченное на составление такого отчёта никак не вяжется с эффективностью. Раньше может быть и можно было так заморачиваться, сейчас это вообще потеряло смысл.

Headway:
Меньше, скорее всего с прошлогодних осенних изменений правил, когда счета переводились в рублевые. Раньше, года 3 назад как раз, была привязана карта payoneer без каких-либо проблем

Странно. Пробовал 2013 году на старый аккаунт привязать карту, меня послали, пришлось новый аккаунт создавать. :(

Тема уже не актуальна, НЛО это попса, массовые глюки уже закончены + по телика зомбировать эту тему перестали.

Всего: 31516