<?php
/**
* genlognames.php - генератор данных для регистрации одного пользователя
*
* Copyright (c) 2011, Student Name <student@cs.karelia.ru>
*/
$user_rname = "СидоРов"; # исходное имя
$user_lname = ""; # имя латиницей
$user_pass = ""; # пароль
/*
* latinize - посимвольно преобразует строку с русскими символами
* в строку с латинскими символами
*
* Парамметры:
* $str - строка с русскими символами в кодировке UTF8
*
* Возвращаемое значение:
* функция возвращает строку латинских символов
*/
function latinize($str)
{
/* Массив соответствий символов*/
$alpha = array (
"а" => "a",
"б" => "b",
"в" => "v",
"г" => "g",
"д" => "d",
"е" => "e",
"ё" => "e",
"ж" => "zh",
"з" => "z",
"и" => "i",
"й" => "i",
"к" => "k",
"л" => "l",
"м" => "m",
"н" => "n",
"о" => "o",
"п" => "p",
"р" => "r",
"с" => "s",
"т" => "t",
"у" => "u",
"ф" => "f",
"х" => "kh",
"ц" => "c",
"ч" => "ch",
"ш" => "sh",
"щ" => "sch",
"ь" => "",
"ы" => "y",
"ъ" => "",
"э" => "e",
"ю" => "yu",
"я" => "ya"
);
$r = "";
/* Посимвольная замена русских символов.
* Используются функции для мультибайтовых строк */
for($i = 0; $i < mb_strlen($str, "UTF-8"); $i++)
{
$x = mb_substr($str, $i, 1, "UTF-8");
$r .= $alpha[$x];
}
return $r;
}
/* латинизация строки, приведенной к нижнему регистру*/
$user_lname = latinize(mb_strtolower($user_rname, "utf8"));
/* генерация пароля pwgen
* ключи:
* -1 - выдать только один вариант
* -с - хотя бы одна заглавная буква
* -B - не использовать неоднозначно-читаемые символы (l,1,O,0)
*/
$user_pass = exec("pwgen -1 -c -B");
?>