Nume aleatoriu pe valoarea numerică alfabetică simbolică php

Nu cu mult timp în urmă, transformând această întrebare, am înnebunit pentru că Nu am găsit ce vroiam. Aveam nevoie să creez nume ca i20M. există nume care conțin atât cifre, cât și litere ale unui registru diferit, ceea ce a făcut posibilă obținerea mai multor valori decât cu o altă variantă. Dar majoritatea site-urilor am fost fericit să dau doar educația numerică a numelui, adică: 2342523423.

Așa că am vrut să fiu 100% sigur că numărul nou generat nu a fost utilizat anterior, un astfel de rezultat poate fi realizat fie prin înregistrarea tuturor rezultatelor obținute anterior în altă parte (de exemplu, într-o bază de date MySQL), apoi verificați dacă numărul nou creat în baza de date și în cazul în care există este de a genera noi, dar este prea mult acțiuni inutile mare de încărcare pe bază, mai ales dacă avem un număr mare de nume deja stabilite și script-ul va continua să genereze noi cec care foarte bun.

Cu toate acestea, după o ședință de timp și gândire, am decis să fac o creare consecventă a numelor, adică ca 1. 2. 3. 4. numai cu adăugarea de litere ale unui alt registru.

Care sunt avantajele acestei abordări?

1. Absolut nici o sarcină din cod.

2. Fiabilitatea. Numele nu se repetă 100%.

3. Ușurința și simplitatea înțelegerii.

4. Brevitarea numelor. Doar 4 simboluri și aproape 15 milioane de variații.

Un dezavantaj poate fi doar o calculabilitate, adică o persoană care are o afacere înainte de a face acest lucru poate ști ce valori au fost deja folosite, în acest caz, desigur, dacă le luați undeva și păstrați ceva important în spatele lor. În alte cazuri, utilizarea codului este perfectă.

Nume alfanumeric în PHP

Numărul generat va fi de 4 biți, dar poate avea 14,7 milioane de valori diferite (64 la puterea de 4).

Astfel, întreaga construcție va consta din două fișiere: mynum.txt. în care va fi stocată valoarea ultimului nume creat și index.php în care va fi un cod, al următorului conținut:

>
>
altfel $ qwe = str_replace ($ findit, $ replna, $ qwe);
$ allbef = substr ($ lala, 0, -1);
$ newall = $ allbef. $ qwe;
>
$ newid = fopen ("./mynum.txt", "w");
fputs ($ newid, "$ newall");
fclose ($ newid);
echo $ newall;
// Returnați variabila $ newall aici, care conține un nume unic.
?>

După cum puteți vedea, totul nu este atât de dificil cum părea la prima vedere. La sfârșitul acestui cod, puteți utiliza variabila $ newall. care conține un nume consistent.

Vorbind de consistență, am folosit prima 0-9, apoi literele caz amestecate az și AZ, care dă un total de 62 de valori diferite ale aceluiași nume al descărcării, adică 0-9 = 10, 26 = az, AZ = 26, iar suma 62, ceea ce înseamnă că toate variantele diferite ale numelui cu 4 cifre vor fi 62 ^ 4 = 14,77 milioane.

Acest cod este acum configurat doar pentru 4 nume distincte, de exemplu 143c. Fsfk. și principalul lucru pentru funcționarea acestei scheme este de a crea un fișier mynum.txt. în care scrieți 4 caractere care folosesc litere și / sau numere latine, din care va începe contul secvențial. După fiecare executare a codului, conținutul fișierului va fi incrementat cu 1 (143c va deveni 143d).

Dacă, din anumite motive, nu vă place această schemă de creare secvențială a numelor, puteți profita de întâmplări:

Un generator de nume aleator alfanumeric în PHP

Dacă doriți ca numele să fie creat la întâmplare utilizând mapări de caractere absolut aleatoare, vă recomandăm să utilizați o funcție de genul:

funcția generate_name ($ lungime) $ code = '';
$ Simboluri = „0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-

+*% $ # ';
pentru ($ i = 0; $ i <(int)$length; $i++ )
$ num = rand (1, strlen ($ simboluri));
$ code = substr ($ simboluri, $ num-1, 1);
>
returnați codul $;
>
echo generate_name (5); // Nume aleatoriu de 5 caractere

După cum puteți vedea, variabila $ simboluri conține toate caracterele de la care vă va fi construit numele. Puteți adăuga sau elimina simboluri după voință.

generate_name (N). unde N este numărul de caractere ale generației viitoare a numelui.

Un alt generator de nume alfanumeric

Există, de asemenea, alte moduri de a genera nume, de exemplu:

$ rand = substr (md5 (uniqid (rand (), adevărat)), 0, rand (7, 13));

Pe scurt și clar.

Chiar mai scurtă și mai ușor de înțeles.

Care sunt avantajele acestui cod? Se crede că creează nume complet nerecurente, dar, în mod implicit, le face o lungime de 32 de caractere. Cu toate acestea, acest lucru poate fi ușor corectat cu funcția substr ().