节点表Node模型类的数据获取演示
信息表Info模型类的数据获取演示

首页或通用节点页面的示例代码说明

下面的代码放在页面最顶部,用于页面的初始化,注意GLOBALS中的变量名要用双引号,不要使用单引号
<?php
if(!isset($GLOBALS["DR"])){$GLOBALS["DR"] = str_replace("\\", "/", $_SERVER["DOCUMENT_ROOT"]);}
if(!isset($GLOBALS["webroot"])){$GLOBALS["webroot"] = preg_replace("/(.*\/).*/", "$1", str_replace("\\", "/", __DIR__));}
require_once $GLOBALS["webroot"] . "/db.php";
require_once $GLOBALS["DR"] . "/base.php";
require_once $GLOBALS["DR"] . "/admin/require/html/nid.php";
require_once $GLOBALS["DR"] . "/admin/require/html/rid.php";
?>

引入百度JS,注意如果生成方式是静态,浏览动态网页不会引入百度JS,如果是生成缓存,开启调试模式也不引入百度JS
<?php include_once $GLOBALS["DR"] . "/admin/require/bdjs.php"; ?>复制当前行

引入整个head标签
<?php include Web::getHtmlPath() . "head.php"; ?>复制当前行
<?php include Web::getWapPath() . "head.php"; ?>复制当前行
如果在同级目录,可以简写如下
<?php include("head.php")?>复制当前行

标题、关键词、描述(不要随意修改标题)
<title><?=$title;?></title>复制当前行
<meta name="keywords" content="<?=$keywords;?>" />复制当前行
<meta name="description" content="<?=$description;?>" />复制当前行

根据终端设备进行跳转,如果是PC端访问手机站,则跳到PC端,否则跳到手机端
<?php include $GLOBALS["DR"].'/admin/require/html/redirect.php'); ?>复制当前行

网站名称
<?=WEBCONFIG_NAME;?>复制当前行

引入网站公共顶部
<?php include Web::getHtmlPath() . "bodytop.php"; ?>复制当前行
<?php include Web::getWapPath() . "bodytop.php"; ?>复制当前行
如果在同级目录,可以简写如下
<?php include("bodytop.php")?>复制当前行

引入网站公共底部
<?php include Web::getHtmlPath() . 'bodyfoot.php'; ?>复制当前行
<?php include Web::getWapPath() . 'bodyfoot.php'; ?>复制当前行
如果在同级目录,可以简写如下
<?php include("bodyfoot.php")?>复制当前行

当前网站默认首页
PC站或响应式网站
<?=WEBURL . WEBROOT;?>复制当前行
手机网站
<?=WEBURL . WEBROOT;?>/index_wap.html

上传路径目录
<?=Web::getBackupUploadStr();?>复制当前行
PC站或响应式网站的CSS目录
<?=Web::getBackupHtmlCssStr();?>复制当前行
PC站或响应式网站的JS目录
<?=Web::getBackupHtmlJsStr();?>复制当前行
手机站的CSS目录
<?=Web::getBackupWapCssStr();?>复制当前行
手机站的JS目录
<?=Web::getBackupWapJsStr();?>复制当前行

CutStr 函数说明
作用:字符串截取,适用于标题、标签、作者等字段

filterCutHtml 函数说明
作用:过滤html标签并截取、过滤字符串中的反斜杠、过滤换行符、过滤空格,如果不过滤空格,需要传第三个参数,值为false,适用于带编辑器的字段,比如详情等

获取节点表的单个记录
<?=Node::getTd(id, '字段名');?>复制当前行
<?=cutStr(Node::getTd(id, '字段名'), 截取长度);?>复制当前行
获取节点表的单个记录示例
<?=Node::getTd(1, 'name');?>复制当前行
<?=cutStr(Node::getTd(1, 'name'), 4);?>复制当前行
获取节点表链接
<?=Node::getSiteUrl(id);?>复制当前行

获取搜索页链接
<?=Node::getSearchUrl();?>复制当前行

通过指定节点id获取一行记录
<?php $nodetr = Node::getTr(id); ?>复制当前行

通过指定pid获取当前pid下面的子节点的多行记录
循环开始
<?php $nodetrs = Node::getTrs(pid, limit); ?>复制当前行
<?php foreach ($nodetrs as $key => $nodetr) { ?>复制当前行
只获取几条时使用break中止循环
<?php if ($key == 数字) {break;} ?>复制当前行
<?=Node::getSiteUrl($nodetr['id']);?>复制当前行
<?=$nodetr['name'];?>复制当前行
<?=cutStr($nodetr['name'], 截取长度);?>复制当前行
<?php } ?>复制当前行
循环结束

获取信息表单个记录,根据信息id
<?=Info::getTd(id, '字段名');?>复制当前行
<?=Info::getTd(id, 'title');?>复制当前行
<?=Info::getTd(id, 'picurl');?>复制当前行
<?=Info::getTd(id, 'digest');?>复制当前行
过滤掉p标签
<?=str_replace(['<p>','</p>'], ['',''], Info::getTd(id, 'digest'));?>复制当前行

获取信息表单个记录,根据节点id
<?=Info::getTdByNid(nid,'picurl');?>复制当前行
<?=Info::getTdByNid(nid,'digest');?>复制当前行
<?=Info::getTdByNid(nid,'content');?>复制当前行
过滤掉p标签
<?=str_replace(['<p>','</p>'], ['',''], Info::getTdByNid(nid,'digest'));?>复制当前行
<?=str_replace(['<p>','</p>'], ['',''], Info::getTdByNid(nid,'content'));?>复制当前行

获取到的单个记录赋值给变量$infotd
<?php $infotd = Info::getTd(id, '字段'); ?>复制当前行

获取到的单行记录赋值给变量$infotr
<?php $infotr = Info::getTr(id); ?>复制当前行

多杂项类型获取数据(不包含回收站)
<?php $infotrs = Info::getTrs(nid); ?>复制当前行
<?php foreach ($infotrs as $key => $infotr) { ?>复制当前行
获取图片路径
<?=$infotr['picurl'];?>复制当前行
获取链接
<?=$infotr['link'];?>复制当前行
获取标题
<?=$infotr['title'];?>复制当前行
获取简介
<?=$infotr['digest'];?>复制当前行
获取截取之后的标题
<?=cutStr($infotr['title'], 截取长度);?>复制当前行
获取过滤之后的简介并截取
<?=filterCutHtml($infotr['digest'], 截取长度);?>复制当前行
获取过滤之后的简介并截取但是不过滤空格
<?=filterCutHtml($infotr['digest'], 截取长度, false);?>复制当前行
<?php } ?>复制当前行

列表类型的节点获取信息表记录
<?php
$idandchildidstr = InfoNode::getIdAndChildIdStr(NID);
$infotrs = DB::getTrs("select * from " . PREFIX . "info where nid in ($idandchildidstr) and status = 2 and (title like '%关键词1%' or title like '%关键词2%') order by sortnum desc limit LIMIT");
?>
<?php $infotrs = Info::getTrs(nid, limit, istop, field, order); ?>复制当前行
<?php foreach ($infotrs as $key => $infotr) { ?>复制当前行
获取链接(这里指详情页)
<?=Info::getSiteUrl($infotr['id']);?>复制当前行
获取图片路径
<?=$infotr['picurl'];?>复制当前行
如果图片路径不为空,定义$picurl这个变量,这个变量的值就等于图片路径,否则这个变量的值就等于/_backup/_upload/暂无图片.jpg
<?php if ($infotr['picurl']) {$picurl = $infotr['picurl'];} else { $picurl = '/_backup/_upload/暂无图片.jpg';} ?>复制当前行
http://abc.kasn.cn/output/320/<?=$infotr['title'];?>.jpg
获取链接
<?=$infotr['link'];?>复制当前行
获取标题
<?=$infotr['title'];?>复制当前行
获取简介
<?=$infotr['digest'];?>复制当前行
获取截取之后的标题
<?=cutStr($infotr['title'], 截取长度);?>复制当前行
获取过滤之后的简介并截取
<?=filterCutHtml($infotr['digest'], 截取长度);?>复制当前行
获取过滤之后的简介并截取但是不过滤空格
<?=filterCutHtml($infotr['digest'], 截取长度, false);?>复制当前行
获取过滤之后的详情并截取
<?=filterCutHtml($infotr['content'], 截取长度);?>复制当前行
获取过滤之后的详情并截取但是不过滤空格
<?=filterCutHtml($infotr['content'], 截取长度, false);?>复制当前行
获取月-日,如果要用月/日这种格式,将下面的m-d换成m/d
<?=date('m-d', $infotr['addtime']);?>复制当前行
获取年-月-日,如果要用年/月/日这种格式,将下面的Y-m-d换成Y/m/d
<?=date('Y-m-d', $infotr['addtime']);?>复制当前行
获取年-月-日 时:分:秒
<?=date('Y-m-d H:i:s', $infotr['addtime']);?>复制当前行
<?php } ?>复制当前行

循环中获取带链接的标签,点击单个的标签跳到搜索页
<?php if ($infotr['tags']) {$tagsarr = explode(',', $infotr['tags']); ?>复制当前行
<?php foreach ($tagsarr as $tagstd) { ?>复制当前行
<a href="<?=Node::getSearchUrl();?>?keyword=<?=$tagstd;?>"><?=$tagstd;?></a>复制当前行
<?php } ?>复制当前行
<?php } ?>复制当前行

循环中对标题作特殊处理,如果当前信息的链接字段包含https://v.qq.com/x/page/,则给标题后面加上【视频】
<?php $title = $infotr['title'];
$cuttitle = CutStr($infotr['title'], 截取长度);?>
<?php
if (isBh($infotr['link'], 'https://v.qq.com/x/page/')) {
$title = $infotr['title'] . "【视频】";
$cuttitle = CutStr($infotr['title'] . "【视频】", 截取长度);}
?>
特殊处理的标题
<?=$title;?>复制当前行
特殊处理并且经过截取长度的标题
<?=$cuttitle;?>复制当前行
不是循环中的最后一个特殊处理
<?php if ($key < (count($infotrs) - 1)) {echo '特殊处理时的字符串';} ?>复制当前行
是循环中的最后一个特殊处理
<?php if ($key == (count($infotrs) - 1)) {echo '特殊处理时的字符串';} ?>复制当前行

如果单行记录中详情内容不为空执行代码块一,否则执行代码块二
<?php if (trim($infotr['content'])) { ?>复制当前行
代码块一
<?php } else { ?>复制当前行
代码块二
<?php } ?>复制当前行

三元表达式 如果Info::getTd(id,'link')所得到的值为空,就输出javascript:void(0);,否则输出Info::getTd(id,'link')
<?=Info::getTd(id, 'link') == '' ? 'javascript:void(0);' : Info::getTd(id, 'link');?>复制当前行

列表类型的节点获取信息表记录特殊情况,第一条记录显示图片、标题与简介,余下的显示时间与标题
<?php $infotrs = Info::getTrs(nid, limit, istop, field, order); ?>复制当前行
<?php foreach ($infotrs as $key => $infotr) { ?>复制当前行
<?php if($key == 0){ ?>复制当前行
<?php if ($infotr['picurl']) {$picurl = $infotr['picurl'];} else { $picurl = '/admin/img/noimg.png';} ?>复制当前行
<div class="pic">复制当前行
<a href="<?=Info::getSiteUrl($infotr['id']);?>" title="<?=$infotr['title'];?>"><img src="<?=$picurl?>"></a>复制当前行
</div>复制当前行
<div class="txt">复制当前行
<a href="<?=Info::getSiteUrl($infotr['id']);?>"><?=cutStr($infotr['title'], 30);?></a>复制当前行
<p><?=filterCutHtml($infotr['digest'], 60, false);?></p>复制当前行
</div>复制当前行
<?php } ?>复制当前行
<?php if($key == 1){ ?>复制当前行
<ul>复制当前行
<?php } ?>复制当前行
<?php if($key >= 1){ ?>复制当前行
<li>复制当前行
<span><?=date('Y-m-d', $infotr['addtime']);?></span>复制当前行
<a href="<?=Info::getSiteUrl($infotr['id']);?>"><?=cutStr($infotr['title'], 30);?></a>复制当前行
</li>复制当前行
<?php } ?>复制当前行
<?php if($key >= 1 && $key == count($infotrs) - 1){ ?>复制当前行
</ul>复制当前行
<?php } ?>复制当前行
<?php } ?>复制当前行

<script src="/_admin/js/jquery.js"></script>复制当前行
<?php if (isset($_SERVER['REMOTE_HOST']) && (!(isset($_GET["nid"]) || isset($_GET['id'])))) { ?>复制当前行
<?php //如果要跨域,需要两者都使用相同的通信协议(http还是https,还是FTP等)?>复制当前行
<script type="text/javascript">复制当前行
url="<?=Web::getAdminStr();?>model/ajax/sznest.php";
$.ajax({
type: "POST",
data : {'WEBROOT':'<?=WEBROOT?>','maxcount':'1','baidutuisongapiurl':''},
url: url,
success: function(res){},
error:function(XMLHttpRequest, textStatus, errorThrown){},
});
</script>复制当前行
<?php } ?>复制当前行

<script type="text/javascript">复制当前行
var pcurl = "http://www.sznest.net/";
var wapurl = "http://www.sznest.net/index_wap.html";
function IsPC() {
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone","SymbianOS", "Windows Phone","iPad", "iPod","acer","ios","mobile"];
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}
if(IsPC()==true){
document.writeln('<frameset cols="100%" rows="100%"><frame src="'+pcurl+'" /></frameset>');
}else{
llq = navigator.userAgent.toLowerCase();
if(llq.match(/iphone os/i) == "iphone os") {
document.location.href = wapurl;
}else{
document.writeln('<frameset cols="100%" rows="100%"><frame src="'+wapurl+'" /></frameset>');
}
}
</script>复制当前行

特殊情况:如果动态url已被搜索引擎收录,那么只能使用动态URL了,那么需要将根目录下面index.php的这个入口文件改成下面的代码,注意只有首页才能生成缓存
<?php
$folder = 'html';$nid = 1;
$GLOBALS['DR'] = str_replace("\\", "/", $_SERVER['DOCUMENT_ROOT']);
require_once $GLOBALS['DR'] . "/db.php";
$cachefile = $GLOBALS['DR'] . WEBROOT . '_cache/'.$folder.'/index';
if (is_file($cachefile) && !WEBCONFIG_ISONDEBUG) {
include $cachefile;
} else {
include 'html/index.php';
if(!WEBCONFIG_ISONDEBUG){
addDir(Web::getCacheHtmlPath());
file_put_contents($cachefile, ob_get_contents());
ob_end_clean();
include $cachefile;
}
}
?>

URL使用纯动态而不使用纯静态或伪静态的情况下,所有的getSiteUrl方法必须设置第二个参数,第二参数必须是dt,同时要去掉.htaccess与web.config文件中重定向到index.php这个入口文件的代码
根目录下的index.php文件代码
<?php
$GLOBALS["DR"] = str_replace("\\", "/", $_SERVER["DOCUMENT_ROOT"]);
require_once $GLOBALS["DR"] . '/db.php';
$filename = $GLOBALS["DR"] . '/_cache/html/index';
if (WEBCONFIG_ISONDEBUG) {
if (is_file($filename)) {
@unlink($filename);
}
include_once 'html/index.php';
}else{
if (is_file($filename)) {
include_once $filename;
} else {
include_once 'html/index.php';
}
}
?>
html目录或wap目录下面的index.php文件顶部调用代码
<?php
if(!isset($GLOBALS["DR"])){$GLOBALS["DR"] = str_replace("\\", "/", $_SERVER["DOCUMENT_ROOT"]);}
if(!isset($GLOBALS["webroot"])){$GLOBALS["webroot"] = preg_replace("/(.*\/).*/", "$1", str_replace("\\", "/", __DIR__));}
require_once $GLOBALS["DR"] . "/admin/require/dt/index.php";
?>
<?php require_once $GLOBALS["DR"] . "/admin/require/dt/fileputcontents.php";?>复制当前行


其它特殊情况数据获取示例代码说明