Numeri casuali: dal manuale di PHP

Ho cercato sul manuale di php, ma c'è una cosa che non capisco.

<?php

// funzione oscura
function getmicrotime(){

   list($usec, $sec) = explode(" ",microtime());
   return ((float)$usec + (float)$sec);

}


getmicrotime();

// creo il seed per rand ()
srand((double)microtime()*1000003);

// genero il valore casuale
$nometmp = rand();

?>

a che serve la funzione getmicrotime () ?

il numero generato è abbastanza piccolo, quindi ci sono buone probabilità che venga ripetuto.

Quanto è sicuro questo metodo?

inviato 10 anni fa
arjuna
X 0 X

se vuoi semplicemente un numero, usa:

gmp_random ( int limiter )

Genera un numero casuale. Il numero, sarà lungo un numero di WORD (2 byte) non superiore all'argomento limiter. Se l'argomento limiter è negativo, il numero generato sarà anch'esso negativo.

risposto 10 anni fa
ttan
ttan
1
X 0 X

ma quanto è affidabile?

risposto 10 anni fa
arjuna
X 0 X

Forse hai consultato qualche vecchia versione del manuale. Per le info su rand vedi qui:

http://it.php.net/manual/it/function.rand.php

Sempre dal manuale si legge:

Nota: Come in PHP 4.2.0, non vi è necessità di inizializzare il generatore di numeri casuali con srand() oppure con mt_srand() poichè viene eseguito in modo automatico.

quindi per generare un numero casuale ti basta usare esclusivamente la funzione rand.

Per quanto riguarda il range dei valori, sempre dal manuale:

int rand ( [int min, int max] )

Se chiamata senza i parametri opzionali min, max, rand() restituisce un valore pseudo casuale compreso fra 0 e RAND_MAX. Se ad esempio si desidera un numero casuale compreso fra 5 e 15 (inclusi) usare rand (5, 15).

Il valore di RAND_MAX lo ottieni con la funzione getrandmax()

Se sei però interessata a creare un file con un nome unico ti conviene usare la funzione tempnam

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Mi serve per generare un nome di file.

Ma non capisco come usare questa funzione.

Mi sembra di capire che genera un file temporaneo.

Il mio script sposta il file caricato in questo modo:

move_uploaded_file ($immagine['tmp_name'], $fileonserver )

dove:

$fileonserver = $uploaddir.$nomeFile;

sei io genero il file in questo modo:

$tmpfname = tempnam( $uploaddir, 'FOO');

come faccio poi a utilizzarlo per posizionarci il file che sto caricando?

risposto 10 anni fa
arjuna
X 0 X

Invece di spostare il file inviato potresti leggerlo e riversare il contenuto in quello nuovo

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ok, adesso mi studio come si fa.

Grazie

risposto 10 anni fa
arjuna
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda