ホームページ  >  記事  >  CMS チュートリアル  >  dedecms が API インターフェイスを記述する方法

dedecms が API インターフェイスを記述する方法

尚
オリジナル
2019-07-31 10:55:535753ブラウズ

dedecms が API インターフェイスを記述する方法

json データ形式は、異なるサイト間でのデータの呼び出しと参照を容易にします。もちろん、DEDECMS は、他のサイトが呼び出すためのサイト全体のデータの JSON を生成することもできます。コードは非常にシンプルです。主に include/json.class.php を使用します。

Dreamweaver 自体には独自の json タグがあります。呼び出しメソッド:

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


このタグ呼び出しの例は、Dreamweaver マニュアルで提供されています。URL は次のとおりです。リモート JSON インターフェイス アドレス。このインターフェイス ファイルの json.php コードでは、最終的な戻り値は json_encode($feeds) システム関数を通じてデータを渡す必要があります。JSON エンコード後、echo または print() を通じて出力します。この 2 点が必要で、フォアグラウンドの $.ajax() または $.getjson() を通じてデータを取得できます。 DreamWeaver システムは、include/json.class.php ファイルに json クラスを提供します。つまり、php ファイルの json エンコーディングを変換するとき、次の 2 つのメソッドがあります:

# 1. PHP システムが提供するシステム関数 json_encode() を直接使用します。シンプルで手間がかからないので、ぜひ使用することをお勧めします。PHP システムが提供するものなので、DreamWeaver が提供するものは使用できません。システム。
2. DreamWeaver システムが提供する encode() を使用します。使用する前に、まず json.class.php、つまり

require_once(DEDEINC.&#39;/json.class.php&#39;);
$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)
     )

のような 2 次元配列になります。 echo 後の表示内容は次のとおりです。


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


これは、encoding() または 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->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);
?>

ここのコードは GBK から UTF8 に変換されているため、DEDECMS の GBK バージョンと互換性があります

呼び出しメソッド:

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

必要な場所に呼び出しコードを配置するだけです

cache=300 キャッシュ時間、0 はキャッシュなしを意味します

##推奨: d

edecms 使用法チュートリアル

以上がdedecms が API インターフェイスを記述する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。