Сервис генерации женских имён :)
В последние годы распространённые женские имена не в моде - у нас во дворе, например, бегают сплошь маленькие ЭВРИДИКИ, АУРЕЛИИ, ПОЛИНЫ, ЛОЛИТЫ, ВИОЛЕТТЫ и т.д.
Но ведь этого мало, имён-то человечество придумало не так много, может, стоит быть оригинальней? :) Во всяком случае, полученные при тестировании скрипта СИНЬЯИТА, ЛИПОЗА, ВЕОКА, СИВА, ЭДРАПОРЯ, РАКСВЕТУНА и РЕССИНЬКОРНА кажутся мне ничуть не хуже :)
Так что в свободные полчаса развлечения ради родил сервис для генерации футуристических женских имён... ну и заодно, "продвинутых никнеймов", конечно.
База составлена из сгенерированных слогов, найденных в женских именах выборки, без удаления повторов, чтоб не мучиться с частотами. Следовало бы, пожалуй, из 1000 тёток выборку сделать, но поленился.
Верхнее ограничение на число слогов произвольно, можно поменять в исходнике значение $max_slog
.
Разумеется, можно также добавить побольше regexp'ов
для отсечения лишнего, но тоже лень.
А вот и полный исходник скрипта на момент написания:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta content="text/html; charset=Windows-1251" http-equiv="content-type"> <title>Female Name Generator (RU)</title> </head> <body> <?php function trimall($string) { return trim(preg_replace("/\s+/"," ",$string)); } function magic ($path) { @ini_set('magic_quotes_runtime', '0'); @ini_set('magic_quotes_sybase', '0'); if (@get_magic_quotes_gpc()=='1') $path=stripslashes($path); return $path; } $max_slog=4; $params = array ('slog','action'); while (list($num,$var) = each($params)) { if (!empty($_POST[$var])) $$var = trimall(htmlspecialchars(magic($_POST[$var]))); else $$var = ''; } if (empty($slog)) $slog=3; else $slog=abs(intval($slog)); if ($slog<2) $slog=2; else if ($slog>$max_slog) $slog=$max_slog; echo ' <form name="f1" method="post" action="'.$_SERVER['PHP_SELF'].'"> <table align="center" border="0" cellpadding="4" cellspacing="0" width="50%"> <tr> <td>Количество слогов:</td> <td> <select name="slog" size="1">'; for ($i=2; $i<5; $i++) echo '<option value="'.$i.'"'.($slog==$i?' selected':'').'>'.$i; echo ' </select> </td> </tr> <tr> <td> </td> <td> <input type="submit" name="action" value="Сгенерировать"> </td> </tr> </table> </form>'; if (!empty($action)) { $data=file_get_contents ('slogi.txt'); $a=explode("\n",$data); $count = count ($a); $slogs = array (); $i=0; while ($i<$slog) { $k = rand (0, $count); $s = trim($a[$k]); if ($i>1) { if ($slogs[$i-1]==$s or $slogs[$i-2]==$s) continue; //не надо 3 повторов слога подряд if (preg_match ("/[АЕИОУЫЭЮЯ][АЕИОУЫЭЮЯ][АЕИОУЫЭЮЯ]$/",implode($slogs))>0) continue; //или 3 гласных } if ($i==$slog-1 && preg_match ("/[БВГДЕЖЗЙКЛМНОПРСТФХЦЧШЩЪЫЬЭ]$/", $s)>0) continue; //не надо этого в конце $slogs[] = $s; $i++; } $name=implode($slogs); echo '<div align="center">'.$name.'</div>'; } ?> </body></html>
05.02.2014, 21:10 [10712 просмотров]