decodeURIComponent (javascript) vs urldecode(php)

187
02 января 2019, 06:50

собственно пытаюсь повторить код Javascript в PHP

var jsalt = "Lh00pmHKWyA5j0oMx0cdoCRTth26XsU1KMJGY0DSmjQ";
var key ="%C2%84EvQ%3Bi%7BSSek%5BPiL%5C%C2%83l%7Eb%3Al";
String.prototype.str_split = function (e, t) {
var n = this;
e = e || 1, t = !!t;
var r = [];
if (t) {
    var o = n.length % e;
    o > 0 && (r.push(n.substring(0, o)), n = n.substring(o))
}
for (; n.length > e; )
    r.push(n.substring(0, e)), n = n.substring(e);
return r.push(n), r
}
function jsaltDecode(e) {
e = decodeURIComponent(e);//console.log(e);exit;
for (var s = jsalt.length, t = "", l = 0; l < e.length; l++) {
    var o = e.charCodeAt(l), n = l % s, a = jsalt.charCodeAt(n) % 21;
    t += String.fromCharCode(o - a);
}
return t.str_split(3, !0).reverse().join("")
}                                                      
console.log(jsaltDecode(key));

код PHP

$salt = "Lh00pmHKWyA5j0oMx0cdoCRTth26XsU1KMJGY0DSmjQ";
$key = "%C2%84EvQ%3Bi%7BSSek%5BPiL%5C%C2%83l%7Eb%3Al";
function custom_split($str,$limit){
if(is_numeric($limit) && $limit>0){
    $result = array();
    if(strlen($str)%$limit){
        $delta = strlen($str) - (floor(strlen($str)/$limit)*$limit);
        $result[] = substr($str,0,$delta);
        $str = substr($str,$delta);
    }
    for($start = 0; $start < strlen($str);$start+=$limit){
        $result[] = substr($str, $start, $limit);
    }
    if(sizeof($result)){return $result;}
}
return $str; 
}
function decode_key($key,$salt){
$key = urldecode($key);//echo $key;exit;
$salt_lenght = strlen($salt);$t="";
for($l=0;$l<strlen($key);$l++){
    $ascii_key_per_symbol = ord(substr($key, $l,1));
    $n = $l % $salt_lenght; 
    $ascii_salt_per_symbol = ord(substr($salt, $n,1)) % 21;
    $t .= chr($ascii_key_per_symbol-$ascii_salt_per_symbol);
}
return join("",array_reverse(custom_split($t,3)));
}
echo decode_key($key,$salt);

в итоге уже на стадии декодирования код не совпадает

Answer 1
function url_ecode($string){
    return utf8_decode(urldecode($string));
}
READ ALSO
Кто может помочь в Facebook Graph API с вебхуком? PHP

Кто может помочь в Facebook Graph API с вебхуком? PHP

Необходимо, чтобы при заполнении Лид формы фейсбука эти данные с формы отсылались на мой вебхуктам я обрабатываю это и закидываю в CRM

164
Загрузка аватарки

Загрузка аватарки

На сайте есть такая конструкция

236