手机
当前位置:查字典教程网 >编程开发 >php教程 >php xml留言板 xml存储数据的简单例子
php xml留言板 xml存储数据的简单例子
摘要:类文件:_class.xmldb.inc.php复制代码代码如下:xmldb=$xmldbname;if(!file_exists($thi...

类文件 : _class.xmldb.inc.php

复制代码 代码如下:

<?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">首页</a>";

$mess .="<a href="".$urled.$strpage."=".($page-1)."" href="".$urled.$strpage."=".($page-1)."">上一页</a>";

}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 .= "<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)."">下一页</a>";

$mess .="<a href="".$urled.$strpage."=".$pageall."" href="".$urled.$strpage."=".$pageall."">尾页</a>";

}else{

$mess .="下一页";

$mess .="尾页";

}

return $mess;

}

}

?>

调用文件 : index.php

复制代码 代码如下:

<?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'><></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">

昵称:<input type="text" name="nickname"><br>

内容:<textarea name="content">

php操作xml的简单留言板,带分页,仅供参考

【php xml留言板 xml存储数据的简单例子】相关文章:

一个php作的文本留言本的例子(二)

php实现屏蔽掉黑帽SEO的搜索关键字

一个php作的文本留言本的例子(三)

php一个解析字符串排列数组的方法

php中smarty模板条件判断用法实例

用IE远程创建Mysql数据库的简易程序

一个php作的文本留言本的例子(四)

smarty模板判断数组为空的方法

php中数据的批量导入(csv文件)

php备份数据库类分享

精品推荐
分类导航