Примеры работы с json массивами - PHP

Формирование и чтение JSON в PHP: пустой результат как массив, обработка ошибок, заголовок application/json, ограниченная выборка и безопасный HTML-вывод.

Формируем JSON-массив

Файл getdata.php использует подключение mysqli с utf8mb4. Пример предназначен для PHP 8.2+; он возвращает не более 10 ID истории заказов. В рабочем приложении закройте этот endpoint авторизацией и выдавайте только необходимые пользователю данные.

<?php
require __DIR__ . '/db.php';
header('Content-Type: application/json; charset=UTF-8');
$data = [];
$res = $mysqli->query(
    'SELECT order_history_id FROM oc_order_history ORDER BY order_history_id LIMIT 10'
);
while ($row = $res->fetch_assoc()) {
    $data[] = ['id' => (int)$row['order_history_id']];
}
$res->free();
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);

При отсутствии строк получится [], а не неинициализированная переменная. Не снимайте ограничение времени для короткой выборки.

Получаем JSON и выводим значения

Файл index.php:

<?php
$url = 'https://example.com/getdata.php'; // ваш фиксированный доверенный endpoint
$context = stream_context_create(['http' => ['timeout' => 5]]);
$json = file_get_contents($url, false, $context);
if ($json === false) throw new RuntimeException('Не удалось получить JSON');
$array = json_decode($json, true, 512, JSON_THROW_ON_ERROR);
if (!is_array($array)) throw new RuntimeException('Ожидался массив');
foreach ($array as $value) {
    if (!is_array($value) || !isset($value['id']) || !is_scalar($value['id'])) continue;
    echo 'id=' . htmlspecialchars((string)$value['id'], ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') . '<br>';
}

Не принимайте URL загрузки из запроса посетителя. JSON_THROW_ON_ERROR вызывает JsonException для некорректного JSON; перехватите исключение в общей обработке ошибок приложения. Для больших данных используйте пагинацию и ограничение размера ответа.

Проверенные источники

www.php.net, www.php.net, www.php.net. Проверено 10 октября 2026 года.

Все материалы раздела «Программирование»Каталог инструментов