节点表Node模型类的数据获取演示
信息表Info模型类的数据获取演示
搜索页面示例代码说明
下面的代码放在页面最顶部,用于页面的初始化,搜索页面不用生成缓存
<?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";
$pagesize = 36;//每页显示条数,如果要随机显示图片,此值的取值范围是1<$pagesize<=$maxrandnum
$titlemaxlen = 30; //截取标题最大长度
$abstractmaxlen = 180; //摘要最大长度,摘要的文字即可来源于基本中的简介,也可以来自于详情
$rname = $name = '站内搜索';
require_once $GLOBALS["DR"] . "/admin/require/html/search.php";
?>
<?php
//随机调用图片代码开始,如果不需要调用,删除这一大段代码
if ($pagesize <= 1) {$pagesize = 2;}//pagesize必须大于1,否则导致$randnumkeysarr[$key]结果为空
$maxrandnum = 10;//最大随机数与randimglist文件夹中的图片数量,此值必须大于等于$pagesize
if ($maxrandnum <= $pagesize) {$maxrandnum = $pagesize + 1;}
$randnumarr = range(1, $maxrandnum);
shuffle($randnumarr);
$randnumkeysarr = array_rand($randnumarr, $pagesize);
//随机调用图片代码结束,如果不需要调用,删除这一大段代码
?>
<?php
$pageer->pagesize = $pagesize;
$pageer->trscount = count($searchinfotrs);
$pageer->pagecount = ceil($pageer->trscount / $pageer->pagesize);
$pageer->page = getPage($pageer->pagecount);
$start = ($pageer->page - 1) * $pageer->pagesize;
$infotrs = array_slice($searchinfotrs, $start, $pageer->pagesize);
?>
<?php
$alternate = WEBURL.WEBROOT.'search/index_wap.php?keyword='.$keyword;
$canonical = WEBURL.WEBROOT.'search/index.php?keyword='.$keyword;
?>
<title><?=$keyword . '-' . WEBCONFIG_NAME;?></title>复制当前行
<?=$navigationhtml?> >> <font color=red><?=$keyword;?></font>的搜索结果
<?php foreach ($infotrs as $key=>$infotr) {?>复制当前行
<?php if($infotr['picurl']=='') $picurl = '/_backup/randimglist/'.$randnumarr[$randnumkeysarr[$key%$pagesize]].'.jpg'; else $picurl = $infotr['picurl'];?>复制当前行
<?php if($infotr['picurl']=='') $picurl = '/_admin/img/noimg.png'; else $picurl = $infotr['picurl'];?>复制当前行
<?=$picurl;?>复制当前行
<?=$infotr['picurl'];?>复制当前行
<?=$infotr['nodesiteurl'];?>复制当前行
<?=$infotr['name'];?>复制当前行
<?=$infotr['infositeurl'];?>复制当前行
<?=$infotr['title'];?>复制当前行
<?=$infotr['titledo'];?>复制当前行
<?=$infotr['digestdo'];?>复制当前行
<?=date('Y-m-d', $infotr['addtime']);?>复制当前行
<?php }?>复制当前行
<?php if ($pageer->pagecount > 1) {?>复制当前行
<?php $minpagesize = 5;?>复制当前行
<?php $baseurl = Node::getSearchUrl() . '?keyword=' . $keyword?>复制当前行
<?php $indexurl = $baseurl . '&page=' . $pageer->page?>复制当前行
<table><tr><td class="lefttd">共<?=$pageer->trscount;?>条 每页<?=$pageer->pagesize;?>条 页次<?=$pageer->page;?>/<?=$pageer->pagecount;?></td>复制当前行
<td class="righttd">复制当前行
<?php if ($pageer->pagecount > $minpagesize) {?>复制当前行
<?php echo "<select name='pages' onchange='window.location=this.value;'>"; ?>复制当前行
<?php echo "<option value='" . $baseurl . "' selected>第1页</option>"; ?>复制当前行
<?php for ($i = 2; $i < $pageer->pagecount + 1; $i++) {?>复制当前行
<?php $url = preg_replace('/page=\d{1,}/i', 'page=' . $i, $indexurl);?>复制当前行
<?php if ($i == $pageer->page) {?>复制当前行
<?php echo "<option value='" . $url . "' selected>第" . $i . "页</option>"; ?>复制当前行
<?php } else {?>复制当前行
<?php echo "<option value='" . $url . "'>第" . $i . "页</option>"; ?>复制当前行
<?php }?>复制当前行
<?php }?>复制当前行
<?php echo "</select>"; ?>复制当前行
<?php } else {?>复制当前行
<?php echo "<a href='" . $baseurl . "'>[ 1 ]</a>"; ?>复制当前行
<?php for ($i = 2; $i < $pageer->pagecount + 1; $i++) {?>复制当前行
<?php $url = preg_replace('/page=\d{1,}/i', 'page=' . $i, $indexurl);?>复制当前行
<?php if ($i == $pageer->page) {?>复制当前行
<?php echo "<a href='" . $url . "' id='curpage'>[ {$i} ]</a>"; ?>复制当前行
<?php } else {?>复制当前行
<?php echo "<a href='" . $url . "'>[ {$i} ]</a>"; ?>复制当前行
<?php }?>复制当前行
<?php }?>复制当前行
<?php }?>复制当前行
</td></tr></table>复制当前行
<?php }?>复制当前行
<form method="get" action="<?=Node::getSearchUrl();?>" name="searchform" id="searchform">复制当前行
<input type="hidden" name="rid" value="可以指定一个顶级id">复制当前行
<input name="keyword" value="<?=$keyword;?>" type="text" placeholder="请输入关键词" />复制当前行
<input type="submit" value="搜索" />复制当前行
</form>复制当前行
如果搜索代码要被放到公共的bodytop.php或bodyfoot.php中,还需要在搜索代码的上面加上下面的一行代码
<?php if (!isset($keyword)) {$keyword = '';} else { $title = $keyword . '-' . WEBCONFIG_NAME;}?>复制当前行
JS过滤非法字符防止跨站脚本攻击
<script type="text/javascript">复制当前行
function validateForm(){
var textbox=document.forms["searchform"]["keyword"].value;
var ze = /[^0-9a-zA-Z]+/;
if (ze.test(textbox)) {
alert("数据不合法!,只允许输入数字及26个英文字母");
return false;
}
}
</script>复制当前行
URL使用纯动态而不使用纯静态或伪静态的情况下,顶部代码与即有伪静态的代码一样的
其它特殊情况数据获取示例代码说明