Задать вопрос
  • Аналог PHP sha1 на JS?

    @m4a1fox
    Если вдруг кому то понадобиться

    var Crypto = {
            sha1_hmac: function (r, t) {
                function e(t) {
                    const e = [];
                    for (let r = 0; r < t.length; r++) {
                        var o = t.charCodeAt(r);
                        o < 128 ? e.push(o) : (o < 2048 ? e.push(192 | o >> 6) : (o < 65536 ? e.push(224 | o >> 12) : (e.push(240 | o >> 18), e.push(128 | o >> 12 & 63)), e.push(128 | o >> 6 & 63)), e.push(128 | 63 & o))
                    }
                    return e
                }
    
                function o(t) {
                    let e = "";
                    for (let r = 0; r < t.length; r++) e += String.fromCharCode(t[r]);
                    return e
                }
    
                let h = e(t);
                if (64 < h.length) {
                    const f = Crypto.sha1(o(h), !0);
                    h = [];
                    for (let r = 0; r < f.length; r++) h.push(f.charCodeAt(r))
                }
                const a = Array(64).fill(0);
                for (let r = 0; r < h.length; r++) a[r] = h[r];
                const n = Array(64).fill(54), s = Array(64).fill(92);
                for (let r = 0; r < 64; r++) n[r] ^= a[r], s[r] ^= a[r];
                r = e(r), r = o(n) + o(r), r = Crypto.sha1(r, !0), r = o(s) + r;
                return Crypto.sha1(r)
            }, sha1: function (r, t) {
                function e(r, t) {
                    return r << t | r >>> 32 - t
                }
    
                function o(r, t) {
                    for (var e, o = "", h = 7; 0 <= h; h--) e = r >>> 4 * h & 15, o += t ? String.fromCharCode(e) : e.toString(16);
                    return o
                }
    
                for (var h, a, n, s, f, c, u, p, C, l = Array(80), i = 1732584193, A = 4023233417, d = 2562383102, g = 271733878, m = 3285377520, y = r.length, b = [], v = 0; v < y - 3; v += 4) a = r.charCodeAt(v) << 24 | r.charCodeAt(v + 1) << 16 | r.charCodeAt(v + 2) << 8 | r.charCodeAt(v + 3), b.push(a);
                switch (y % 4) {
                    case 0:
                        v = 2147483648;
                        break;
                    case 1:
                        v = r.charCodeAt(y - 1) << 24 | 8388608;
                        break;
                    case 2:
                        v = r.charCodeAt(y - 2) << 24 | r.charCodeAt(y - 1) << 16 | 32768;
                        break;
                    case 3:
                        v = r.charCodeAt(y - 3) << 24 | r.charCodeAt(y - 2) << 16 | r.charCodeAt(y - 1) << 8 | 128
                }
                for (b.push(v); b.length % 16 != 14;) b.push(0);
                for (b.push(y >>> 29), b.push(y << 3 & 4294967295), h = 0; h < b.length; h += 16) {
                    for (v = 0; v < 16; v++) l[v] = b[h + v];
                    for (v = 16; v <= 79; v++) l[v] = e(l[v - 3] ^ l[v - 8] ^ l[v - 14] ^ l[v - 16], 1);
                    for (v = 0, n = i, s = A, f = d, c = g, u = m; v <= 19; v++) temp = e(n, 5) + (s & f | ~s & c) + u + l[v] + 1518500249 & 4294967295, u = c, c = f, f = e(s, 30), s = n, n = temp;
                    for (v = 20; v <= 39; v++) temp = e(n, 5) + (s ^ f ^ c) + u + l[v] + 1859775393 & 4294967295, u = c, c = f, f = e(s, 30), s = n, n = temp;
                    for (v = 40; v <= 59; v++) temp = e(n, 5) + (s & f | s & c | f & c) + u + l[v] + 2400959708 & 4294967295, u = c, c = f, f = e(s, 30), s = n, n = temp;
                    for (v = 60; v <= 79; v++) temp = e(n, 5) + (s ^ f ^ c) + u + l[v] + 3395469782 & 4294967295, u = c, c = f, f = e(s, 30), s = n, n = temp;
                    i = i + n & 4294967295, A = A + s & 4294967295, d = d + f & 4294967295, g = g + c & 4294967295, m = m + u & 4294967295
                }
                if (p = (o(i) + o(A) + o(d) + o(g) + o(m)).toLowerCase(), !t) return p;
                for (C = ""; p.length;) C += String.fromCharCode(parseInt(p.substr(0, 2), 16)), p = p.substr(2);
                return C
            }
        };
    Написано
  • If else. Особенность &&?

    @m4a1fox Автор вопроса
    так я бы тернарчиком бы ее... Сообщение об ошибке было бы классно показывать.... Хотя тут вы правы. Не подумал - тогда в else просто было бы больше if'ов ).
  • If else. Особенность &&?

    @m4a1fox Автор вопроса
    Тогда вопрос снимается.
  • If else. Особенность &&?

    @m4a1fox Автор вопроса
    Не вариант,
  • If else. Особенность &&?

    @m4a1fox Автор вопроса
    Да про каждое понятно... :( Стало интересно это вообще возможно. Но было бы удобнее... Хотя бы цифру по порядку выкидывало в общий скоуп - это уже было бы здорово.
  • Поиск по многомерному массиву?

    @m4a1fox
    Искренне! Не понял вашего ответа )
  • Поиск по многомерному массиву?

    @m4a1fox
    А так?
    <?php
    $arr = array(
    0 => array('id' => 1, 'category' => 0),
    1 => array('id' => 2, 'category' => 2),
    2 => array('id' => 3, 'category' => 0)
    );

    var_dump(array_filter($arr, function ($item) { return $item['category'] === 0; }));
  • Google Map. Как прорисовать дорогу по маркерам?

    @m4a1fox Автор вопроса
    День добрый. Эти точки - маршрут по которому двигается авто. К сожалению я не могу вырезать из массива точки - так как гугл может построить дорогу совсем не так как двигается машина (что собственно и происходит сейчас). Именно вопрос уже на интерестность, так как я прорисовываю дорогу на данный момент через PolyLine. Это хоть какой то выход.
  • Google Map. Как прорисовать дорогу по маркерам?

    @m4a1fox Автор вопроса
    Дорогу. К сожалению. По координатам линию соединить получилось... Сейчас так и работает, хоть какой-то выход (в плане - рисует правильно).
  • Как сделать вогнутые углы у блока на CSS?

    @m4a1fox Автор вопроса
    Да, вы правы. Сразу не обратил внимания... Как же быть?
  • Как сделать вогнутые углы у блока на CSS?

    @m4a1fox Автор вопроса
    Черт подери. Спасибо. Кажется то что нужно. Скажите, вы это делали полностью сами? Или есть какая нибудь программа. Тем не менне - мое почтение. Спасибо.