Помогите с рандом в пхп
$basefile_saying = "base.txt";
$base_saying = file("$basefile_saying");
$random_saying = randomize(0, sizeof($base_saying)-1);
$text_saying = $base_saying[$random_saying];
echo $text_saying;
Проблема в том, что этот скрипт выводит восновном одни и те же фразы, очень редко другие. База у меня пока на 538 фраз.
Как сделать более реальный рандом ?
Цитата:
Originally posted by Galex
Я сделал кое-какой скрипт вывода фраз, коорые находятся в base.txt, где каждая новая фраза начинается с новой строки.
$basefile_saying = "base.txt";
$base_saying = file("$basefile_saying");
$random_saying = randomize(0, sizeof($base_saying)-1);
$text_saying = $base_saying[$random_saying];
echo $text_saying;
Проблема в том, что этот скрипт выводит восновном одни и те же фразы, очень редко другие. База у меня пока на 538 фраз.
Как сделать более реальный рандом ?
Я сделал кое-какой скрипт вывода фраз, коорые находятся в base.txt, где каждая новая фраза начинается с новой строки.
$basefile_saying = "base.txt";
$base_saying = file("$basefile_saying");
$random_saying = randomize(0, sizeof($base_saying)-1);
$text_saying = $base_saying[$random_saying];
echo $text_saying;
Проблема в том, что этот скрипт выводит восновном одни и те же фразы, очень редко другие. База у меня пока на 538 фраз.
Как сделать более реальный рандом ?
http://halfos.street-tv.net/lib/php/function.mt-rand.php.htm
глянь там много способов.
Время поможет создать "реальный" рандом
т.к. рандом обычно делается от числа
а что-бы и число было разным берем за микросек.
[/COLOR]
[COLOR=green]// ф-ция для обработки из:[/COLOR]
[COLOR=green]// "465384563 0.347538455" в одно число[/COLOR]
[COLOR=green]// от которого и рандонём[/COLOR]
[COLOR=teal]function make_seed() {
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
[/COLOR]
[COLOR=tomato]srand(make_seed());
$randval = rand(0, $max_fraz);[/COLOR]
Цитата:
Originally posted by Cosinus
[COLOR=black]
Время поможет создать "реальный" рандом
т.к. рандом обычно делается от числа
а что-бы и число было разным берем за микросек.
[/COLOR]
[COLOR=green]// ф-ция для обработки из:[/COLOR]
[COLOR=green]// "465384563 0.347538455" в одно число[/COLOR]
[COLOR=green]// от которого и рандонём[/COLOR]
[COLOR=teal]function make_seed() {
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
[/COLOR]
[COLOR=tomato]srand(make_seed());
$randval = rand(0, $max_fraz);[/COLOR]
[COLOR=black]
Время поможет создать "реальный" рандом
т.к. рандом обычно делается от числа
а что-бы и число было разным берем за микросек.
[/COLOR]
[COLOR=green]// ф-ция для обработки из:[/COLOR]
[COLOR=green]// "465384563 0.347538455" в одно число[/COLOR]
[COLOR=green]// от которого и рандонём[/COLOR]
[COLOR=teal]function make_seed() {
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
[/COLOR]
[COLOR=tomato]srand(make_seed());
$randval = rand(0, $max_fraz);[/COLOR]
Спасибо сейчас проверю.