Вопрос по PHP rand()?

12
seosniks
На сайте с 13.08.2007
Offline
389
#11
pikasso:
seosniks, пользуйтесь функцией array_rand.

Спасибо, будем эксперементировать.

Всем спасибо за помощь, да прибудет с Вами Удача.

seosniks добавил 09.10.2010 в 20:02

'[umka:
;7753833']запустил ваш скриптик с вашим файлом в цикле 1000 раз — ни одного пропуска.
что я делаю не так? :)

У меня была ошибка в коде

смотрите

$files = file("city.txt");

$alls= count($files);

$fils=rand(0,$alls);

$city = $files[$fils];

хотя я же пробовал указать значение 1 в массиве.

$fils=rand(1,$alls);

К стати вот смотрите что выдает бредо генератор

Ссылку скинул в ЛС.

Есть пропуски значений

dvaes
На сайте с 03.09.2007
Offline
65
#12
seosniks:
$fils=rand(1,$alls);

1 это с какой строки начинает, надо с 0 ставить и $alls-1 делать

[umka]
На сайте с 25.05.2008
Offline
456
#13

count выдаёт количество элементов в массиве, а по-скольку индексация массива начинается с нуля, то если мы запихиваем в массив из файла 100 элементов, индекс последнего получается 99, хотя всего элементов 100.

Поэтому в функции rand нужно указывать диапазо 0-99, а не 1-100 :)

Лог в помощь!
seosniks
На сайте с 13.08.2007
Offline
389
#14
dvaes:
seosniks, а в первом варианте число строк сами от балды брали? без выяснения сколько строк в файле?)

строки я считал с помощью функции count()

seosniks добавил 09.10.2010 в 20:18

dvaes:
1 это с какой строки начинает, надо с 0 ставить и $alls-1 делать

Теперь я это понял.:D за три года первый раз вникнул немного больше.

Я обычно в процессе написания чего либо учу нужные мне функции. :D

А так Написать можно все что угодно, самое главное знать чего хочешь, и как оно должно быть реализовано.

pikasso
На сайте с 27.01.2008
Offline
150
#15
seosniks:
$files = file("city.txt");
$alls= count($files);
$fils=rand(0,$alls);
$city = $files[$fils];

Попробуйте так:


$files = file("city.txt");
$city = array_rand($files);
seosniks
На сайте с 13.08.2007
Offline
389
#16
pikasso:
Попробуйте так:

$files = file("city.txt");
$city = array_rand($files);

Спасибо, за примеры.

Shoo[rik]
На сайте с 12.04.2008
Offline
66
#17
seosniks:
У меня была ошибка в коде
смотрите
$files = file("city.txt");
$alls= count($files);
$fils=rand(0,$alls);
$city = $files[$fils];

хотя я же пробовал указать значение 1 в массиве.
$fils=rand(1,$alls);

Я как раз правильный вариант привел, в своем первом посте, данной темки. Хех и даже предположил ошибку, которую Вы допускаете, верно. Не зря видимо читаю Дмитрия Котерова... х)

pikasso, спасибо, тоже взял на заметку, не знал о такой функции.

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#18

Если нужен просто вывод, то вообще делают так:


echo $text[array_rand($text=file("banner.txt"))];
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
12

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