Oppure

Loading
30/09/11 16:45
giocala88
Salve ragazzi vorrei realizzare un algortitmo in PHP che mi restituisce n stringhe diverse tra loro di lunghezza fissa, in base alle possibili combinazioni della data stringa in ingresso. Ad esempio se i caratteri disponibili sono ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_-, le possibili combinazioni saranno (supponiamo che la lunghezza della stringa in output sia 3):

Ab0
Bc3
A0b
....

Come posso implementarlo questo algoritmo? Ci sono riuscito fino alla creazione della stringa in base ai caratteri disponibili, ma poi non saprei come continuare 8-|

// genera una stringa casuale della lunghezza desiderata
function PasswordCasuale($lunghezza=3){

	//$caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
	$caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_-";
	$password = "";
	for($i = 0; $i<$lunghezza; $i++){
		$password = $password.substr($caratteri_disponibili,rand(0,strlen($caratteri_disponibili)-1),1);
	}
	return $password;
}

// genera una stringa casuale di 3 caratteri
$random_string = PasswordCasuale($lunghezza=3);

echo "$random_string <br />";


Ringranzio tutti anticipatamente.
aaa
30/09/11 16:50
Potresti usare un array con i caratteri disponibili :yup:
Ultima modifica effettuata da 30/09/11 16:51
30/09/11 17:42
Prova così
<?php
    // genera una stringa casuale della lunghezza desiderata
    function PasswordCasuale($lunghezza=3){
     
            //$caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
            $caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_-";
            $password="";
	    $array;
	    for($x=0; $x < 21; $x++){
	      $password = ""; 
	      for($i = 0; $i<$lunghezza; $i++){
                    $password = $password.substr($caratteri_disponibili,rand(0,strlen($caratteri_disponibili)-1),1);
		 }
           
             $array[$x] = $password;
	    }
	    for($x=0; $x < 21; $x++){
	      print "$array[$x]\n";
	    }
    }
     
    // genera una stringa casuale di 3 caratteri
    PasswordCasuale($lunghezza=3);
     
    ?>


L'ho fatto moooolto di fretta...



Edit:

prova con questo quì
<?php
    // genera una stringa casuale della lunghezza desiderata
    function PasswordCasuale($lunghezza){
     
            //$caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
            $caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_-";
	    $len = strlen($caratteri_disponibili);
	    $tot = (int)(($len / $lunghezza)*$len);  //mi calcolo le combinazioni ed effettuo un cast
	    $password; //variabile che conterrà la stringa casuale
	    $array;
	    
	    for($x=0; $x < $tot; $x++){
	      
	      $password = ""; 
	      
	      for($i = 0; $i<$lunghezza; $i++){
		
                    $password = $password.substr($caratteri_disponibili,rand(0,strlen($caratteri_disponibili)-1),1);
		 }
           
             $array[$x] = $password; 
	     
	    }
	    
	    sort($array);//ordino l'array
	    
	    for($x=0; $x < $tot; $x++){
	      
	      print "$array[$x]\n";//stampo tutte le combinazioni.
	      
	    }
	    
	    print "$tot\n"; //Stampo il numero di  combinazioni effettuate
      
    }
     
    PasswordCasuale(3);
     
    ?>


Ciao :D
Ultima modifica effettuata da 01/10/11 10:45