Как сохранить диагностический вывод PHP в строку

Буферизация вывода для локальной отладки без повреждения JSON-ответа.

2026-10-04 · ТОО «IOC» · 62 просмотров
Как сохранить диагностический вывод PHP в строку

Вывод var_dump() внутри API-обработчика может испортить JSON-ответ. Для локальной диагностики его можно перехватить буфером и сохранить отдельно.

Небольшая функция

function captureDebug(mixed $value): string
{
    ob_start();
    try {
        var_dump($value);
        return (string) ob_get_contents();
    } finally {
        ob_end_clean();
    }
}

$debug = captureDebug(['status' => 'queued', 'items' => 3]);

ob_start() создаёт буфер. В данном примере ob_get_contents() читает накопленный текст, а блок finally закрывает буфер даже при исключении. Если сложная обработка не нужна, ob_get_clean() объединяет чтение и очистку.

Что писать в журнал

Сохраняйте только данные, необходимые для поиска ошибки: тип события, идентификатор операции и безопасные параметры. Пароли, ключи API, cookie и платёжные реквизиты следует исключать до записи. На рабочем сайте посетитель должен получать понятное сообщение, а подробности ошибки — оставаться в закрытом журнале.

Источники

Snipp.ru — var_dump в переменную, PHP — ob_get_clean.

Обсуждение 0

Оставьте первый комментарий.

Войдите, чтобы присоединиться к обсуждению.