Ответы пользователя по тегу PHP
  • Существуют ли CDN для PHP библиотек?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    $code = file_get_contents('https://cdnphp.com/blablabla.php');

    ладно, хостинг можно настроить, чтобы отдавал как текстовый файл, а не исполнял.
    на каждый хит к хосту будет
    а) днс запрос. Если на хостинг площадке нет своего , то использует публичный хостера.
    А тот при превышение определенного кол-ва начнет фризит запросы на 3-5 секунд
    б) https handshaking тут около 100мс
    в) сколько весит либа. считайте сами время за которое она каждый раз скачается
    г) опкоде кеш работать не будет. Накиньте время за которое прожуется
    д) либ собранных в один файл почти нет
    так, что в-д повторите несколько раз.

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

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Getting updates
    There are two mutually exclusive ways of receiving updates for your bot — the getUpdates method on one hand and Webhooks on the other. Incoming updates are stored on the server until the bot receives them either way, but they will not be kept longer than 24 hours.

    Regardless of which option you choose, you will receive JSON-serialized Update objects as a result.

    HTTPS хостинг на динамическом ip ? Так, что остается только вариант по крону получать пришедшие боту сообщения и отсылать ответы.
    В общем тут достаточно минусов, чтобы заплатить деньги за хостинг и не мучаться.

    Но если все же решите работать через
    https://tlgrm.ru/docs/bots/api#getupdates
    то обратите внимание на 3й параметр (таймаут).

    Можно скрестить запуск по крону и правильный расчет этого параметра.
    В результате будет отвечать моментально и завершать скрипт на 58-59 секунде.

    сперва указываете 58 секунд.
    например на 25 секунде пришел ответ.
    обработали . послали ответ . посмотрели сколько прошло времени от запуска скрипта
    запросили заново с таймаутом 58-прошло_секунд.
    если время подошло к концу, то завершили скрипт.
    Запуститься снова на следующую минуту по крону
    Ответ написан
  • Нужно ли размещать backend часть на сервере?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Для простоты считайте что у вас две переменных.
    Адрес_сервера и часть_урла
    Фактически это может быть проперти или метод класса.

    Например я пишу для получения информации о товаре в магазине .
    Если два или больше магазинов работают на одном движке, то апи их одинаковый
    Такое разделение позволяет написать код один раз а получать данные из разных
    подставляя имя нужного домена.

    А еще проще, в коде не должно быть захардкоженого имени домена.
    Сменился домен. поправил одну строчку в конфиге. все опять работает
    Ответ написан
  • Почему нет ответа от api Альфа-банка?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    во первых, форма здесь в демо целях.
    Во вторых тут типовая схема работы мерчанта с предварительной регистрацией оплаты.

    1. Делается запрос со стороны сервера к апи.
    2. Апи возвращает ссылку на которую нужно отправить пользователя.
    3. пользователь на сайте платежной системы ввел все данные и нажал оплатить
    4. К вашему сайту может идти запрос, готовы ли вы принять факт оплаты.
    5. На который отвечаете "Да. идите денежки ко мне"
    6. Мерчант запускает процедуру списания денежных средств.
    7. Приходит авизо - запрос к вашему сайту, что вам поступил платеж.
    7а Если не ответили утвердительно "Все верно о поступлении денег знаю", то апи с определенной переодичностью
    будет пытаться повторить авизо.
    8. Пользователя отправляют по ссылке обратно на ваш сайт.

    ну и сбоку тут еще может быть обратный переход при неудаче оплаты.
    Ответ написан
    Комментировать
  • Как правильно интегрировать api в паттерн MVC?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    - сколько будет 2+2 ?
    - а мы продаем или покупаем ?

    Я это к чему. Если сайт должен реализовать апи для внешней системы, то
    это практически обычный сайт, только response в виде json/xml и т.д.

    Если сайту нужны чужие данные , то модель.
    Лучше сделать внешней библиотекой (классом) и обертку посредник для модели фреймворка .
    Ответ написан
    Комментировать
  • Как определить что сервер именно локальный?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Частный случай, когда виндовс на локале и юникс на хостинге, то через предопределенную константу DIRECTORY_SEPARATOR

    ну и $_SERVER['HTTP_HOST'] - в локалке думаю будет другим чем на хостинге ;)
    это решение менее универсально так как завязывается на конкретное имя домена
    Ответ написан
  • Как при создании объекта класса методом load добавить значение его свойства без ___construct?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Можно модифицировать для цепочного синтаксиса метод
    /**
         * @param $val
         * @return $this
         */
        public    function setProp($val){
            $this->property = $val;
            return $this;
        }


    Или быть проще и в методе load использовать переменную
    $instance = new MyClass() ; // Попутно Класс с большой буквы чтобы отличать от объекта созданного из него
    $instance->setProp();
    return $instance;
    Ответ написан
    Комментировать
  • Как присоединить двух пользователей на сайте?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    у Вас пока нет понимания, что тут две разных вещи
    фронт и бакенд
    В обоих случаях php и node часть, которая работает на компьютере (телефоне) посетителя будет почти одинакова
    ждать ввода и слушать сокет .
    нужно отправить - передали на сервер.
    Через сокет пришло сообщение - добавили в дом html страницы

    так вот в броузере у нас используется html,css,js

    а про то что Вы спрашиваете - это серверная часть.

    А страничка, которую сперва показывается клиенту, может лежать хоть в виде статических файлов
    Ответ написан
    Комментировать
  • Как исправить ошибку curl "60: SSL certificate problem: self signed certificate in certificate chain"?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Надо настроить
    curl.cainfo=
    openssl.cafile=

    .PEM файл ссылка https://curl.haxx.se/docs/caextract.html

    не забыть перезапустить апач
    Ответ написан
    Комментировать
  • Неправильное понимание работы foreach из-за этого не могу понять как вывести данные из бд???

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    На ваш вопрос почти не возможно ответить НЕ токсично.

    Тут каждая строчка перл.

    Начнем с шаблона как более адекватной вещи
    в начале его видим секцию комментариев.
    $products - такая переменная должна прийти в шаблон

    а передаете
    echo $this->render('all_card', ['product' => $product]);

    сильно сомневаюсь что там должен быть app\models\Product . имхо забыли дописать квадратные скобки, что это массив сущностей.

    в контролере вообще что с чем-то

    цикл по не существующему массиву.
    внутри выбор всех записей из таблицы
    Ответ написан
    Комментировать
  • Какой программист может интегрировать сайты холдинга с платежными сервисами банков, для организации интернет-эквайринга?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Выясняете у холдинга на каком стеке сделаны их сайты.
    Например Php+MySQL или ASP или что конкретно.
    Среди специалистов этого стека ищите тех кто прикручивал яндекс кассу или робокасу . вообще любую платежную систему.

    Этот человек с банком экваером заключает соглашение о не разглашении.
    Получает документацию. Максимум за неделю сделает.

    Отличие от платежных систем. В одном шаге.
    Перед тем как рисовать клиенту нужно обратиться к апи банка и зарегистрировать
    желание оплаты. Нужные данные от апи использовать для следующего шага.
    А у платежных систем форму оплаты можно рисовать сразу.

    Ну и возможно к учетным системам холдинга сайт должен делать запросы по апи,
    чтобы узнать например задолжность по услугам перед тем как рисовать форму оплаты.
    Ответ написан
    3 комментария
  • Почему перестал работать file get contents?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    если курл работает, а файл гет контент нет.
    То моя ставка на то, что хостер наконец то накатил что типа сухосина.
    Ибо его задолбали автовзломы дырявых бесплатных движков
    Ответ написан
    Комментировать
  • Почему выпадающее меню пусто?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    посмотрите в исходный код страницы в броузере.
    У оптиона ключ название категории и литерал не закрыт. Видимая часть отсутвует.
    Читаем синтаксис html и исправляем свою строку. Правильное поле в ключ. Название в значение.

    ошибка в 6ой строке. там где ехо оптион. должны быть то что пойдет как значение валуе и название видимое. У вас только одно и с пропущенной кавычкой
    Ответ написан
    Комментировать
  • Интеркасса как взаимодействовать с базой данных?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    У меня одна идея. У таблицу user должен был быть индекс, который вы забыли создать. Уникальный индекс. Возможно он там был не явно обозначен как primary по автоинкрементному полю
    Ответ написан
  • Как выполнить 100к запросов к php скрипту? Как будет быстрее?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Вы спешите попасть в бан на сервере ? и потом искать ответ на вопрос где взять прокси ?
    Донор на битриксе ? тогда Вам задержки прикручивать придется.

    И вообще парсить - зло. В robots.txt Crawler delay сколько ? Чаще не надо. Свыше 50 потоков в 99% положат источник.
    Ответ написан
  • Как сделать постраничный вывод новостей из файла mysql с помощью php?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Файл у вас скорее всего дамп базы данных.
    Команды серверу MySql можно отдавать с командной строки.

    Но для баз небольшого размера проще работать через интерфейс phpmyadmin.
    Имя дамп базы нужно.
    1.Создать на сервере СУБД новую базу данных.
    Для локальной отладки создание отдельного пользователя для работы с ней не требуется.
    3.Развернуть из бекапа в созданную базу данных дамп.
    4.Посмотреть какие есть таблицы и поля в них. (Можно изучить сам дамп данных)

    5. Прочитать про работу с базой данных из PHP
    https://www.php.net/manual/en/refs.database.php
    Тут довольно холиварная тема что лучше.
    Мое имхо знакомство проще начинать с MySQl qli . А PDO немного сложнее для понимания, но более безопасно в плане sql инъекций и прочего. Про остальное достаточно знать, что оно есть.

    Разобрались как работает низкий уровень.
    соединение
    выбор базы данных
    выполнение запроса
    получение(фетчинг) результатов
    закрытие соединения

    Смотрите и выбираете обертку над этим себе по вкусу.
    Тут еще более холиварная тема, что лучше.
    Мое мнение использовать то, что заложили разработчики понравившегося Вам фреймворка.
    В конце концов Вы от чистого PHP перейдете на что-то из Laveral,Yii,Symphony и т.п.
    Ответ написан
    2 комментария
  • Как получить/передать информацию, что сетевое соединение half-closed?

    402d
    @402d Автор вопроса
    начинал с бейсика на УКНЦ в 1988
    Перебрав варианты shutdown как в PHP так и в андроиде я понял,
    что нужного результата (решения) не получиться.

    Для интернет сокета единственный способ определить, что он закрылся досрочно это неудача записи данных в него в обратном направлении.

    Таким образом для однонаправленных соединений :
    а) заранее известная длина
    б) сигнатура завершения потока
    в) FIN bit у последнего пакета ??? не смог найти способа его установить или прочитать через штатные абстракции
    над сетевым соединением.

    Так, что реализовал обратную отправку нескольких байтов в поток после чтения .
    И по эксепшену досрочное завершение.
    Штатное завершение осталось по таймайту. В течении 5 секунд ничего не получено.
    Ответ написан
    Комментировать
  • Как раскодировать строку ASCII?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    echo base64_decode("aHR0cHM6Ly9yb29tYmF6YS5ieS93cC1jb250ZW50L3VwbG9hZHMvbGlzdGluZy11cGxvYWRzL2F2YXRhcnMvMjAyMC8wNi9hYWExLTEwLmpwZw==");
    выведет
    https://roombaza.by/wp-content/uploads/listing-upl...
    Ответ написан
    Комментировать
  • Можно ли отправить данные из php на Node.JS на которой запущен webcocket server?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://ru.wikipedia.org/wiki/%D0%9E%D1%87%D0%B5%D...
    Выбираете брокера по вкусу

    Подбираете пары библиотек npm для node.js и packagist для PHP
    https://www.npmjs.com/package/rabid
    https://packagist.org/packages/php-amqplib/rabbitm...
    Ответ написан
    1 комментарий
  • SMTP PHP yandex.ru Пароль не был принят сервером как верный! Как исправить?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Легче гуглопочту уговорить принимать почту напрямую(достаточно поставить крыж, что не безопастные входы разрещены) , чем майлру с яндексом.

    Для них Вам придется еще SPF и DKIM настраивать.
    Ответ написан
    Комментировать