public function synonimize(){
$str = 'Упрямый и унылый уродец Андрюха упал и уличил Андриана, что он нихуя не работает';
$words = $this->getWords();
$result = $this->getRandomText($str, $words);
dd($result);
}
protected function getRandomText($str, $words){
mb_internal_encoding("UTF-8");
$repl_array = $words;
$keys = array_map(function($key){
return '#'.$key.'#ui';
}, $repl_array);
foreach ($keys as $i=>$key) {
$str = preg_replace_callback($key, function ($match) use ($repl_array, $i) {
$syns = explode('|', $repl_array[$i]);
array_splice($syns, array_search(mb_strtolower($match[0]), array_map('mb_strtolower', $syns)), 1);
return $syns[rand(0, count($syns) - 1)];
}, $str);
}
return $str;
}
protected function getWords(){
$arr = [
"Fora|фора",
"Ford|форд",
"General motors|дженерал моторс",
"Google|гугл",
"Hand|хэнд",
"Hi-tech|хай-тек",
"Homo sapiens|человек разумный",
"Hyundai|хэндэ",
"Ip-адрес|айпишник",
"Ясного представления|четкого понятия",
"Ясное понятие|четкое представление",
"Ясное представление|четкое понятие",
"Ясному представлению|четкому понятию",
.........
и еще много строк
];
return $arr;
}
на пк если запустить такой скрипт то комп очень долго думает
возможно например етот код залить на VPS сервак чтобы он быстро ответ давал, или что-то еще чтобы ускорить работу foreach?