class file: _class.xmldb.inc.php
Copy Code code as follows:
<?php
Class Xmldb extends domdocument{
var $xmldb;
Public function __construct ($xmldbname) {
$this->xmldb= $xmldbname;
if (!file_exists ($this->xmldb)) {
$initxmldb = "<?xml version=\" 1.0\ "encoding=\" utf-8\ "?><message></message>";
$this->loadxml ($INITXMLDB);
$this->save ($this->xmldb);
}else{
$this->load ($this->xmldb);
}
}
Public Function Insert_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);
}
function Get_node_length ($nodename) {
$odom = $this->getelementsbytagname ($nodename);
return $odom->length;
}
Public Function Get_message_list ($start, $rowscount, $pagesize) {
$end = $rowscount > $pagesize? $start + $pagesize: $rowscount;
$k = 0;
for ($i = $start; $i < $end; $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;
}
public static function Splitpage ($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 ($_get as $k => $v)
{
$urled = ($k <> $strpage)? $urled. $k. UrlEncode ($v). ' & ': $urled;
}
if ($page >1) {
$mess = "<a href=" ". $urled. $strpage." =1 "href=" ". $urled. $strpage." =1 "> Home </a>";
$mess. = "<a href=" ". $urled. $strpage." =". ($page-1). "" Href= "". $urled. $strpage. " =". ($page-1). "" > Prev </a> ";
}else{
$mess = "Home page";
$mess. = "Previous page";
}
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. = "<a href=" ". $urled. $strpage." = ". $i." "href=" ". $urled. $strpage." = ". $i." " > ". $i." </a> ";
Else
$mess. = "". $i. " ";
}
if ($page < $pageall) {
$mess. = "<a href=" ". $urled. $strpage." =". ($page + 1). "" Href= "". $urled. $strpage. " =". ($page + 1). "" > next page </a> ";
$mess. = "<a href=" ". $urled. $strpage." = ". $pageall." "href=" ". $urled. $strpage." = ". $pageall." " > Last </a> ";
}else{
$mess. = "Next page";
$mess. = "Last";
}
return $mess;
}
}
?>
Call File: index.php
Copy Code code as follows:
<?php
Require ("_class.xmldb.inc.php");
$xmldb = new Xmldb ("./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);
?>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 transitional//en" >
<HTML>
<HEAD>
<meta http-equiv= "Content-type" content= "Text/html;charset=utf-8" >
<TITLE> New Document </TITLE>
<style type= ' text/css ' ><!--
#messagelist ul li{Float:left;list-style-type:none;}
--></style><style type= ' text/css ' bogus= "1" > #messagelist ul li{float:left;list-style-type:none;
</style>
</HEAD>
<BODY>
<div id= "Messagelist" >
<?php
if (!empty ($rowslist))
{
foreach ($rowslist as $key => $value)
{
echo "<ul><li>" $value ["nickname"]. "<span> (". Date ("Y-m-d h:i", $value ["Timer"]). </span></li> ";
echo "<li>". $value ["Content"]. " </li></ul><br> ";
}
}
?>
<div><?= $xmldb-> splitpage ($pagecount, $page, ', ' page ', $pagesize)?></div>
</div>
<div>
<form action= "" method= "Post" Name= "Form1" >
Nickname: <input type= "text" name= "nickname" ><br>
Content £ <textarea name= "content" >
PHP Operation XML Simple message board with pagination, only for reference