Loading...
PHP/MySQL | Как зделать API?
Практикуюсь с написанием api для двидка https://3020.ru/file/89229-livebook/

Вопрос: как правильно создать json файл на php что бы на другом сайте выводило информацию (имя, фамилию, почту...).

Пробовал писать по примерам ничего не получилось
для начало пойдёт https://itnan.ru/post.php?c=1&p=446348

простой пример вывода упаковки
php
<?php
header('Content-Type: application/json');
$info = array('username' => 'Admin', 'lvl' => 100, 'status' => array('reg' => "19.03.2022", 'online' => 1, 'last_date' => '20.03.2022', 'last_time' => '19:02'));
$info2 = ['username' => 'Noob', 'lvl' => 1, 'status' => ['reg' => "22.03.2022", 'online' => 1, 'last_date' => '20.03.2022', 'last_time' => '19:02']];
$json = json_encode($info);
$json2 = json_encode($info2, true);
exit ("{$json}n{$json2}");
?>

________
посл. ред. 06.06.2022 в 11:04; всего 4 раз(а); by Mr[G]Pro
Mr[G]Pro (05.06.2022 в 14:41)
для начало пойдёт https://itnan.ru/post.php?c=1&p=446348

простой пример вывода упаковки
php
<?php
header('Content-Type: application/json');
$info = array('username' => 'Admin', 'lvl' => 100, 'status' => array('reg' => "19.03.2022", 'online' => 1, 'last_date' => '20.03.2022', 'last_time' => '19:02'));
$info2 = ['username' => 'Noob', 'lvl' => 1, 'status' => ['reg' => "22.03.2022", 'online' => 1, 'last_date' => '20.03.2022', 'last_time' => '19:02']];
$json = json_encode($info);
$json2 = json_encode($info2);
exit ("{$json}n{$json2}");
?>

Спасибо. Но есть проблема, значения с бд выводит, но не читает на другом сайте🤔
Romanko, ты скопировал просто код?
Выводи только один json_encode

А на другом сайте, для декодировки используй $jdata = json_decode($string, true);
В $string - твоя полученная строка с сервера
А true, чтобы для массива мол [], подробнее читай в документации

А для откладки var_dump($jdata);
вон у нектоса спроси
Romanko (05.06.2022 в 14:21)
Практикуюсь с написанием api для двидка https://3020.ru/file/89229-livebook/

Вопрос: как правильно создать json файл на php что бы на другом сайте выводило информацию (имя, фамилию, почту...).

Пробовал писать по примерам ничего не получилось
как найдёшь решение дай знать тоже интересно только мне под альфацмс суть та же
[Brony] pimnik98 (05.06.2022 в 20:34)
Romanko, ты скопировал просто код?
Выводи только один json_encode

А на другом сайте, для декодировки используй $jdata = json_decode($string, true);
В $string - твоя полученная строка с сервера
А true, чтобы для массива мол [], подробнее читай в документации

А для откладки var_dump($jdata);



php
<?php

require_once '../../incfiles/core.php';
require_once '../../incfiles/func.php';
require_once '../../incfiles/auth.php';
require_once '../../incfiles/user.php';

header('Content-Type: application/json');

// Шлях до JSON файлу
$json = file_get_contents('data.json');

// JSON в масив
$data = json_decode($json, true);

// Заміна значень в масиві
$data['data']['name'] = $user['name'];
$data['data']['surname'] = $user['surname'];
$data['data']['email'] = $user['mail'];
$data['data']['avatar'] = 'https://site.ua/files/avatars/'.$user['id'].'/'.$user['avatar'];

// Масив в JSON
$jsonData = json_encode($data);

// Вивід JSON
print_r($jsonData);

?>


data.json:
json
{
"success":true,
"data":{
"name":"",
"surname":"",
"email":"",
"avatar":""
}
}
Romanko,
Доп инфа.
php
// В данном случае для юникода (русских букв) а также отключение экранирования ""
json_encode($jsonin, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES)
// Представляем как массив а не объект
json_decode($json, true)

________
посл. ред. 06.06.2022 в 11:03; всего 2 раз(а); by Mr[G]Pro
Romanko, просто и легко .
Обьяви заголовок json.
Обьяви массив .
Выдели данные с бд и собери их в массив , упакуй в json .
Выведи результат
Romanko, пример
php
header('Content-Type: application/json');
$sql = $db->query("SELECT * FROM `user");

$rows = array();
while($r = mysqli_fetch_assoc($sql)) {
$rows[] = $r;
}

$json = json_encode($rows);

echo $json;

Если несколько значений то
php
$rows[] = ['id' => $r['id']];
или нужно по ключам разбить массив
________
посл. ред. 06.06.2022 в 12:02; всего 3 раз(а); by Mr-Max
Онлайн: 5
Время:
Gen. 0.1492
(c) Bym.Guru 2010-2025