<?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");
	        
?>
