最新公告
  • 欢迎您访问爱上源码网,分享精品整站源码,网站模板,游戏源码,APP小程序源码以及视频教程免费下载;服务永无止境!立即加入我们
  • 织梦API接口全站数据生成JSON实现别站点调用

    json数据格式可以方便不同站点之间进行数据调用引用,当然我们的DEDECMS也可以实现全站数据生成JSON供其他站点调用,代码很简单,主要用到include/json.class.php

    织梦本身是自带json标签的,调用方法:

    {dede:json url='http://yoursite/json.php' cache=300}
    [field:id/]-[field:title/]<br/>
    {/dede:json}

     

    这个标签调用例子在织梦手册里已经给我们提供了,url是一个远程json接口地址,这个接口文件json.php代码里面,最后的返回必须是把数据通过json_encode($feeds)系统函数,进行json编码后,通过echo或print()函数来打印出来,这二点是必须的,然后,在前台我们就可以通过$.ajax()或$.getjson()来获取数据。织梦系统给我们提供了一个json类,在include/json.class.php文件里面,也就是说,我们在对php文件转换json编码,就有了二种方法:

    1.直接用php系统给我们提供的系统函数,json_encode(),我建立大家用这个,即简单又省事,既然,php系统给我们提供了,我们可以不用织梦系统提供的。

    2.就是用织梦系统提供的,encode(),在使用前,首先引入json.class.php,即:

    require_once(DEDEINC.'/json.class.php');
    $json = new Services_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)
       )

    经echo 以后,显示的内容如下所示

    [
     {"id":"95","title":"u539fu521b"},
     {"id":"113","title":"ssssssssssss"},
     {"id":"111","title":"hjhj"},
     {"id":"110","title":"ssssssssssss"}
    ]

     

    这是经过encode()或用json_encode()后,显示的内容。即,用中括号括起来的,几个json数据,这个数据回给请求的$.ajax()或$.getjson(),并由其对这个数据进行处理,显示我们相要的结果。

    知道了原理,接下来就是详细实现方法,如下:

    首先新建一个PHP文件,命名为json.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("SELECT id,title FROM `dede_archives` ORDER BY id DESC LIMIT 0,10");
    $dsql->Execute('me');while ($row = $dsql->GetArray('me')) {
    $row['title'] = gb2utf8($row['title']);
    $reval[] = $row;
    }
    $json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS);echo $json->encode($reval);?>

    这里代码有进行了GBK转UTF8的操作,所以兼容GBK版的DEDECMS

    调用方法:

    {dede:json url='http://域名/json.php' cache=300}
    [field:id/]-[field:title/]<br/>
    {/dede:json}

    把调用代码放到你你需要的地方就行

    cache=300 缓存时间,0为不缓存

    重要声明:
    1.本站视频教程,软件及网站源码版权均属于原作者所有,您必须在下载后的24个小时之内,从您的电脑中删除!非法商业用途,后果自负!
    2.本站不保证所提供下载资源的安全性和完整性,仅供下载学习之用!如链接失效或资源含外站广告,请联系客服处理!给予奖励!
    3.本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!本站提供有偿服务!如有侵权请联系在线客服!
    4.如您手中有优质资源或教程,可以自助投稿发布,成功分享后有奖励和额外收入!
    5.如您需要正版微擎模块可联系本站客服,我们有价值30w+商业微擎应用出售微擎坑位和招收代理!
    6.400电话/软著/ICP,EDI许可证/商标特价办理中!
    爱上源码下载网 » 织梦API接口全站数据生成JSON实现别站点调用

    常见问题FAQ

    从网站下载的源码都有安装教程么?不会安装怎么办?
    本站发布的网站源码和模板资源大部分在压缩包内都有教程,如您不会安装可以联系本站在线技术进行付费安装。
    爱上源码的所有源码都是亲测能正常运行的么?
    本站目前拥有资源10w+,包含整站源码,网站模板,游戏源码,小程序源码,视频教程,破解软件等,每天也在测试更新;因时间和精力有限我们无法对资源进行一一测试,只能保证所分享资源内容无误,希望理解。
    我手中的优质资源可以在你这换钱或者VIP么?
    爱上源码支持投稿,欢迎发布您手中的优质资源进行售卖;本站VIP支持免费获取,目前邀请10人注册爱上源码即可免费获取VIP。
    爱上源码除了资源分享还有其他业务没?
    【价值30W+微擎模块出售正版商业微擎坑位及招收代理,详情咨询本站客服!】我们团队目前运营并推广几套商业化saas智能小程序系统能满足大部分小程序开发需求,并由SaaS和独立部署版商城小程序系统;另外销售400电话,各种ICP/EDI资质证书办理,软著和商标注册服务等。

    发表评论

    • 27会员总数(位)
    • 35644资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 487稳定运行(天)

    提供最优质的资源集合

    开通VIP 源码下载