Véletlen név php szimbolikus ábécés numerikus értéken

Nem is olyan régen, hogy ezt a kérdést megváltoztattam, kétségbeesettem Nem találtam meg, amit akartam. Szükségem volt olyan nevek létrehozására, mint az i20M. vannak olyan nevek, amelyek mindkét számot és más regiszter betűit tartalmazzák, ami lehetővé tette több érték elérését, mint egy másik változatnál. De a legtöbb helyszínen örömmel adtam meg a név számszerű oktatást, azaz: 2342523423.

Így akartam, hogy 100% -ban biztos, hogy az új generált számot nem használták korábban, egy ilyen eredményt lehet elérni, akár a felvétel minden előzőleg kapott eredményeket máshol (pl egy adatbázis MySQL), akkor ellenőrizze, hogy az újonnan létrehozott száma az adatbázisban, és ha van, hogy új, de ez túl sok felesleges intézkedések nagy terhelés bázis, különösen, ha van egy nagy számú már jól ismert nevek, és a szkript továbbra is készít új csekket, hogy nagyon jó.

Azonban, miután egy ideig üldögéltem és gondolkodtam, úgy döntöttem, hogy következetes nevek létrehozása, mint például az 1. 2. 3. 4. csak más regiszterek betűinek hozzáadásával.

Milyen előnyökkel jár ez a megközelítés?

1. Teljesen nincs terhelés a kódtól.

2. Megbízhatóság. A név nem ismeri fel a 100% -ot.

3. A megértés egyszerűsége és egyszerűsége.

4. Nevek rövidsége. Csak 4 szimbólum és közel 15 millió változat.

A hátrány csak számíthatóság lehet, azaz az a személy, aki előtt van egy üzlet, tudja, hogy milyen értékeket már használtak, abban az esetben, persze, ha valahova viszi őket, és valami fontosat tartanak mögöttük. Más esetekben a kód használata tökéletes.

Alfanumerikus soros elnevezés PHP-ben

A generált szám 4 bit, de 14,7 millió különböző értékkel (64 a 4-es teljesítményig).

Tehát az egész konstrukció 2 fájlból áll: mynum.txt. ahol az utolsó létrehozott név értéke tárolódik, és index.php, amelyben lesz egy kód, a következő tartalommal:

>
>
egyébként $ 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;
/ / Retrieve a $ newall változót itt, amely egyedi nevet tartalmaz.
?>

Amint látja, mindennek nem olyan nehéz, mint első pillantásra. A kód végén használhatja a $ newall változót. amely konzisztens nevet tartalmaz.

Apropó következetesség, szoktam az első 0-9, majd összekeverjük nagybetűk az és AZ, ami összesen 62 különböző értékeket az azonos nevű a kibocsátás, azaz 0-9 = 10, 26 = az, AZ = 26, és az összeg 62, ami azt jelenti, hogy a négyjegyű név összes változata 62 ^ 4 = 14.77 millió.

Ez a kód ma már csak 4 megkülönböztetett névre van beállítva, például 143c. Fsfk. és ennek az egész rendszernek a működésének legfontosabb feladata a mynum.txt fájl létrehozása. amelyben írja be a latin betűket és / vagy számokat használó karaktereket, amelyekből a szekvenciális számla elkezdődik. A kód minden végrehajtása után a fájl tartalma 1-vel növekszik (a 143c 143d lesz).

Ha valamilyen oknál fogva nem tetszik a sorozatos nevek létrehozásának ez a rendszere, akkor kihasználhatja a véletlenszerűt:

Alfanumerikus véletlenszerű névgenerátor PHP-ben

Ha azt szeretné, hogy a név véletlenszerűen létre legyen hozva az abszolút véletlenszerű karakter leképezések használatával, akkor javaslom egy ilyen funkció használatát:

function generate_name ($ length) $ code = '';
$ symbols = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-

+*% $ # ';
for ($ i = 0; $ i <(int)$length; $i++ )
$ num = rand (1, strlen ($ szimbólumok));
$ kód. = substr ($ szimbólumok, $ num-1, 1);
>
visszaadja a $ kódot;
>
echo generate_name (5); // 5 karakter véletlenszerű neve

Amint láthatja, a $ szimbólum változó tartalmazza azokat a karaktereket, amelyekből a neved épül fel. A szimbólumokat tetszés szerint hozzáadhatja vagy eltávolíthatja.

generate_name (N). ahol N a név jövőbeli generációjának száma.

Egy másik alfanumerikus névgenerátor

Vannak más módok a nevek létrehozására, például:

$ rand = substr (md5 (uniqid (rand (), true)), 0, rand (7, 13));

Röviden és világosan.

Még rövidebb és érthetőbb.

Milyen előnyökkel jár ez a kód? Úgy gondolják, hogy teljesen új, nem ismétlődő neveket hoz létre, de alapértelmezés szerint 32 karakter hosszúságú. Ez azonban egyszerűen korrigálható a substr () függvénnyel.