Задать вопрос
  • Хитрая SQL группировка, как сделать?

    @Apxu Автор вопроса
    Антон Неверов, группировка по максимальному количеству людей в сущности. Т.е. как такогого параметра для группировки нет, т.е. нужно группировать по максимальному количеству элементов, конкретно в данном примере это количество - 2
  • Можно ли увидеть все шеринги с facebook, которые сделаны с моего приложения?

    @Apxu Автор вопроса
    Так а где их посмотреть, мне нужен что-то типа архива людей которые давали доступ?
  • Как в gtmetrix исправить Add Expires headers?

    @Apxu Автор вопроса
    Спасибо, за ответ. Пробовал, не дало результата
  • Как найти всевозможные сочетания из n по k?

    @Apxu Автор вопроса
    Благодарю! то что нужно!
  • Как сделать на поддомене ветку develop основной?

    @Apxu Автор вопроса
    Все проверил - все работает как и хотел. Еще раз спасибо)
  • Как сделать на поддомене ветку develop основной?

    @Apxu Автор вопроса
    Т.е. я создаю репозиторий, дальше создаю 2 ветки, мастер и девелоп. И для домена как-то закачиваю только ветку мастер, а для поддомена девелоп?
  • Почему при одной и той же операции - разный результат?

    @Apxu Автор вопроса
    спасибо, действительно так и есть
  • Как получить такой двоичный код?

    @Apxu Автор вопроса
    Saboteur: спасибо! ManWithBear тоже указал в эту сторону, буду пробовать.
  • Как получить такой двоичный код?

    @Apxu Автор вопроса
    ManWithBear: Краем глаза посмотрел - возможно вы правы. Попробую в эту сторону копать. Спасибо
  • Как получить такой двоичный код?

    @Apxu Автор вопроса
    Извиняюсь, наверно неправильно выразился. Никита правильно сказал - правые. Я написал предысторию, где описал, что если 7й(8й по счёту) бит равен 1, то он обрезается.

    Немного поясню свои слова, воможно и тут неправильно написал и запутал... 7й бит - 8й по счету,
    по индеку - 0й, 1й...7й
    по счету - 1й, 2й...8й

    рабочий пример
    10010001 = 0010001
    самый левый = 1, обрезается и идет дальше
    11000111 = 1000111
    самый левый = 1, обрезается и идет дальше
    00000010 = 00000010
    самый левый = 0, не обрезается, формирование заканчивается = 0000001010001110010001 в десятичной 41873

    Но разработчики выпустили новый комплект карт и начали появляться вот такое значения
    11100011
    10000000
    тут уже идет ругой ID, что из примера выше
    10010001
    11000111
    00000010
    ....
    и когда скрипт встречает такое, он
    11100011 = 1100011
    самый левый = 1, обрезается и идет дальше
    10000000 = 0000000
    самый левый = 1, обрезается и идет дальше
    ....Хотя тут уже должно было закончиться формирование ID(т.к. дальше точно идет правильный id) и начаться процесс формирования следующего ID вместо этого он продолжает и затрагивает следующие карты 10010001 и тд, т.е. создает большое число из 2х ID, которое конечно же не является уже корректным

    10000000 - такое значение встречается несколько раз в одной колоде, возможно оно является каким-то флагом..
  • Как получить такой двоичный код?

    @Apxu Автор вопроса
    Есть карточная игра и её разработчики придумали недавно выпустили патч, в котором можно колоду сконвертировать в строку и например скинуть другу, друг копирует и в игре вставив этот код - получает готовую колоду, т.е. руками он не выбирает карты. В строке хранится информация про формат, какие карты туда входят и в каком количестве и еще немного ненужной инфы, так вот код примерно выглядит так AAECAf0GCpHHAuO+ArEI5MIClMcCMJG8AsQI68IC5QcKvLYC9wTUswKnCLSsAtkH4wXQBM4HwggA

    Мне нужно получить ID карт которые вшиты в этот строку.
    Вначале я эту строку перегоняю через base64_decode получаю строку из ASCII символов, дальше каждый символ в цикле перебираю и из символа получаю ASCII код(00000010 и тп), в зависимости от символа.

    И отсюда я уже взял часть массива.
    Дело в том что раньше код отлично работал, если например в массиве присутствовали слудеющие 3 байта:
    10010001
    11000111
    00000010
    методом проб и ошибок я выявил, что чтобы получить ID карты нужно удалить 7й бит(если он равен 1) и пристыковать следующий, если и у него 7й бит = 1 - удаляется 7й бит и пристыковывается следующий и так пока 7й бит не будет равен 0 - в итоге имеем 0000001010001110010001, если это дело перевести с двоичного в десятичное получается 41873, что как-раз и является ID одной из карт в колоде, и такая магия проделывается по очереди с каждым элементом массива. Все работало до того момента пока а колоду не вошли карты из одного нового комплекта. Отсюда и эти 2 значения
    11100011
    10000000
    Методом который я описал выше, скрипт просто видит 10000000 вырезает 7й бит и берет следующий элемент и дальше все идет коту под хвост.

    Метод хранения придумывали разработчики игры, не я. Мне это нужно понять, чтобы по данному коду можно было получить колоду из n количества карт.
  • Как мне получить нужное значение?

    @Apxu Автор вопроса
    Могу немного неправильно выражаться, т.к. совсем слабо разбираюсь в данной теме, если где-то термины попутаю, извиняйте. Не могу сказать точно значит он что-то или нет, могу лишь в общих чертах описать где это все используется и может вы поймете:
    декодируем строку
    base64_decode("AAECAR8GxwPJBLsFmQfZB/gIDI0B2AGoArUDhwSSBe0G6wfbCe0JgQr+DAA=");
    дальше в цикле перебираем эту строку и получаем байты
    $byte = sprintf("%08b", ord($c));

    в первых 6ти элементах числа от 0-6(00000000, 00000001 ...и тд),
    а вот дальше уже:
    11000111 - (199)
    00000011 - (3)
    ...

    тут нужно было сделать из 2х 8битных - одно 16ти битное число
    0000001111000111 - и прогнать через функцию bindec('0000001111000111') которая преобразует двоичное в десятичное - результат 967

    дальше оказалось что это не окончательное значение, а чтобы уже получить нужный ID это число нужно перегнать (967 >> 8) << 7 | (967 % 128)
    Это уже и будет тот ID который мне нужен. Теперь мне нужно все сделать в обратном направлении - собрать строку которую я декодил в начале. Как-то так :|
    Ваше решение отлично работает для моего случая, спасибо.
  • Как написать сложный SLQ запрос?

    @Apxu Автор вопроса
    Спасибо! Вроде то что нужно! По крайней мере с тестовыми данными все отлично! Благодарю
  • Как написать сложный SLQ запрос?

    @Apxu Автор вопроса
    SELECT DISTINCT id_desc FROM desc_card WHERE id_cart = 4


    Да, почти то что нужно, но к сожалению все равно не то...
    Нужен примерно такой запрос:
    SELECT DISTINCT card_deck.deck_id FROM card_deck WHERE card_deck.card_id = 2 AND card_deck.card_id = 3 AND card_deck.card_id = 4

    НО такой запрос возвращает 0 результатов, а хотелось бы что бы вернул deck_id 2
  • Как написать сложный SLQ запрос?

    @Apxu Автор вопроса
    Спасибо за ответ, но это не совсем то. Необходимо точное совпадение, а если я сейчас добавлю id-4 IN (2,3,4) то мне все равно вернет и deck 1 и deck 2, а должен вернуть уже только deck 2, потому что у 1го набора карты 4 нет.
  • Выполнение скрипта с большим количеством итераций?

    @Apxu Автор вопроса
    Все таки решил выполнять N интераций и перенаправлять на эту же страницу с параметрами(на какой записе остановился), потом вырезать отработанное количество элементов и опять выполнять N итераций...ну и так по кругу пока не дойду до конца массива.
  • Выполнение скрипта с большим количеством итераций?

    @Apxu Автор вопроса
    Доступа к php.ini нет. Наверно и конфиг следовательно глянуть не получится?