se ti può servire questa l'ho fatto un po di tempo fa, ma fa ancora il suo lavoro:
Codice PHP:
function generaCodiceCasuale($a=5,$livello=2){
$casual="";
for($i=0;$i<$a;$i++){//determina di quante lettere sarà la password
$mom=mt_rand(0,$livello);//maiuscolo, minuscolo o numero
switch ($mom){
case 0:
$casual .=chr(mt_rand(65,90)); /// Lettere Maiuscole
break;
case 1:
$casual .=chr(mt_rand(97,122)); ////Lettere Minuscole
break;
case 2:
$casual .=mt_rand(0,9); ///// Numeri
break;
case 3:
$casual .=chr(mt_rand(33,47)); ///// Caratteri speciali
// ! " # $ % & ' ( ) * + , - . /
break;
case 4:
$casual .=chr(mt_rand(58,64)); ///// Caratteri speciali
// : ; < = > ? @
break;
}//chiusura swicth
}//chiusura ciclo for
return $casual;
}