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