dedecms如何写API接口

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-&gt;encode($reval);
登录后复制


$reval这个变量是我们数据库或其它地方得到的,一般是一个二维数组,例如下:

  Array (
  [0] =&gt; Array ( [id] =&gt; 95 [title] =&gt; 原图设计)
  [1] =&gt; Array ( [id] =&gt; 113 [title] =&gt; ssssssssssss)
  [2] =&gt; Array ( [id] =&gt; 111 [title] =&gt; hjhj )
  [3] =&gt; Array ( [id] =&gt; 110 [title] =&gt; 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.&#39;/json.class.php&#39;);
$reval = array();
$dsql->SETQUEry("SELECT id,title FROM `dede_archives` ORDER BY id DESC LIMIT 0,10");
$dsql-&gt;Execute('me');
while ($row = $dsql-&gt;GetArray('me')) {
$row['title'] = gb2utf8($row['title']);
$reval[] = $row;
}
$json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS);
echo $json-&gt;encode($reval);
?&gt;
登录后复制

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

调用方法:

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

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

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

推荐:dedeCMS使用教程

以上就是DEDECMS如何写API接口的详细内容,更多请关注慧达AI工具网其它相关文章

转载请说明出处 内容投诉内容投诉
慧达seo-站长工具-seo工具-采集-发布-AI文章生成发布工具 » dedecms如何写API接口

慧达AI专注站群seo管理工具

查看演示 官网购买