ホームページ >php教程 >php手册 >PHP XML メッセージ ボードの XML データ ストレージの簡単な例

PHP XML メッセージ ボードの XML データ ストレージの簡単な例

WBOY
WBOYオリジナル
2016-06-13 12:21:52893ブラウズ

クラスファイル: _class.xmldb.inc.php

コードをコピー コードは次のとおりです:


class xmldb extends DOMDocument{
var $xmldb;
public function __construct($xmldbname){
$this->xmldb=$xmldbname;
if(!file_exists($this->xmldb)){
$initxmldb = "<メッセージ>";
$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("ニックネーム");
$nicknamenode -> appendChild($this->createTextNode($nickname));
$subnode -> appendChild($nicknamenode);
$contentnode = $this->createElement("コンテンツ");
$contentnode -> appendChild($this->createTextNode($message));
$subnode -> appendChild($contentnode);
$timernode = $this->createElement("タイマー");
$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 > $ページサイズ ? $start $pagesize : $rowscount;

$k = 0;
for($i = $start; $i < $end; $i ){
$rowslist[$k]["ニックネーム"] = $this->getElementsByTagName("ニックネーム")-> ;item($i)->nodeValue;
$rowslist[$k]["コンテンツ"] = $this->getElementsByTagName("コンテンツ")->item($i)->nodeValue;
$rowslist[$k]["タイマー"] = $this->getElementsByTagName("タイマー")->item($i)->nodeValue;
$k ;
}
return $rowslist;
}
public static function splitpage($pageall,$page=1,$urled=null,$strpage = "ページ",$pageaverage = 10){
$pageaverage -= 1;
$page = intval($page >=1 ? $page : 1 );
$page = $page > $ページオール ? $pageall : $ページ;
$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 ="首页 ";
$mess .="上一页 ";
}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 .= " ".$i." ";
else
$mess .= "".$i." ";
}
if ($page < $pageall){
$mess .="
下一页";
$mess .=" 尾页";
}else{

?
ファイル呼び出し:index.php



コードをコピー

コードは次のとおりです:

< ;?php require("_class.xmldb.inc.php"); $xmldb = new xmldb("./my_xmldb.xml") ); if(isset($_POST["btnform1" ])){ $xmldb -> $_POST["ニックネーム"],$_POST["コンテンツ"]);

$pagesize = 3;

$page = ! empty($_GET['page']) : 1; get_node_length("行");
$pagecount = ceil( $rowscount/$pagesize);
$start = ($page-1)*$rowscount > )*$pagesize;
$rowslist = $xmldb -> ; get_message_list($start,$rowscount,$pagesize);

< HTML>


新しいドキュメント < /TITLE> <br> <style type='text/css'><! <BR> --></style> <style type='text/css' bogus="1"> style> <br></HEAD> <br> <div id="messagelist"< ;?php <BR> if(!empty($rowslist)) <BR> { <BR> foreach($rowslist as $key => $value) <br> { " <span> ;(".date(" Y-m-d H:i",$value["Timer"]).")</span></li>"; <br> echo "</p> <li>".$value[ "Content"]."< ;/li></ul><br>"; >splitpage($pagecount,$page,'','page',$pagesize)?></div> <br> </div> ; <BR> <div> <br> ="" method="post" name="form1"> <br> ニックネーム:<input type="text" name="nickname"><br> content"> <br><br> <br>PHP を使用して XML を操作し、ページングを含む簡単な掲示板です (参考のみ) <br> </li></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>声明:</span><div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div></div></div><div class="nphpSytBox"><span>前の記事:<a class="dBlack" title="可変関数パラメータを取得するphp関数" href="https://m.php.cn/ja/faq/206906.html">可変関数パラメータを取得するphp関数</a></span><span>次の記事:<a class="dBlack" title="可変関数パラメータを取得するphp関数" href="https://m.php.cn/ja/faq/206909.html">可変関数パラメータを取得するphp関数</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>関連記事</h2><em><a href="https://m.php.cn/ja/article.html" class="bBlack"><i>続きを見る</i><b></b></a></em><div class="clear"></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-6t+ed+2i-1n-4w" data-ad-client="ca-pub-5902227090019525" data-ad-slot="8966999616"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><ul class="nphpXgwzList"><li><b></b><a href="https://m.php.cn/ja/faq/92233.html" title="Windows7系统下Netbeans+PHPUnit搭建PHP单元测试开发环境及PHPUn" class="aBlack">Windows7系统下Netbeans+PHPUnit搭建PHP单元测试开发环境及PHPUn</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/ja/faq/97151.html" title="程序猿ProMonkey V2.03" class="aBlack">程序猿ProMonkey V2.03</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/ja/faq/94770.html" title="PHP Navigator" class="aBlack">PHP Navigator</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/ja/faq/90182.html" title="php返回数组中指定的一列(php5.5.0默认函数array_column()在php" class="aBlack">php返回数组中指定的一列(php5.5.0默认函数array_column()在php</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/ja/faq/208396.html" title="htmlentitiesとhtmlspecialcharsの違いの詳しい説明" class="aBlack">htmlentitiesとhtmlspecialcharsの違いの詳しい説明</a><div class="clear"></div></li></ul></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="5027754603"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!</p></div><div class="footermid"><a href="https://m.php.cn/ja/about/us.html">私たちについて</a><a href="https://m.php.cn/ja/about/disclaimer.html">免責事項</a><a href="https://m.php.cn/ja/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>