php - 如何在括号和大括号 JSON PHP 文件中添加换行符?
问题描述
我有以下代码在 json php 中生成数据:
<?php
$stmt = $con->prepare("SELECT
id_news,
url,
cover_page,
alt_img,
mini_title,
mini_description,
date_post,
confg_img,
main_cover
FROM news ORDER BY id_news DESC LIMIT 5");
$stmt->execute();
$member = array();
$stmt->bind_result(
$member['id_news_sport'],
$member['url'],
$member['cover_page'],
$member['alt_img'],
$member['mini_title'],
$member['mini_description'],
$member['date_post'],
$member['confg_img'],
$member['main_cover']
);
header('Content-type: application/json; charset=utf-8');
echo '[';
$count = 0;
while ($stmt->fetch()) {
if( $count ) {
echo ',';
}
echo json_encode($member, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_FORCE_OBJECT);
++$count;
}
echo ']';
?>
获得以下结果:
[{
"id_news": 712,
"url": "es/deportes/futbol/ecuador/ligapro/serie-a/712/marcos-caicedo-recuerda-su-paso-en-los-equipos-del-astillero",
"cover_page": "https://i.imgur.com/kg7RBqK.jpg",
"alt_img": "Marcos Caicedo",
"mini_title": "Marcos Caicedo recuerda su paso en los equipos del astillero",
"mini_description": "El jugador de Liga de Quito no olvida su paso por Emelec y Barcelona",
"date_post": "2020-12-18 03:21:57",
"confg_img": null,
"main_cover": "relevant_news"
},{
"id_news": 708,
"url": "es/deportes/futbol/internacional/fichajes/708/el-fichaje-que-pretendia-ldu-para-la-defensa-podria-caerse",
"cover_page": "https://i.imgur.com/MmETkch.png",
"alt_img": "Jugadores de LDU celebrando un gol",
"mini_title": "EL fichaje que pretend\u00eda LDU para la defensa podr\u00eda caerse",
"mini_description": "LDU tiene un competidor por el fichaje del central",
"date_post": "2020-12-16 20:26:51",
"confg_img": null,
"main_cover": "relevant_news"
}]
但是我需要能够在括号和每个大括号的另一个换行符之间换行,如下所示:
[
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
},
{
"userId": 10,
"id": 99,
"title": "temporibus sit alias delectus eligendi possimus magni",
"body": "quo deleniti praesentium dicta non quod\naut est molestias\nmolestias et officia quis nihil\nitaque dolorem quia"
},
{
"userId": 10,
"id": 100,
"title": "at nam consequatur ea labore ea harum",
"body": "cupiditate quo est a modi nesciunt soluta\nipsa voluptas error itaque dicta in\nautem qui minus magnam et distinctio eum\naccusamus ratione error aut"
}
]
正如这个 json 数据输出所示,我应该在我的 PHP JSON 代码中使用哪些更改来获得相同的结果。
解决方案
我看不出你这样做的原因,但它可能是这样的,在括号后面和逗号后面添加\n
(一个新行)和(两个空格)
header('Content-type: application/json; charset=utf-8');
echo '['."\n "; // <<<< here
$count = 0;
while ($stmt->fetch()) {
if( $count ) {
echo ','."\n "; // <<<< and here
}
echo json_encode($member, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_FORCE_OBJECT);
++$count;
}
echo "\n".']'; // <<<< and here
the\n
和 the都
必须在双撇号内 " "
如果空间不起作用,请尝试\s
header('Content-type: application/json; charset=utf-8');
echo '['."\n\s\s"; // <<<< here
$count = 0;
while ($stmt->fetch()) {
if( $count ) {
echo ','."\n\s\s"; // <<<< and here
}
echo json_encode($member, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_FORCE_OBJECT);
++$count;
}
echo "\n".']'; // <<<< and here
推荐阅读
- php - laravel 5.5 中的全局变量
- r - LibraryExecutionError - 测试通过 Rstudio RRS 提要发布的 Web 服务
- reactjs - 如何使用反应正确编写条件类型?
- java - Java中无限并行流映射减少管道的时间限制
- flutter - Flutter:读写用户可见文件
- c - 如何为具有相同依赖项的多个可执行文件正确编写makefile - C
- android - Android Native to Flutter 在主通道中不起作用
- javascript - 在 Vue 中使用 PHP 脚本
- c++17 - 使用 std::index_sequence 使用许多模板参数配置的递归聚合类型
- javascript - 即使将 enableHeaderMenu 选项设置为 true,Angular-Slickgrid 标题菜单也不可见