我在JSON中有一个博客API,我正在尝试使用PHP。我有一个名为'index.php'的页面,其中列出了从JSON文件中提取的博客中的所有帖子,并将id从另一个页面'post.php'传递到该页面的href链接。
当用户点击所选帖子时,我需要'post.php'页面来保存由'index.php'发送的ID标识的单个帖子
我正在显示标题和其他财产,如下所示:
<h2><?php echo $post->title ?></h2>
但我需要做一些像
这样的事情<h2><?php echo $post->id->$post->title ?></h2>
确保仅显示具有给定ID的帖子 以下是JSON的摘录
{
"posts": [
{
"type": "post",
"date": "2017-04-11T13:36:46+00:00",
"title": "Title here",
"content": "my content"
"author": {
"id": 878,
"nicename": "tretr",
"display_name": "name here",
"user_url": "",
"posts_url": "https:\\/\\/blogs.kent.ac.uk\\/kbs-news-events\\/author\\/cmb58\\/",
"meta": {
"description": "",
"first_name": "first name",
"last_name": "last name",
}
},
"id": 1234,
"permalink": "https:\/\/ link.....",
"modified": "2017-04-11T13:39:36+00:00",
"excerpt": "more here",
"meta": [],
etc.......
}
],
"http_status": 200
}
答案 0 :(得分:0)
理想情况下,您使用的博客API应返回基于ID的记录,以便您拥有一个列表API和一个返回单个帖子的视图API。 如果没有,我建议你循环并将当前JSON结构的格式更改为:
for(i=0;i<array.length;i++)
注意添加了 nodeEnter.filter(function(d) { return d.data.elementType == "xs:element" }).call(xsElement);
function xsElement(selection) {
selection.append('rect')
.attr('class', 'node')
.attr('y', -16)
.attr('rx', 5)
.attr('ry', 5)
.attr('width', function(d) {
return d.data.y_size + 50;
})
.attr('height', function(d) {
return 32;
})
.style("fill", function(d) {
return d._children ? "lightsteelblue" : "lemonchiffon";
})
.filter(function(d) { return d.data.documentation != null })
.append("title").text(function(d) { return d.data.documentation; });
// Add labels for the nodes
selection.append('text')
.attr("dy", ".35em")
.attr("y", -6)
.attr("x", 6)
.attr("text-anchor", "start")
.text(function(d) { return d.data.name; });
.
.
.
}
键,将每个帖子数组更改为JavaScript对象。使用此功能,您现在可以通过{
"posts": {
"1234": {
"type": "post",
"date": "2017-04-11T13:36:46+00:00",
"title": "Title here",
"content": "my content",
"author": {
"id": 878,
"nicename": "tretr",
"display_name": "name here",
"user_url": "",
"posts_url": "https:\\/\\/blogs.kent.ac.uk\\/kbs-news-events\\/author\\/cmb58\\/",
"meta": {
"description": "",
"first_name": "first name",
"last_name": "last name"
}
},
"id": 1234,
"permalink": "https:// link.....",
"modified": "2017-04-11T13:39:36+00:00",
"excerpt": "more here",
"meta": []
}
},
"http_status": 200
}
编辑 根据您的评论,您可以使用api如下: $ data = json_decode(file_get_contents(&#39; http://api.kent.ac.uk/api/v1/blogs/music-matters/8192&#39;)); echo $ data-&gt; title;