Heim > php教程 > PHP源码 > Hauptteil

php+xml留言板实例教程二

WBOY
Freigeben: 2016-06-08 17:30:17
Original
4183 Leute haben es durchsucht
<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>";
 }
}
?>
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!