По договоренности
Нужно переделать функцию с PHP на JavaScript
или написать свою на JS
Функция парсит макросы рандомизации
макрос {AAA|BBB|CCC|DDD} выдаст AAA или BBB
макрос {EEE|{FFF|GGG}} выдаст EEE или FFF или GGG
или например
{Hi|Hello}, {How {R|are} {you|U}?|Where are {U|You}?}
итд
Важно проверить чтоб в случае плохого синтаксиса (например где то забыта закрывающая скобка "}" )
функция выдавала например ERROR
Вот функция
Пишите цену и срок
<?php
///////////// RANDOM TEXT FUNCTION /////////////////
function GetMacrosResultAdv($ASource){
function getRndVal($ASrc){
$ex = explode('|', $ASrc);
return $ex[array_rand($ex)];
}
function getMacrosEndPos($ASrc){
$lvl = 1;
$sr = 0;
while ((strlen($ASrc)>0) && ($lvl>0)){
$p = strpos($ASrc, '}');
if ($p === false){
$sr = $sr + strlen($ASrc);
break;
}
$lvl = $lvl + substr_count(substr($ASrc, 0, $p), '{') 1;
$ASrc = substr($ASrc, $p+1);
$sr = $sr + $p + 1;
}
return $sr;
}
function getMcrsLoc($ASrc){
$sr = '';
while (strpos($ASrc, '{') !== false){
$sr = $sr . substr($ASrc, 0, strpos($ASrc, '{'));
$ASrc = substr($ASrc, strpos($ASrc, '{')+1);
$p = getMacrosEndPos($ASrc);
$sr = $sr . getRndVal(getMcrsLoc(substr($ASrc, 0, $p-1)));
$ASrc = substr($ASrc, $p);
}
return $sr . $ASrc;
}
return getMcrsLoc($ASource);
}
///////////// EXAMPLE /////////////////
echo GetMacrosResultAdv("{{Hi|Hello}|Hola}, {how are you?|How do U do?}");
?>