Задать вопрос
  • Как выглядит каждый тип архитектуры на схеме?

    Adamos
    @Adamos
    Не, это звучит, как тот анекдот: "Да что с вами такое, пациент?" - "Не, со мной все нормально, просто слова интересные - эрекция! эякуляция!.."
    Вот что вам даст дальнейшее пережевывание этой поэмы в прозе на канцелярите, высосанной кем-то из пальца для углубления воды в методичке?

    Не лучше предметно почитать о конкретных приемах создания веб-приложений, причем применительно не ко всем приложениям, когда-либо написанным всеми расами Вселенной, а к вашей конкретной задаче?
    Ответ написан
    8 комментариев
  • /card​/list в WB API?

    Adamos
    @Adamos
    Мучаюсь и не могу понять в чем ошибка уже более недели

    Предлагаете теперь нам помучиться и поугадывать, в чем у вас ошибка?
    private function curl($url, $params = [])
        {
            $curl = curl_init();
            $headers = [
                'accept: application/json',
                'Authorization: ' . $this->tokenV2
            ];
            if(count($params)) {
                $headers[] = 'Content-Type: application/json';
                curl_setopt($curl, CURLOPT_POST, true );
                curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($params));    
            }
            curl_setopt($curl, CURLOPT_URL, $url);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_HEADER, true);
            curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
            curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
            curl_setopt($curl, CURLOPT_TIMEOUT, 300);
    
            $response = curl_exec($curl);
            $curlInfo = curl_getinfo($curl);
    
            $responseBodyRaw = substr($response, $curlInfo['header_size']);
            $responseBody = json_decode($responseBodyRaw, true);
            if(json_last_error() !== JSON_ERROR_NONE) {
                $responseBody = $responseBodyRaw;
            }
            unset($response, $responseBodyRaw);
            curl_close($curl);
    
            return $responseBody;
        }
    
        private function queryV25($url, $params)
        {
            return $this->curl($this->urlV2 . $url, $params);
        }
    
        public function getCards()
        {
            return $this->queryV25(
                'card/list',
                [
                    'id' => 1,
                    'jsonrpc' => '2.0',
                    'params' => [
                        'query' => [
                            'limit' => 1000,
                            'offset' => 0,
                            'total' => 0
                        ],
                        'supplierID' => $this->supplierId
                    ]
                ]
            );
        }

    Этот код - работает. Для вашей задачи нужно в запрос добавить фильтр.
    Ответ написан
    Комментировать
  • Почему не срабатывает регулярка?

    Adamos
    @Adamos
    Если ищешь что-то в кавычках, нужно использовать не \"(.*)\", а \"([^"]*)\"
    Ответ написан
    6 комментариев
  • Насколько медленнее будет веб-приложение на PHP, модули которого реализованы через API over HTTP по сравнению с "обычным" веб-приложением?

    Adamos
    @Adamos
    Имхо, вы так сами себе делаете мультипликацию трафика на ровном месте.
    У вас веб-сервер вместо одного запроса будет вынужден обрабатывать десять, пусть и на локалхосте. Умножив это дело на количество посетителей, можно получить весьма конкретное бутылочное горлышко.

    А главное, подозреваю - вы забыли ответить на вопрос "зачем". Подробно, с обоснованием и критикой этого обоснования.
    Ответ написан
    2 комментария
  • Как создать страницу для скачивания файла по ajax запросу?

    Adamos
    @Adamos
    Аякс используется не для скачивания, а для прозрачного обмена информацией.
    Для получения файла по ссылке достаточно одной этой ссылки.
    Если действительно необходим именно аякс-запрос, можно извратиться, получив результат, перекодировав его в base64 и сформировав в текущем документе ссылку с href="data:..., и download="{имя файла}".
    Ответ написан
    Комментировать
  • Как создать локальную базу данных?

    Adamos
    @Adamos
    файл с расширение .db

    Это, скорее всего, база SQLite.
    Ответ написан
    Комментировать
  • Какой есть инструмент для генерация pdf из html на стороне сервера?

    Adamos
    @Adamos
    верстка, которая сделанная по макету едет

    Вот и разбирайтесь с этой версткой.
    DomPDF и mPDF - качественные инструменты, но без волшебства. Навороты, которые позволяют современные браузеры, плохо рендерятся без современных браузеров и сплошь и рядом криво рендерятся в них же без привычного окружения.

    У mPDF есть возможность задать исходником уже готовый PDF и добавить в него ваши элементы. Если их немного (как пример - диплом участника, в который вписываются только его данные и дата-название мероприятия) - с версткой возиться не требуется вообще.

    Если же вам нужна какая-то сложная и точно позиционированная графика - вам придется выкинуть из этой схемы HTML и рисовать исходник для PDF в нормальном графическом формате - SVG или EPS, Но для материалов с большим количеством текста они, конечно, не подходят, это вам придется изобретать собственную издательскую систему...
    Ответ написан
  • Куда выложить решение проблемы Linux?

    Adamos
    @Adamos
    https://www.opennet.ru/tips/ - тут люди как раз делятся своими велосипедами и оперативно огребают по ним критику.
    Ответ написан
    Комментировать
  • Как установить Ubuntu server на ноутбук с неработающим экраном?

    Adamos
    @Adamos
    Самое простое - сделать установку на другой машине, это не винды, при перебрасывании "синькой" не пойдет.
    Более профессиональный вариант - подготовить установочный preseed-образ, который не потребует от оператора никаких действий во время установки.
    Ответ написан
    Комментировать
  • Что делать с ошибкой php curl(API почта россии) ssl?

    Adamos
    @Adamos
    Странный у вас какой-то запрос к API - с никакой кодировкой и пустыми заголовками.
    Если имеется в виду API Отправки, то вот рабочий код:
    const API_ADDRESS = 'https://otpravka-api.pochta.ru';
        private function __construct($appToken, $userKey)
        {
            $this->headers = [
                'Content-Type: application/json',
                'Accept: application/json;charset=UTF-8',
                'Authorization: AccessToken ' . $appToken,
                'X-User-Authorization: Basic ' . $userKey
            ];
        }
        private function rawRequest($dataInUtf8, $url, $method = self::METHOD_POST)
        {
            $headers = $this->headers;
            $ch = curl_init(self::API_ADDRESS . $url);
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
            if(count($dataInUtf8) > 0) {
                $dataString = json_encode($dataInUtf8);
                $headers[] = 'Content-Length: ' . strlen($dataString);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
            }
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
            return curl_exec($ch);
        }
    Ответ написан
    Комментировать
  • На каком железе лучше всего начать изучении C++ с нуля?

    Adamos
    @Adamos
    Для изучения С++ с нуля лучше всего подходит железо, категорически не удовлетворяющее минимальным требованиям современных игрушек. Чем хуже - тем лучше.
    Так что если была мечта, что под изучение С++ можно выпросить у родителей геймерский ультраноутбук - увы и ах, для учебы он, наоборот, противопоказан.
    Ответ написан
    23 комментария
  • В чем вообще соль задания nullable полей в БД, вместо пустых значений по умолчанию, есть ли в этом какой-то сакральный смысл?

    Adamos
    @Adamos
    NULL - это не пустое поле. Это "поле не заполнено".
    Используется в тех случаях, когда разница между этими состояниями - есть.
    Кроме того, у числовых полей или дат просто нет "пустого" варианта.
    0 и '1970-01-01 0:00:00' - это значения, которые вполне могут иметь смысл.
    Например, при подсчете средних значений или интервалов NULL позволяет исключить ненужные строки.

    Если вам без разницы, заполнил юзер свои поля или нет - значение по умолчанию подходит, использовать NULL просто незачем.
    Ответ написан
    Комментировать
  • Как отсканировать пачку документов и автоматически разделить их на файлы?

    Adamos
    @Adamos
    Я для разбивки PDF на страницы использую pdfjam, например.
    Но ваша задача довольно мутно сформулирована, тут трудно что-то подсказать.
    Есть ощущение, что вопрос "мне не нравится та программа сканирования, которая идет с МФУ, она плохая, подскажите хорошую". И нельзя исключить вариант, что вы просто не разобрались в ее настройках.
    Ответ написан
    Комментировать
  • Какая лучшая бесплатная альтернатива Clion?

    Adamos
    @Adamos
    IDE от JetBrains - это, конечно, прекрасные инструменты.
    Для PHP я таки купил PhpStorm, потому что аналогов и близко нет.
    На Clion посмотрел - и как-то не нашел необходимости за него платить.
    Продолжаю пользоваться QtCreator, мне хватает.
    Ответ написан
    Комментировать
  • Как правильно записать данные в базу?

    Adamos
    @Adamos
    UPDATE ${DB_PREFIX}product SET oct_stickers = 
    IF(product_id = ${productId} AND option_id IN ('10101', '10063'), 'My text', '');
    Ответ написан
    5 комментариев
  • Как написать цикл, чтобы рамка подбирала размер под текст на языке С++?

    Adamos
    @Adamos
    ДЛИНА = 0
    ДЛЯ КАЖДОЙ строчки из введенных пользователем
      ЕСЛИ ее длина больше ДЛИНЫ - записать ее в ДЛИНУ
    
    ВЫВЕСТИ "угол"
    ЦИКЛ от 0 до ДЛИНА + 2  ВЫВЕСТИ "горизонтальную линию"
    ВЫВЕСТИ "угол" и перевод строки
    ДЛЯ КАЖДОЙ строки из введенных пользователем
      ВЫВЕСТИ "вертикальную линию", пробел, строку
      ЦИКЛ от 0 до (ДЛИНА - длина этой строки + 1) ВЫВЕСТИ пробел
      ВЫВЕСТИ "вертикальную линию" и перевод строки

    Ну, и закрыть табличку аналогично началу.
    ЦИКЛы можно заменить генерацией строк нужной длины.
    Ответ написан
    Комментировать
  • Как сохранить нули при переводе в шестнадцатиричную форму?

    Adamos
    @Adamos
    Какой-то жопорук писал инструкцию, конечно.
    Очевидно, что раз в одну строку валится все подряд, то длины частей этой строки должны быть регламентированы, иначе не поймешь, где закончилось одно и началось другое.
    Вам не нужно "сохранять нули". Вам нужно нарастить полученную НЕХ-строку нулями спереди до 12 символов, если она короче.

    P.S. Кстати, там дальше написано, что можно с этим шаманством вообще не возиться и просто передать данные отдельными полями.
    Ответ написан
    6 комментариев
  • Как преобразовать 19-значное число в короткую буквенную строку?

    Adamos
    @Adamos
    {Минимальная длина записи} = логарифм по основанию {размер словаря} от {диапазон чисел, которые нужно записать}, округленный до целого вверх.
    Так, например, если использовать для записи только 16 символов - получится длина максимального числа, переведенного в 16-ричную форму (например, это можно сделать вручную, программистским калькулятором).
    Если же использовать 256 символов - длина результата будет вдвое меньше.

    Но вы-то, поди, мечтаете о какой-то волшебной "упаковке" в разы. Напрасно.
    В общем виде эта задача доказуемо неразрешима. А для разбора частных - вы не дали никакой информации.
    Ответ написан
    Комментировать
  • Как из массива, получить все значения по очереди?

    Adamos
    @Adamos
    file_put_contents($yourFilename, implode("\n", $yourArray));
    Ответ написан
    Комментировать