Здравствуйте. Почти не разбираюсь в пшп, может кто хоть направление для действия подскажет.
В общем есть у меня сайт про онлайн игры, хочу туда прикрутить генератор ников навроде как реализовано здесь:http://onlinetoplist.com/nick.htm
Нашел пшп код в свободном доступе, т.е. фри. Но автор видно подразумевает что им будут пользоваться люди знающие...
Куда мне засунуть этот код и как это дело вывести для показа на сайте? Хотяб примерно пути реализации если можно. Код привожу ниже:
<?php
/*************************************************************
* Генератор ников
* http://BrokenBrake.biz/
*************************************************************/
mb_internal_encoding('UTF-8');
$q = $_GET['q'];
$lang = $_GET['lang'];
$num = $_GET['num']; // prefixGen | halfGluing | bcdReplace
$type = $_GET['type'];
$ru = false;
if ($lang == 'ru')
$ru = true;
if (empty($num))
$num = 5;
if (empty($type))
$type = 'prefixGen';
if (empty($q))
$q = 'test';
/*
function endsdel($word) // Глагольные окончания всякие
{
$ends = array(
'/тся$/u',
'/ться$/u',
'/ть$/u',
'/ся$/u',
'/аю$/u',
'/шь$/u',
'/сь$/u',
'/ют$/u',
'/и$/u');
return preg_replace($ends, '', $word);
}
*/
function prefixGen($words, $ru)// Алгоритм добавления приставок
{
unset($words['halves1'], $words['halves2']);
foreach ($words as $val) {
$prefixes = 'su, do, du, de, un, pseudo, super, emo, hyper, mega, meta, nano, tera, anti, avia, porno, euro, bio, micro, uni, neo, conta, co-, in, mis, over, pre, post, re, sub';
$end = $val;
if ($ru) {
$prefixes = 'недо, пере, во, вы, до, за, изо, ко, на, не, о, обо, ото, па, по, подо, пра, предо, про, разо, со, пре, при, мета, су, у, гипер, гипо, недопере, перенедо, ана, а, дека, гекто, кило, мега, гига, пета, экса, тера, микро, мини, милли, нано, пико, деци, йокто, йоби, киби, меби, гиби, теби, пеби, эксби, экс-, зеби, эрзац-, слабо, био, техно, страшно, переподвы, индо, евро, нагло, спорно, псевдо, сверх, супер, квази, лже, архи, де, анти, ультра, флудо, эмо, порно, глупо, умно, странно, обоюдо, нео, после, авиа, пай-, ебо, педо, уни, лакто, литро, нарко, вые, добро, снего, садо, абра, арабо, гидро, англо, педро, ибн-, сочно, трудо, грязно, ложно, переподвы, худо, ржачно, любо, мило, крико, синхро, психо, водо, фигня, круто, вольно, пара, паро, боле, астро, стерео, моно, сыро, мясо, нитро, зло, авто, мото, вело, кино, радио, ретро, трахо, сексо, вечно, потно, взрыво, криво, ядо, волно, фило, само, крупно, мелко, титько, жопо, гнуто, рабо, крио, аква, длинно, лаго, баго, блохо, макро, би, тетра, тупо, страхо, воро, бандито, сердито, вьюго, ветро, градо, между, токсо, токси, славно, бого, полу, полу, полу, нано, нано, лже, лже, эмо, эмо, эмо, микро, микро, псевдо, всевдо, квази, квази, нарко, евро, евро, ибн-, ибн-';
}
$prefixes = explode(', ', $prefixes);
shuffle($prefixes);
$prefix = $prefixes[0];
$result[] = $prefix . $end;
}
return $result;
}
function halfGluing($words, $ru)// Алгоритм склейки половинок разных слов
{
shuffle($words['halves2']);
foreach ($words['halves1'] as $key => $val) {
$end = $words['halves2'][$key];
$result[] = $val . $end;
}
return $result;
}
function bcdReplace($words, $ru) // Алгоритм замены согласных
{
unset($words['halves1'], $words['halves2']);
function randl($letters)
{
shuffle($letters);
return array_shift($letters);
}
function bcd($raw, $ru)
{
$letters = str_split('bcdfghklmnpqrstvwxz');
if ($ru)
$letters = explode(',', 'б,в,г,д,ж,з,к,л,м,н,р,с,ч,ш'); // Исключение некоторых букв повышает читаемость
$temp = mb_split('1', $raw);
foreach ($temp as $val) {
$one = $val;
if ($val == '0')
$one = randl($letters);
$nick .= $one;
}
return $nick;
}
foreach ($words as $word) {
$search = 'bcdfghklmnpqrstvwxz';
if ($ru)
$search = 'бвгджзклмнпрстфхцчшщ';
$raw = preg_replace("/[$search]/u", '101', $word);
$result[] = bcd($raw, $ru);
}
return $result;
}
// $base = unserialize(file_get_contents("base.txt")); // Удобно для тестирования
$base = unserialize(
file_get_contents("http://pipes.yahoo.com/pipes/pipe.run?_id=2e234671cafed4492b6f560a4d9d0ddb&_render=php&int=4-12&lang=$lang&q=$q")
);
$words = $base['value']['items'];
foreach ($words as $val) {
$word = $val['title'];
$justwords[] = $word;
$lesshalf = '{' . floor(mb_strlen($word) * 0.4). '}';
$ready = 'бвгджзклмнпрстфхцчшщbcdfghklmnpqrstvwxz';
preg_match_all("/(^.$lesshalf.*[$ready])(.*$)/Uu", $word, $halves);
$justwords['halves1'][] = $halves[1][0];
$justwords['halves2'][] = $halves[2][0];
}
$nicknames = $type($justwords, $ru);
shuffle($nicknames);
$result = array_slice($nicknames, 0, $num);
if (!empty($result)) {
echo join(', ', $result);
} else {
echo 'error';
}
Заранее спасибо всем кто откликнется. Подозреваю что сложного ничего нет, но чего-то я туплю...