Работа с API Zabbix из PHP

Поискал, поискал, ничего толкового не нашел. Пришлось написать самому. Выложил на GitHub. Описание актуального API Zabbix тут.

Пример использования:

Простейшая http авторизация на PHP

Иногда проще бывает встроить «базовую» авторизацию (так называемая http авторизация) в скрипт, чем «пилить» что-то специальное под авторизацию. К счастью протокол HTTP позволяет это сделать — а именно перед открытием страницы можно спросить у пользователя…ну например банальное логин-пароль. Например так:

PHPMyAdmin: Warning in ./libraries/sql.lib.php#613 count(): Parameter must be an array or an object that implements Countable

После обновления Ubuntu вдруг стала выходить такая ошибка в PHPNyAdmin в варнингах. Все не доходили руки посмотреть, да вот дошли. Это ошибка в файле /usr/share/phpmyadmin/libraries/sql.lib.php. Нужно найти сточку:

И исправить её на:

Не правильно скобочки поставили разработчики  😉

Перенос скриптов с PHP 5.х на PHP 7.x

Чаще всего, основная проблема при переносе заключается в отсутствии в PHP 7.x модуля mysql, вместо него предлагается использовать mysqli. Однако если код достаточно обьемный, то перелопатить его чтобы адаптировать к новой версии PHP достаточно сложно и не всегда возможно. Однако есть выход: можно «эмулировать» устаревший код. Например эмуляция модуля mysql возможна следующим скриптом (достаточно его в код в виде include_once ‘mysql.php’) :

Как сделать простейшее API для своего проекта?

Бывает, что какой-то проект «вырастает из штанишек» и становится необходимым разработать сервис который будет отдавать часть своих данных, по запросу на сторонние сервера. Вот и меня возникла такая необходимость .Вот каркас, с чего начать.

В моем случае сервер защищен от «чужих» протоколом SSL и сертификатом .p12 с паролем. Соответственно для получения данных по API на сторонних ресурсах необходимы будут pem и key файлы от выданного пользователю сертификата.

Для некоторых может быть удобным получение «сессионного ключа» для авторизации и допуска к API.  В принципе доработать не сложно кому нужно. Приведенные ниже примеры — не рабочие, не хватает части файлов, размещено просто для того чтобы можно было понять принцип разработки.

На сервере в корне создадим файл api.php:

Как мы видим — суть его, поймать на входе команду, и выполнить файл из папки /api/, совпадающий с именем команды. Так мы избавляемся от головной боли с раширением количества команд API.

В папке /api/  создадим первую команду нашего API — файл version:

Теперь пример использования данного API (для удобства обернуто в класс):

Результат выполнения:

1 11 12 13 14 15 26