10 gennaio 2009

Generazione valori random in php

Questo post ha come obiettivo quello di fornire una soluzione alla generazione di valori numerici random e alla creazione di stringhe random in php.
L' utilizzo di stringhe random può essere utile ad esempio nel caso in cui si vogliano definire nomi di variabili javascript o identificatori di elementi per l'html univoci.
Qui di seguito l'implementazione di una classe mediante cui, attraverso i relativi metodi statici mette a disposizione tali funzionalità.

Ecco l'implementazione della classe :
/***
* Classe per la generazione random
*
* @author Alessandro Franzi
*
*/

class Random{
/***
* Genera una stringa random
*
* @param $caratteri : numero di caratteri della stringa random
* @return : stringa generata in maniera random
*/
public static function string($caratteri=7){
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;

while ($i <= $caratteri) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}

return $pass;
}
/***
* Metodo per generare un numero random
* @param $min : valore minimo del numero random (optional)
* @param $min : valore massimo del numero random (optional)
* @return : numero random
*/
public static function numero ($min=null,$max=null){
if (empty($min)&&empty($max)){
return rand();
}else{
return rand($min,$max);
}
}
}

Vediamo ora come è possibile invocare tali funzionalità:
// creare una stringa di 10 caratteri
$strRand = Random::string(10);
// creare una stringa di 7 caratteri (numero di default)
$strRand = Random::string();
// recuperare un valore numerico random senza stabilire un range
$numRand = Random::numero();
// recuperare un valore numerico il cui range è [2,23]
$numRand = Random::numero(2,23);

Spero che questo post sia stato utile. Alla prossima!

Nessun commento: