Випадкове ім'я на php символьне буквене числове значення

Не так давно погуглити це питання, я зневірився тому не знайшов того чого хотів. Мені було необхідно створення імен виду i20M. тоесть імена містять в собі і числа і букви різного регістра, що дозволяло домогтися більшої кількості значень ніж при іншому варіанті. Але більшість сайтів мені з радістю вручали тільки чисельне освіту імені, тобто таке: 2342523423.

Так само я хотів бути на 100% впевнений що нове створене число не було використано раніше, такого результату можна було досягти або записуючи все до цього отримані результати куди-небудь (наприклад в БД MySQL), потім перевіряти чи немає нового створеного числа в базі і якщо є генерувати нове, але це все дуже багато зайвих дій велике навантаження на базу, особливо в тому випадку якщо у нас велика кількість вже створених імен та скрипт буде постійно генерувати нові перевіряти, що зовсім недобре.

Однак трохи посидівши і подумавши, я вирішив зробити послідовне створення імен, тобто на кшталт 1. 2. 3. 4. тільки ще й з додаванням букв різного регістра.

У чому плюси такого підходу?

1. Абсолютно ніякого навантаження від коду.

2. Надійність. Ім'я вже не повториться 100%.

3. Легкість і простота розуміння.

4. Стислість імен. Всього 4 символу і майже 15 мільйонів варіацій.

Мінусом може бути тільки просчітиваемость, тобто людина, якій є діло до того як саме це зроблено може знати які значення вже використовувалися, в тому випадку звичайно якщо ви їх десь виводите і зберігайте за ними щось важливе. У будь-яких інших випадках використання коду - ідеально.

Буквено-чисельний послідовний создаватель імен на PHP

Створюване число буде 4-розрядних, однак може мати 14,7 мільйона різних значень (64 в ступені 4).

Отже, вся конструкція буде складатися з 2 файлів: mynum.txt. в якому буде зберігатися значення останнього створеного імені, і index.php в якому буде код, такого змісту:

>
>
else $ 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;
// Забирайте тут змінну $ newall, яка містить унікальне ім'я.
?>

Як бачите все не так вже й складно як здавалося на перший погляд. В кінці цього коду ви можете використовувати змінну $ newall. містить послідовне ім'я.

До речі про послідовність, я використовував спочатку цифри 0-9, потім букви різних регістрів az і AZ, що в сумі дає 62 різних значення одного розряду імені, тобто 0-9 = 10, az = 26, AZ = 26 і в сумі 62, а це означає що всього різних варіантів 4-розрядного імені буде 62 ^ 4 = 14,77 мільйона.

Даний код зараз налаштований тільки на 4 разрадние імена, наприклад 143c. Fsfk. і головне для роботи всієї цієї схеми створіть файл mynum.txt. в якому пропишіть 4 будь-яких символу використовуючи латинські букви і / або цифри, з яких і почнеться послідовний рахунок. Після кожного виконання коду вміст файлу буде увеличевается на 1 (143c стане 143d).

Якщо з яких-небудь причин вам не підходить така схема послідовного створення імен, ви можете скористатися випадковим:

Буквено-чисельний випадковий создаватель імен на PHP

Якщо ви хочете що б ім'я створювалося рандомно, використовуючи абсолютно випадкові зіставлення символів, рекомендую використовувати функцію виду:

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

+*% $ # ';
for ($ i = 0; $ i <(int)$length; $i++ )
$ Num = rand (1, strlen ($ symbols));
$ Code. = Substr ($ symbols, $ num-1, 1);
>
return $ code;
>
echo generate_name (5); // Випадкове ім'я з 5 символів

Як бачите в змінну $ symbols вкладені всі символи з яких буде побудовано ваше ім'я. Ви можете самі додавати або видаляти символи по своєму бажанню.

generate_name (N). де N- кількість символів майбутньої генерації імені.

Ще один буквено-чисельний генератор імен

Є також ще способи генерації імен, наприклад:

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

Коротко і зрозуміло.

Ще коротше і зрозуміліше.

У чому плюси цього коду? Вважається що вона створює абсолютно нові неповторним імена, але за замовчуванням вона їх робить завдовжки в 32 символу. Однак це можна легко виправити функцією substr ().