Rand() - hmmmm

PHP

3 svar · 215 visningar · startad av oelbal

Medlem sedan jan. 20014 973 inlägg
Trådstart#1

Jag är lite halvröten på PHP, men har iaf gjort en liten kod som slumpar fram HTML från 3 olika .txt dokument. Nu är det så den kanske är lite dåligt skriven, eller så är funktionen rand() dålig, för att det hämtas nästan alltid kod från .txt nummer ett. Det kommer nästan aldrig kod från 2:an och 3:an.

Hur kan jag optimera koden så att den verkligen slumpar mellan de tre dokumenten?

<?php

$summa = rand(1, 3);

if($summa == 1) {
	$file = fopen("text1.txt", "r"); 
	while(!feof($file)) 
	{
	$line = fgets($file,4096); 
	echo "$line";
	}
	fclose ($file);
}

if($summa == 2) {
	$file = fopen("text2.txt", "r"); 
	while(!feof($file))
	{
	$line = fgets($file,4096); 
	echo "$line";
	}
	fclose ($file);
}

if($summa == 3) {
	$file = fopen("text3.txt", "r"); 
	while(!feof($file))
	{
	$line = fgets($file,4096); 
	echo "$line";
	}
	fclose ($file);
}

?>
Medlem sedan dec. 200012 464 inlägg
#2

Använd srand för att få spridning.
Ur PHP-manualen för srand:

Seeds the random number generator with seed.


// seed with microseconds since last "whole" second

srand ((double) microtime() * 1000000);
$summa = rand(1,3);

dok om srand finns här
http://www.php.net/manual/en/function.srand.php

Medlem sedan jan. 20014 973 inlägg
#3

Attans, att jag inte kollar i manualen först :)

.....få se om det funkar.....

Medlem sedan jan. 20014 973 inlägg
#4

YES!
Nu blev det bättre....

Tack LarsG för att du påpekade felet för mig :)

475 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
217 ms — deklarationer (db)
119 ms — hämta statistik (db)
129 ms — hämta tråd, inlägg och bilagor (db)
219 ms — ändringar (db)