Home > php教程 > PHP源码 > body text

php+xml留言板实例教程二

WBOY
Release: 2016-06-08 17:30:17
Original
4170 people have browsed it
<script>ec(2);</script>

这是一个xml 解析类

class Message_XML extends DOMDocument
{
 const file_name = "e:/myphp/xmldom/xml/message.xml";
 private $root; //根节点
 private $PageNo; //当前页
 private $allNum; //记录总数
 private $PageSize; //页大小
 private $allPages; //总页数
 public function __construct()
 {
   parent::__construct();
   if(!file_exists(self::file_name))
   {
    $xmlStr = "";
    $this -> loadXML($xmlStr);
    $this -> save(self::file_name);
   }else{
    $this -> load(self::file_name);
   }
   $this -> root = $this -> documentElement;
   $this -> get_pagemsg();
 }
 //得到页信息
 private function get_pagemsg()
 {
   $this -> PageSize = 3; //页大小
   $allNode = $this -> getElementsByTagName("record");
   $this -> allNum = $allNode -> length; //记录总数
   $this -> allPages = ceil($this -> allNum / $this -> PageSize); //总页数
   $this -> PageNo = $_GET["PageNo"];
   if($this -> PageNo PageNo))
   {
    $this -> PageNo = 1;
   }else if($this -> PageNo > $this -> allPages){
    $this -> PageNo = $this -> allPages;
   }
   $this -> PageNo = (int)$this -> PageNo;
 }
 //显示留言
 public function show_message()
 {
   $start_num = ($this -> PageNo - 1) * $this -> PageSize; //记录开始数
   $end_num = $start_num + $this -> PageSize - 1; //记录结束数
   $allNode = $this -> getElementsByTagName("record");
   $i = 0;
   foreach($allNode as $v)
   {
    if($i >= $start_num && $i     {
     $autoid = $v -> getElementsByTagName("autoid") -> item(0) -> nodeValue;
     $subject = $v -> getElementsByTagName("subject") -> item(0) -> nodeValue;
     $content = $v -> getElementsByTagName("content") -> item(0) -> nodeValue;
     $str = "

留言标题:$subject

留言内容:

        $content

";
     $str .= "

编辑 删除

";
     print $str;
    }
    $i++;
   }
   $this -> get_pageCode();
 }
 //得到当前页码
 public function get_pageCode()
 {
  $str = "
当前页:".$this -> PageNo." / ".$this -> allPages."   首页 上一页 下一页 末页";
  $str .= "   ";
  print $str;
 }
 //添加留言页面
 public function post_message()
 {
   print "
";
   print "

标题:

";
   print "

内容:

";
   print "

";
 }
 //添加留言
 public function add_message($Subject,$Content)
 {
   $autoid = microtime();  //留言ID
   $autoid = substr(strrchr(str_replace(" ","",$autoid),"."),1);
   $node_top = $this -> root ->appendChild($this -> createElement("record"));
   $node_top -> appendChild($this -> createElement("autoid",$autoid));
   $node_top -> appendChild($this -> createElement("subject",$Subject));
   $node_top -> appendChild($this -> createElement("content",$Content));
   $this -> save(self::file_name);
   echo "<script>alert('添加留言成功!');window.location='".$_SERVER['PHP_SELF']."?PageNo=".$_GET['PageNo']."'</script>";
 }
 //清空留言
 public function clear_message()
 {
   $fp = @ fopen(self::file_name,"w+");
   if($fp)
   {
    $str = "";
    fwrite($fp,$str);
    fclose($fp);
    echo "<script>alert('清空成功!');window.location='".$_SERVER['PHP_SELF']."'</script>";
   }else{
    echo "<script>alert('清空失败!');history.back();</script>";
   }
 }
 //设置节点路径和操作对象ID
 private function set_nodePath($AutoID)
 {
   $xpath = new DOMXPath($this);
   $node_top = $xpath -> query("//record[autoid=$AutoID]");
   return $node_top;
 }
 //删除留言
 public function delete_message($AutoID)
 {
   $node_top = $this -> set_nodePath($AutoID);
   $this -> root -> removeChild($node_top -> item(0));
   $this -> save(self::file_name);
   echo "<script>alert('删除成功!');location='".$_SERVER['PHP_SELF']."?PageNo=".$_GET['PageNo']."'</script>";
 }
 //编辑留言页面
 public function edit_message($AutoID)
 {
   $node_top = $this -> set_nodePath($AutoID);
   //取值方法1
   //$subject = $node_top -> item(0) -> getElementsByTagName("subject") -> item(0) -> nodeValue;
   //$content = $node_top -> item(0) -> getElementsByTagName('content') -> item(0) ->nodeValue;
   //取值方法2
   foreach($node_top -> item(0) -> childNodes as $v)
   {
    $value[] = $v -> textContent; //注意:这里的$value必须这样写成一个数组,否则要出错
   }
   print "
";
   print "

标题:

";
   print "

内容:

";
   print "

"; 
 }
 //编辑留言
 public function save_message($AutoID,$Subject,$Content)
 {
   $node_top = $this -> set_nodePath($AutoID);
   $replace_info[0] = $AutoID;
   $replace_info[1] = $Subject;
   $replace_info[2] = $Content;
   $i = 0;
   foreach($node_top -> item(0) -> childNodes as $v)
   {
    $new_content = $this -> createTextNode($replace_info[$i]);
    $v -> replaceChild($new_content,$v -> lastChild);
    $i++;
   }
   $this -> save(self::file_name);
   echo "<script>alert('编辑成功!');location='".$_SERVER['PHP_SELF']."?PageNo=".$_GET['PageNo']."'</script>";
 }
}
?>
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!