类文件:_class.xmldb.inc.php
复制代码代码如下:
classxmldbextendsDOMDocument{
var$xmldb;
publicfunction__construct($xmldbname){
$this->xmldb=$xmldbname;
if(!file_exists($this->xmldb)){
$initxmldb="<?xmlversion ="1.0"encoding="utf-8"?>";
$this->loadXML($initxmldb);
$this->save($this->xmldb);
}else{
$this->load($this->xmldb);
}
}
publicfunctioninsert_message($nickname,$message){
$messagedom=$this->getElementsByTagName("Message");
$subnode=$this->createElement("Rows");
$nicknamenode=$this->createElement("Nickname");
$nicknamenode->appendChild($this->createTextNode($nickname));
$subnode->appendChild($nicknamenode);
$contentnode=$this->createElement("Content");
$contentnode->appendChild($this->createTextNode($message));
$subnode->appendChild($contentnode);
$timernode=$this->createElement("Timer");
$timernode->appendChild($this->createTextNode(time()));
$subnode->appendChild($timernode);
$messagedom->item(0)->appendChild($subnode);
$this->saveXML();
$this->save($this->xmldb);
}
functionget_node_length($nodename){
$odom=$this->getElementsByTagName($nodename);
return$odom->length;
}
publicfunctionget_message_list($start,$rowscount,$pagesize){
$end=$rowscount>$pagesize?$start+$pagesize:$rowscount;
$k=0;
for($i=$start;$i
$rowslist[$k]["Nickname"]=$this->getElementsByTagName("Nickname")->item($i)->nodeValue;
$rowslist[$k]["Content"]=$this->getElementsByTagName("Content")->item($i)->nodeValue;
$rowslist[$k]["Timer"]=$this->getElementsByTagName("Timer")->item($i)->nodeValue;
$k++;
}
return$rowslist;
}
publicstaticfunctionsplitpage($pageall,$page=1,$urled=null,$strpage="page",$pageaverage=10){
 
;$pageaverage-=1;
$page=intval($page>=1?$page:1);
$page=$page>$pageall?$pageall:$page;
$startpage=$page-$pageaverage>0?$page-ceil(($pageaverage/2)):1;
$startpage=($page+ceil($pageaverage/2)>$pageall)?$pageall-$pageaverage:$startpage;
$startpage=$startpage>0?$startpage:1;
$stoppage=$startpage+$pageaverage>$pageall?$pageall:$startpage+$pageaverage;
if(empty($urlfile)){$urlfile=$_SERVER["PHP_SELF"];}
if(!strrpos($urlfile,'?'))$urled.='?';
foreach($_GETas$k=>$v)
{
$urled=($k<>$strpage)?$urled.$k.'='.urlencode($v).'&':$urled;
}
if($page>1){
$mess="首页 ";
$mess.="上一页 ";
}else{
$mess="首页 ";
$mess.="上一页 ";
}
if($page>9){
$startpage=$page-9;
}
$stoppage=$startpage+9>=$pageall?$pageall:$startpage+9;
for($i=$startpage;$i<=$stoppage;$i++)
{
if($i<=$pageall&&!($page==$i))
$mess.="".$i."";
else
$mess.="".$i."";
}
if($page
$mess.=" 下一页";
&nbs
p;$mess.=" 尾页";
}else{
$mess.=" 下一页";
$mess.=" 尾页";
}
return$mess;
}
}
?>
调用文件:index.php
复制代码代码如下:
require("_class.xmldb.inc.php");
$xmldb=newxmldb("./my_xmldb.xml");
if(isset($_POST["btnform1"])){
$xmldb->insert_message($_POST["nickname"],$_POST["content"]);
}
$pagesize=3;
$page=!empty($_GET['page'])?intval($_GET['page']):1;
$rowscount=$xmldb->get_node_length("Rows");
$pagecount=ceil($rowscount/$pagesize);
$start=($page-1)*$pagesize>$rowscount?$rowscount:($page-1)*$pagesize;
$rowslist=$xmldb->get_message_list($start,$rowscount,$pagesize);
?>
-//W3C//DTDHTML4.0Transitional//EN">
NewDocument#messagelistulli{float:left;list-style-type:none;}
if(!empty($rowslist))
{
foreach($rowslistas$key=>$value)
{
echo"
- ".$value["Nickname"]."(".date("Y-m-dH:i",$value["Timer"]).")";
echo"
".$value["Content"]."";
}
}
?>