Maison  >  Article  >  Tutoriel CMS  >  Comment dedecms écrit l'interface API

Comment dedecms écrit l'interface API

尚
original
2019-07-31 10:55:535830parcourir

Comment dedecms écrit l'interface API

Le format de données JSON peut faciliter l'appel et la référence des données entre différents sites. Bien sûr, notre DEDECMS peut également générer du JSON pour l'ensemble des données du site pour que d'autres sites puissent l'appeler. simple et principalement utilisé include/json.class.php.

Dreamweaver lui-même possède sa propre balise json, la méthode d'appel :

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


Cet exemple d'appel de balise nous a été fourni dans le manuel de Dreamweaver, l'URL est une adresse d'interface json distante. Dans le code json.php de ce fichier d'interface, le retour final doit être de transmettre les données via la fonction système json_encode($feeds) Après l'encodage json, imprimez-les via echo ou print(). fonction.Ces deux points sont nécessaires. Ensuite, nous pouvons obtenir les données via $.ajax() ou $.getjson() au premier plan. Le système Dreamweaver nous fournit une classe json dans le fichier include/json.class.php C'est-à-dire que lorsque nous convertissons l'encodage json du fichier php, nous avons deux méthodes :

. 1. Utilisez directement la fonction système json_encode() fournie par le système PHP. J'encourage tout le monde à l'utiliser, qui est simple et sans problème. Puisque le système PHP nous la fournit, nous ne pouvons pas utiliser celle fournie par. le système DreamWeaver.

2. Utilisez le encode() fourni par le système DreamWeaver Avant de l'utiliser, introduisez d'abord json.class.php, c'est-à-dire :

require_once(DEDEINC.&#39;/json.class.php&#39;);
$json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS);
echo $json->encode($reval);


La variable $reval est ce que nous obtenons de la base de données ou d'autres endroits. Il s'agit généralement d'un tableau bidimensionnel, par exemple :

  Array (
  [0] => Array ( [id] => 95 [title] => 原图设计)
  [1] => Array ( [id] => 113 [title] => ssssssssssss)
  [2] => Array ( [id] => 111 [title] => hjhj )
  [3] => Array ( [id] => 110 [title] => ssssssssssss)
     )

Après écho, le contenu affiché est le suivant.

  [
   {"id":"95","title":"\u539f\u521b"},
   {"id":"113","title":"ssssssssssss"},
   {"id":"111","title":"hjhj"},
   {"id":"110","title":"ssssssssssss"}
  ]



Il s'agit du contenu affiché après encoding() ou en utilisant json_encode(). Autrement dit, plusieurs données json entre crochets sont renvoyées au $.ajax() ou $.getjson() demandé, qui traite les données et affiche les résultats souhaités.

Maintenant que vous connaissez le principe, l'étape suivante est la méthode détaillée d'implémentation, comme suit :

Créez d'abord un nouveau fichier PHP et nommez-le json.php ( vous pouvez également créer un nouveau dossier et le nommer api, puis PHP est nommé index.php, donc lors de l'appel, il vous suffit de l'appeler comme http://votre nom de domaine/api), qui est utilisé comme appelé Interface API. Le code est le suivant :

<?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->Execute(&#39;me&#39;);
while ($row = $dsql->GetArray(&#39;me&#39;)) {
$row[&#39;title&#39;] = gb2utf8($row[&#39;title&#39;]);
$reval[] = $row;
}
$json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS);
echo $json->encode($reval);
?>

Le code ici a été converti de GBK en UTF8, il est donc compatible avec la version GBK de DEDECMS

Méthode d'appel :

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

Mettez simplement le code d'appel là où vous en avez besoin

cache=300 temps de cache, 0 signifie pas de mise en cache

Recommandé : dTutoriel d'utilisation d'edecms

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn