>  기사  >  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_encode($feeds) 시스템 함수를 통해 데이터를 전달해야 하며, json 인코딩 후 echo 또는 print() 함수를 통해 인쇄해야 합니다. 그런 다음 앞에 이 두 점이 필요합니다. 데스크에서는 $.ajax() 또는 $.getjson()을 전달하여 데이터를 가져올 수 있습니다. Dreamweaver 시스템은 include/json.class.php 파일에 json 클래스를 제공합니다. 즉, json 인코딩을 php 파일로 변환할 때 다음 두 가지 방법이 있습니다.

1 php를 직접 사용합니다. 시스템에서 제공하는 시스템 함수는 json_encode()입니다. PHP 시스템에서 제공하므로 Dream Weaver 시스템에서 제공하는 함수는 필요하지 않습니다. .

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 이 변수는 데이터베이스나 다른 곳에서 가져오는 것입니다. . 일반적으로 2차원 배열입니다. 예:

  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()으로 반환되어 데이터를 처리하고 원하는 결과를 표시합니다.

이제 원리를 알았으니 다음 단계는 다음과 같은 세부 구현 방법입니다.

먼저 새 PHP 파일을 만들고 이름을 json.php로 지정합니다(새 폴더를 만들고 이름을 api로 지정할 수도 있습니다. 호출할 때 호출되는 API 인터페이스로 사용되는 http://도메인 이름/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로 변환하는 작업을 수행했으므로 GBK 버전의 DEDECMS와 호환됩니다

호출 방법:

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

필요한 곳에 호출 코드를 넣으세요

cache=300 캐시 시간, 0은 캐싱이 없음을 의미합니다

추천: dedecms 사용 튜토리얼

위 내용은 Dedecms에 API 인터페이스를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.