Emlog是一個(gè)輕量級(jí)的開源博客程序,基于PHP和Mysql開發(fā),能夠滿足個(gè)人和小型團(tuán)隊(duì)的博客建設(shè)需求。而在Emlog中,Json是一種常用的數(shù)據(jù)格式,可以將數(shù)據(jù)以Json格式輸出,方便前端頁面的數(shù)據(jù)展示。
在Emlog中,我們可以使用Json數(shù)據(jù)格式來獲取許多博客數(shù)據(jù)和信息。例如,獲取最新文章數(shù)據(jù)、獲取文章評(píng)論數(shù)據(jù)、獲取友情鏈接等。以下為獲取最新文章數(shù)據(jù)的示例代碼:
require_once './init.php';
header('Content-Type:application/json; charset=utf-8');
$Query = '';
$exCate = Option::get('index_notcat');
if (!empty($exCate)) {
$QueryArr = array();
$exCateArr = explode(',', $exCate);
foreach ($exCateArr as $exCate) {
$QueryArr[] = 'T.Gid not like "%,' . $exCate . ',%"';
}
$Query .= 'and (' . implode('and', $QueryArr) . ')';
}
$stickydb = CACHE_PATH . Option::get('cache_prefix') . 'sticky.php';
$Stickys = $CACHE->readCache('stickys');
$DB = MySql::getInstance();
$sql = "SELECT * FROM " . DB_PREFIX . "blog WHERE type='blog'and hide='n' $Query ORDER BY top DESC,date DESC,gid DESC LIMIT 0," . Option::get('index_lognum') . "";
$sta_cache = '';
if (is_file($stickydb) || $Stickys) {
$sta_cache = 'SQL_CALC_FOUND_ROWS';
}
$Data = $DB->query($sta_cache . $sql);
$result = array();
$i = 0;
while ($row = $DB->fetch_array($Data)) {
$row['title'] = Url::log($row['gid']);
$row['title'] = stripslashes($row['title']);
$result[$i]['title'] = $row['title'];
$result[$i]['created'] = $row['date'];
$result[$i]['views'] = $row['views'];
$result[$i]['comments'] = $row['comnum'];
$i++;
}
echo json_encode($result);
上述代碼中,我們使用了Json_encode()函數(shù)對(duì)獲取到的最新文章數(shù)據(jù)進(jìn)行了Json格式化處理,并將數(shù)據(jù)以Json格式進(jìn)行輸出。
需要注意的是,在進(jìn)行Json輸出時(shí),我們需要設(shè)置header頭的Content-Type為application/json; charset=utf-8,以保證數(shù)據(jù)能夠正確的以Json格式進(jìn)行輸出。
總而言之,在Emlog中使用Json數(shù)據(jù)格式具有非常重要的作用,它不僅方便前端頁面的數(shù)據(jù)獲取與展示,同時(shí)也具備了非常良好的兼容性和可擴(kuò)展性。因此,對(duì)于博客程序開發(fā)與建設(shè)而言,熟練使用Json數(shù)據(jù)格式也是至關(guān)重要的。