POST TIME:2017-11-13 00:25
織夢json標簽是用于調用某個遠程連接的json接口,方便同遠程站點之間進行通信來調取內容。這個標簽可以很方便的對一些網站開放的API接口進行對接。需要注意的是,所傳遞的數據需要是UTF-8編碼格式,否則可能會出現亂碼。標簽語法:
{dede:json url='http://yoursite/json.php' cache=300}
[field:id/]-[field:title/]
{/dede:json}
標簽參數:
url='' //遠程json接口地址
cache=300 //緩存時間,0為不緩存
標簽示例:
我們首先編寫一個簡單的服務器端API,將其存放在系統根目錄/api下,由于系統是GB2312編碼,所以服務端編寫的時候我們進行了一些編碼轉換的處理,保證服務端訪問的編碼是UTF-8即可。
$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);
?>
通過地址(注意修改為你自己的域名)我們可以訪問到剛才編寫的服務端文件。
下面我們就可以通過標簽來進行訪問。
{dede:json url='http://www.dede.com/api/arcticle.php' cache=0}
[field:id/]-[field:title/]
{/dede:json}
測試標記結果如下:
如果您是想獲取單條記錄,可以構造如下的數組:
$row[] = $dsql->GetOne(“SELECT * FROM dede_archives WHERE id=88”);
然后將這個數組通過JSON格式化進行處理。