webForumDet fria alternativet
Logga in / Bli medlem

Rand() - hmmmm

PHP

3 svar · 212 visningar · startad av oelbal

Medlem sedan jan. 20014 973 inlägg
Frågan#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 :)

257 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)