php xml 留言板,php+xml留言板实例教程二

这是一个xml 解析类

";

$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 = "

留言标题:$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 "";

}

//清空留言

public function clear_message()

{

$fp = @ fopen(self::file_name,"w+");

if($fp)

{

$str = "";

fwrite($fp,$str);

fclose($fp);

echo "";

}else{

echo "";

}

}

//设置节点路径和操作对象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 "";

}

//编辑留言页面

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 "

内容:$value[2]";

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 "";

}

}

?>

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

相关文章

相关视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值