Autor Zpráva
Mufna
Profil
Zdravím Vás. Někde jsem splašil tuhle funkci pro vytváření náhodného řetězce ze základních písmen a číslic, ale má to jednu mouchu, a to že to občas vygeneruje prapodivné znaky - např. " �2e�kyqkdw " . Myslel jsem že to nějak souvisí s UTF-8, ale v té funkci se nepoužívá žádná diakritika ani jiné cizokrajné zvláštní znaky. Čím to je a jak to můžu odstranit ?

funkce je:
function genRandomString() {
   $length = 10;
   $characters = ’0123456789abcdefghijklmnopqrstuvwxyz’;
   $string = '';    
   for ($p = 0; $p < $length; $p++) {
       $string .= $characters[mt_rand(0, strlen($characters))];
   }
   return $string;
}
martindeveloper
Profil
Odečtěte od výsledku strlen() jedničku a mělo by to být v pořádku.

function genRandomString()
{
	$length = 10;
	$characters = "0123456789abcdefghijklmnopqrstuvwxyz";
	$string = '';
	$max = strlen($characters) - 1;
	for ($p = 0; $p < $length; $p++) {
		$index = rand(0, $max);
		$string .= $characters[$index];
	}
	return $string;
}
Mufna
Profil
martindeveloper

díky, vypadá to, že to funguje OK

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0