Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Небольшой скрипт (https://javascript.ru/forum/css-html/13150-nebolshojj-skript.html)

инклуд 17.11.2010 21:28

Небольшой скрипт
 
Есть такая функция:
function chksum(str) {
    var poly=new Array(256);
    for (i=0;i<256;i++) { c = i; for (j=0;j<8;j++) { if ((c & 1) !=0) {c = (c >>>1) ^ 0xEDB88320;} else {c = c >>> 1;}} poly[i]=c;}
    var crc = -1; var x = 0; var y = 0;
    for( var i = 0, iTop = str.length; i < iTop; i++ ) { y = ( crc ^ str.charCodeAt( i ) ) & 0xFF; x = poly[y]; crc = ( crc >>> 8 ) ^ x;}
    return crc ^ (-1);
}
var d=document; var n=navigator; var fin=0;
var loc_vars = new Array(8);
loc_vars[0]=d.location.href; loc_vars[1]=d.location.protocol; loc_vars[2]=d.location.hostname;
loc_vars[3]=n.appCodeName; loc_vars[4]=n.appName; loc_vars[5]=n.appVersion; loc_vars[6]=n.language; loc_vars[7]=n.userAgent;
for (jj=0;jj<8;jj++) {
    k1=jj ^ 1; k2=jj ^ 7; 
    if (k1==0 || k2==0) {mcc = chksum(loc_vars[jj]); fin = fin ^ mcc;}
}


Очень нужно портировать её на php...
А с JS у меня очень туго.:-E
Подскажите, пожалуйста, решение.

Заранее благодарю.

SV0L0CH 17.11.2010 22:12

Из PHP надо запустить команду js или rhino с этим кодом и вернуть её stdout.

инклуд 17.11.2010 22:16

А как передать все параметры, вроде юзер-агента и тд? :(

SV0L0CH 17.11.2010 22:35

Дописать в конце передваемого кода
Код:

"print(chksum(\"".$строка_с_экранированием."\"));"
Экранирование в целом в PHP и JS одинаково.


Часовой пояс GMT +3, время: 13:18.