本文介绍了DEDECMSJSON数据生成的关键细节。边肖感觉挺好的,现在分享给大家,也是给大家一个参考。回来和边肖一起看看。
Json数据文件格式可以用来方便地引入不同站点之间的数据调用。自然,DEDECMS也可以完成全站点数据生成JSON,供其他站点调用。编码非常简单,关键是使用include/json.class.php
Dreamweavercms本身内置了jsonlogo,调用如下:
{dede:jsonurl='http://yoursite/json.php'cache=300} [field:id/]-[field:title/]<br/> {/dede:json}我们已经在Dreamweavercms的指南中展示了这个徽标调用示例。url是远程控制json套接字的详细地址。在这个socket文档的json.php代码中,最后返回的一定是根据json_encode($feeds)系统软件进行json编号,然后根据echo或者print()函数复制数据。这是必不可少的。然后,您可以在前台按照$接收数据。ajax(Dreamweavercms系统软件让我们在include/json.class.php文件中显示一个json类。也就是说,当我们转换php文件的json号时,我们有两种方法:
1.马上用php系统软件给我们展示系统软件涵洞,json_encode()。我给大家创造了这个,简单方便。事实上,php系统软件让我们展示,没有Dreamweavercms系统软件也可以展示。
2.它是由cms系统软件WeavingDreams,encode()提出的,该软件在应用前首先被引入json.class.php,即:
require_once(DEDEINC.'/json.class.php'); $json=newServices_JSON(SERVICES_JSON_SUPPRESS_ERRORS); echo$json->encode($reval);自变量$reval从数据库或其他区域获取,一般为二维数组,如下:
Array( [0]=>Array([id]=>95[title]=>原照设计方案) [1]=>Array([id]=>113[title]=>ssssssssssss) [2]=>Array([id]=>111[title]=>hjhj) [3]=>Array([id]=>110[title]=>ssssssssssss) )回显后,显示信息的内容如下所示。
[ {"id":"95","title":"\u539f\u521b"}, {"id":"113","title":"ssssssssssss"}, {"id":"111","title":"hjhj"}, {"id":"110","title":"ssssssssssss"} ]就是encoding()或者json_encode()之后显示信息的内容。也就是有很多json数据被括在括号里。该数据被返回到所需的$。ajax()或$。getjson(),它将求解这些数据并显示所需的结果。
知道了基本原理,下一步就是详细完成了,如下:
首先,创建一个名为json.php的新PHP文档(你也可以创建一个名为api的新文件夹,然后PHP命名为index.php。那样的话,你只需要调用像http://你的网站域名/api)这样的方法,用它作为要调用的api套接字。代码如下:
<?php $cfg_NotPrintHead=false; header("Content-Type:text/html;charset=utf-8"); include_once(dirname(__FILE__)."/../include/common.inc.php"); error_reporting(E_ALL||~E_NOTICE); require_once(DEDEINC.'/json.class.php'); $reval=array(); $dsql->SetQuery("SELECTid,titleFROM`dede_archives`ORDERBYidDESCLIMIT0,10"); $dsql->Execute('me'); while($row=$dsql->GetArray('me')){ $row['title']=gb2utf8($row['title']); $reval[]=$row; } $json=newServices_JSON(SERVICES_JSON_SUPPRESS_ERRORS); echo$json->encode($reval); ?>在编码中有将GBK转换为UTF8的实际 *** 作,所以兼容GBK版本的DEDECMS。
呼叫方法:
{dede:jsonurl='http://网站域名/json.php'cache=300} [field:id/]-[field:title/]<br/> {/dede:json}把呼叫代码放在你需要的地方就行了。
Cache=300缓存文件时间,0表示没有缓存文件。
文章里的内容就这些了。期待对大家的学习和培训有所帮助,也期待大家的应用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)