首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从mysql输出json指定的数据

从mysql输出json指定的数据
EN

Stack Overflow用户
提问于 2022-10-02 04:42:59
回答 1查看 92关注 0票数 3

我使用phppagebuilder编辑我的页面html内容,在mysql的pages表中,我在保存时生成了这个json代码:

代码语言:javascript
复制
{"html":["[block slug=\"contact\" id=\"IDL8P4JHM1GYPVX0\"]"],"components":[[{"tagName":"phpb-block","content":"","attributes":{"slug":"contact","id":"IDL8P4JHM1GYPVX0"}}]],"css":"* { box-sizing: border-box; } body {margin: 0;}","style":[],"blocks":{"en":{"IDL8P4JHM1GYPVX0":{"settings":{"attributes":{"style-identifier":"IDL8P4QRULUOPXC0"}},"blocks":[],**"html":** <- all page html is here

我需要提取最后一个" html ":数据后面的“块”:[]检索我所有的html代码,以输出在我的php主页。

php主页输出:

代码语言:javascript
复制
$s = mysqli_query($db,"SELECT `data` FROM `pages` WHERE `id` = 1");
$row = mysqli_fetch_array($s);
echo $row['data'];

但我知道所有的json密码..。我只需要建设者给我的html代码。

资料来源:https://github.com/HansSchouten/PHPagebuilder

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-02 10:34:56

你有两种方法来解决这个问题。首先,您可以获取所有数据并使用PHP解析它:

代码语言:javascript
复制
$s = mysqli_query($mysqli,"SELECT `data` FROM `pages` WHERE `id` = 1");
$row = mysqli_fetch_array($s);

$data = json_decode($row[0], true);

preg_match('/id="([^"]+)"/', $data['html'][0], $m);

$id = $m[1];

echo $data['blocks']['en'][$id]['html'] . PHP_EOL ;

第二种方法是通过MySQL解析JSON:

代码语言:javascript
复制
$s = mysqli_query($mysqli,"SELECT `data`->\"$.blocks.en.*.html\" FROM `pages` WHERE `id` = 1");
$row = mysqli_fetch_array($s);

var_dump($row[0]); 

php代码在线

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73923424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档