电脑安全

您当前的位置:主页 > 电脑安全 >

php+xml留言板实例教程二-网络编程

来源:[db:来源]标题:   留言    编辑:电脑技术全能网 时间:2019-09-22 12:31

原标题:php+xml留言板实例教程二-网络编程
   这是一个xml 剖析类<?phpclass 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 = "<?xml version='1.0' encoding='utf-8' ?><root />";$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 < 1 || !is_numeric($this -> 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 <= $end_num){$autoid = $v -> getElementsByTagName("autoid") -> item(0) -> nodeValue;$subject = $v -> getElementsByTagName("subject") -> item(0) -> nodeValue;$content = $v -> getElementsByTagName("content") -> item(0) -> nodeValue;$str = "<div class='msgInfo'><p class='msgT'><span>留言题目:</span>$subject</p><p class='msgC'><span>留言内容:</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content</p>";$str .= "<p class='msgCMD'><a href='?Action=edit_message&AutoID=$autoid&PageNo=$_GET[PageNo]'>编纂</a> <a href='?Action=delete_message&AutoID=$autoid&PageNo=$_GET[PageNo]'>删除</a></p></div>";print $str;}$i++;}$this -> get_pageCode();}//失掉以后页码public function get_pageCode(){$str = "<div class='pageCode'>以后页:".$this -> PageNo." / ".$this -> allPages."&nbsp;&nbsp;&nbsp;<a href='?PageNo=1'>首页</a>&nbsp;<a href='?PageNo=".($this->PageNo - 1)."'>上一页</a>&nbsp;<a href='?PageNo=".($this->PageNo + 1)."'>下一页</a>&nbsp;<a href='?PageNo=".($this->allPages)."'>末页</a>";$str .= "&nbsp;&nbsp;&nbsp;<input type='text' size='2' id='goPage' value='".$this->PageNo."'><input type='button' value='GO' onclick=window.location='?PageNo='+document.getElementById('goPage').value>";print $str;}//增加留言页面public function post_message(){print "<div><form method='post' action='?Action=add_message&PageNo=$_GET[PageNo]'>";print "<p>题目:<input type='text' name='Subject' size='50' /></p>";print "<p>内容:<textarea name='Content' cols='50' rows='5'></textarea></p>";print "<p><input type='submit' value='增加留言'></p></div></form>";}//增加留言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 = "<?xml version='1.0' encoding='utf-8' ?><root />";fwrite($fp,$str);fclose($fp);echo "<script>alert('清空胜利!');window.location='".$_SERVER['PHP_SELF']."'</script>";}else{echo "<script>alert('清空失利!');history.back();</script>";}}//设置节点门路和操纵工具IDprivate 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;//取值方式2foreach($node_top -> item(0) -> childNodes as $v){$value[] = $v -> textContent; //留神:这里的$value必需如许写成一个数组,不然要犯错}print "<div><form method='post' action='?Action=save_message&AutoID=$AutoID&PageNo=$_GET[PageNo]'>";print "<p>题目:<input type='text' name='Subject' value=$value[1] size='50' /></p>";print "<p>内容:<textarea name='Content' cols='50' rows='5'>$value[2]</textarea></p>";print "<p><input type='submit' value='编纂留言'></p></div></form>";}//编纂留言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>";}}?>

上一篇:php中关于sql数据库数据的问题-网络编程

下一篇:没有了