当前位置: 首页 > 图文教程 > 网络编程 > PHP > php xml留言板 xml存储数据的简单例子

PHP
在PHP中以root身份运行外部命令
PHP编程常用技巧四则
实例学习PHP之投票程序篇
PHP中的加密功能
PHP VS ASP
PHP生成动态WAP页面
PHP中for循环语句的几种变型
PHP5.0对象模型探索之对象串行化
PHP5.0对象模型探索之重载
浅议PHP程序开发中的模板选择
用PHP写的身份证验证程序
PHP.MVC的模板标签系统之初识PHP.MVC
PHP程序加速探索之代码优化
PHP程序加速探索之压缩输出gzip
用PHP文件上传的具体思路及实现
使用PHP编写基于Web的文件管理系统
理解PHP中的MVC编程之控制器
PHP程序加速探索之缓存输出
让你的PHP引擎全速运转的三个绝招
PHP程序加速探索之加速工具软件

PHP 中的 php xml留言板 xml存储数据的简单例子


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 88 ::
收藏到网摘: n/a

php xml留言板 xml存储数据的简单例子 php操作xml的简单留言板,带分页,仅供参考 类文件 : _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'><!--
#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">
昵称:<input type="text" name="nickname"><br>
内容:<textarea name="content">

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