дано: (каждый раз разные значения придется парсить через curl) Code: <script> function getAntiSpamFieldName() { var iii = 4; iii = iii - 5; iii = iii - 16; iii = iii + 4; iii = iii + 5; iii = iii + 21; var ii = 4; ii = ii + 23; ii = ii + 10; ii = Math.floor(ii / 6); ii = ii - 4; var iiii = 4; iiii = iiii * 8; iiii = Math.floor(iiii / 6); iiii = iiii - 21; iiii = Math.floor(iiii / 17); iiii = iiii + 5; var i = 4; i = i - 13; i = i - 16; i = i * 11; i = i + 277; var arr = new Array(); var div = document.getElementById('antispam'); var childList = div.childNodes; var re = new RegExp("(\\d{1,2})(\\w\\w)"); var retval = ''; for(var m=0; m < childList.length; m++){ if (childList[m].nodeType == 8){ value = childList[m].nodeValue; var rem = re.exec(value); arr[RegExp.$1] = RegExp.$2; } } var iarr = new Array(i, ii, iii, iiii); for (m=0; m<4; m++){retval+=arr[iarr[m]]}; return retval; } </script> затем Code: var ans_name = 'f' + getAntiSpamFieldName(); и в итоге Code: <input type=\"hidden\" " + "name=" + ans_name + " value=\"1\" />" В результате должны получить что то вроде f363666d7=1 Нужен совет в парсе функции. как понимаете она создана для того что бы с ней помучаться или можно преобразовать данную функцию в пхп..
Разгадал загадку всеж... PHP: <?php //Будем считать что спарсили все начения i $iii = 4; $iii = floor($iii / 13); $iii = $iii + 5; $iii = $iii + 8; $iii = $iii + 7; $iii = $iii + 23; $iii = $iii - 30; $ii = 4; $ii = floor($ii / 9); $ii = $ii + 9; $ii = $ii * 16; $ii = $ii - 142; $iiii = 4; $iiii = $iiii - 17; $iiii = $iiii - 19; $iiii = $iiii - 5; $iiii = $iiii * 19; $iiii = $iiii + 707; $i = 4; $i = floor($i / 18); $i = $i * 8; $i = $i + 14; $i = $i - 12; //Будем считать что спарсили все начения i //так же спарсили <div id="antispam" style="display: none"> $antispam = "<!-- block033 --><!-- block198 --><!-- block284 --><!-- block347 --><!-- block4e2 --><!-- block5b1 --><!-- block61e --><!-- block758 --><!-- block8d8 --><!-- block9d4 --><!-- block107b --><!-- block11b8 --><!-- block12a4 --><!-- block13f7 --><!-- block141a --><!-- block159c -->"; //так же спарсили <div id="antispam" style="display: none"> //Создаем массив с 0 до 15 со значениями block033 = block 0-номер масива 33 - значение масива и т.д. preg_match_all("((\d{1,2})(\w\w))",$antispam,$match); //Создаем массив с 0 до 15 со значениями block033 = block 0-номер масива 33 - значение масива и т.д. //подсчитаные значения i в виде массива $array1 = array($i,$ii,$iii,$iiii); //подсчитаные значения i в виде массива //берем чисто значения которые напарсили preg_match_all("((\d{1,2})(\w\w))",$antispam,$match); $array2 = $match[2]; // [0] => 33 [1] => 98 [2] => 84 [3] => 47 [4] => e2 [5] => b1 [6] => 1e [7] => 58 [8] => d8 [9] => d4 [10] => 7b [11] => b8 [12] => a4 [13] => f7 [14] => 1a [15] => 9c //берем чисто значения которые напарсили preg_match_all("((\d{1,2})(\w\w))",$antispam,$match); //Цикл сейчас начнем брать 4 элемента массива которые нам нужны for ($m=0;$m<4;$m++) { $result[]= $array2[$array1[$m]]; //то что подсчиталось в i=2, ii=2, iii=13, iiii=4, элементы которые нам нужны. } //Цикл сейчас начнем брать 4 элемента массива которые нам нужны //$result = [0] => 84 [1] => 84 [2] => f7 [3] => e2 $result = implode("",$result); // Сливаем в единое $result = "f".$result; // var ans_name = 'f' + getAntiSpamFieldName(); типа того что то //Антиспам защита разгадана f8484f7e2 //Позже выложу полнофункциональную функцию. ?> Ребята вот дальше помощь нужна, что то туплю.. Запарил на том что необходимо напарсить значения i,ii,iii,iiii дело в том что как текст я выдергиваю функцию.. а вот подсчитать как лучше.. возможно ли как то в js выполнить на лету? или на пыхе..
Меняется значения i iii iiii ii там она зависит от сессии, один раз значения принимаются функцию успел скопировать, доработалеще не тестировал.. а так огромное спасибо по завершениию отпишусь