最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php xml留言板 xml存儲數(shù)據(jù)的簡單例子

 更新時間:2009年08月24日 01:46:40   作者:  
php xml留言板 xml存儲數(shù)據(jù)的簡單例子 php操作xml的簡單留言板,帶分頁,僅供參考
類文件 : _class.xmldb.inc.php
復(fù)制代碼 代碼如下:

<?php
class xmldb extends DOMDocument{
    var $xmldb;
    public function __construct($xmldbname){
        $this->xmldb=$xmldbname;
        if(!file_exists($this->xmldb)){
            $initxmldb = "<?xml version=\"1.0\" encoding=\"utf-8\"?><Message></Message>";
            $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("Nickname");
        $nicknamenode -> appendChild($this->createTextNode($nickname));
        $subnode -> appendChild($nicknamenode);
        $contentnode = $this->createElement("Content");
        $contentnode -> appendChild($this->createTextNode($message));
        $subnode -> appendChild($contentnode);
        $timernode = $this->createElement("Timer");
        $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 > $pagesize ? $start+$pagesize : $rowscount;

        $k = 0;
        for($i = $start; $i < $end; $i++){
            $rowslist[$k]["Nickname"] = $this->getElementsByTagName("Nickname")->item($i)->nodeValue;
            $rowslist[$k]["Content"] = $this->getElementsByTagName("Content")->item($i)->nodeValue;
            $rowslist[$k]["Timer"] = $this->getElementsByTagName("Timer")->item($i)->nodeValue;
            $k++;
        }
        return $rowslist;
    }
    public static function splitpage($pageall,$page=1,$urled=null,$strpage = "page",$pageaverage = 10){
            $pageaverage -= 1;
            $page = intval($page >=1 ? $page : 1 );
            $page = $page > $pageall ? $pageall : $page;
            $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 ="<a href="".$urled.$strpage."=1" href="".$urled.$strpage."=1">首頁</a>&nbsp;";
                $mess .="<a href="".$urled.$strpage."=".($page-1)."" href="".$urled.$strpage."=".($page-1)."">上一頁&nbsp;</a>";
            }else{
                $mess ="首頁&nbsp;";
                $mess .="上一頁&nbsp;";
            }
            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 .= "<a href="".$urled.$strpage."=".$i."" href="".$urled.$strpage."=".$i."">".$i."</a> ";
                else
                    $mess .= "".$i." ";
            }
            if ($page < $pageall){
                $mess .="&nbsp;<a href="".$urled.$strpage."=".($page+1)."" href="".$urled.$strpage."=".($page+1)."">下一頁</a>";
                $mess .="&nbsp;<a href="".$urled.$strpage."=".$pageall."" href="".$urled.$strpage."=".$pageall."">尾頁</a>";
            }else{
                $mess .="&nbsp;下一頁";
                $mess .="&nbsp;尾頁";
            }
        return $mess;
    }
}
?>

調(diào)用文件 : index.php
復(fù)制代碼 代碼如下:

<?php
require("_class.xmldb.inc.php");
$xmldb = new xmldb("./my_xmldb.xml");
if(isset($_POST["btnform1"])){
    $xmldb -> insert_message($_POST["nickname"],$_POST["content"]);
}
$pagesize        = 3;
$page            = !empty($_GET['page']) ? intval($_GET['page']) : 1;
$rowscount        = $xmldb -> get_node_length("Rows");
$pagecount        = ceil($rowscount/$pagesize);
$start            = ($page-1)*$pagesize > $rowscount ? $rowscount : ($page-1)*$pagesize;
$rowslist = $xmldb -> get_message_list($start,$rowscount,$pagesize);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE> New Document </TITLE>
    <style type='text/css'><!--
        #messagelist ul li{ float:left;list-style-type:none; }

--></style><style type='text/css' bogus="1">        #messagelist ul li{ float:left;list-style-type:none; }
    </style>
</HEAD>
<BODY>
    <div id="messagelist">
    <?php
        if(!empty($rowslist))
        {
            foreach($rowslist as $key => $value)
            {
                echo "<ul><li>".$value["Nickname"]." <span>(".date("Y-m-d H:i",$value["Timer"]).")</span></li>";
                echo "<li>".$value["Content"]."</li></ul><br>";
            }
        }
    ?>
        <div><?=$xmldb -> splitpage($pagecount,$page,'','page',$pagesize)?></div>
    </div>
    <div>
        <form action="" method="post" name="form1">
            昵稱:<input type="text" name="nickname"><br>
            內(nèi)容:<textarea name="content">

php操作xml的簡單留言板,帶分頁,僅供參考

相關(guān)文章

  • 一個比較不錯的PHP日歷類分享

    一個比較不錯的PHP日歷類分享

    這篇文章主要介紹了一個比較不錯的PHP日歷類分享,本文直接給出了實現(xiàn)的類代碼和使用方法示例,需要的朋友可以參考下
    2014-11-11
  • ThinkPHP5框架實現(xiàn)簡單的批量查詢功能示例

    ThinkPHP5框架實現(xiàn)簡單的批量查詢功能示例

    這篇文章主要介紹了ThinkPHP5框架實現(xiàn)簡單的批量查詢功能,結(jié)合實例形式分析了thinkPHP5框架使用原生SQL語句查詢、批量查詢、快速查詢、聚合查詢等操作實現(xiàn)技巧,需要的朋友可以參考下
    2018-06-06
  • CodeIgniter多語言實現(xiàn)方法詳解

    CodeIgniter多語言實現(xiàn)方法詳解

    這篇文章主要介紹了CodeIgniter多語言實現(xiàn)方法,結(jié)合實例形式較為詳細(xì)的分析了CodeIgniter實現(xiàn)多語言的具體步驟、實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2016-01-01
  • 使用session upload_progress實現(xiàn)文件包含實例詳解

    使用session upload_progress實現(xiàn)文件包含實例詳解

    這篇文章主要為大家介紹了使用session upload_progress實現(xiàn)文件包含實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Zend Framework入門教程之Zend_Session會話操作詳解

    Zend Framework入門教程之Zend_Session會話操作詳解

    這篇文章主要介紹了Zend Framework入門教程之Zend_Session會話操作,結(jié)合實例形式詳細(xì)分析了Zend_Session會話操作的具體使用技巧,需要的朋友可以參考下
    2016-12-12
  • thinkPHP5.0框架獨立配置與動態(tài)配置方法

    thinkPHP5.0框架獨立配置與動態(tài)配置方法

    這篇文章主要介紹了thinkPHP5.0框架獨立配置與動態(tài)配置方法,結(jié)合實例形式分析了thinkPHP5.0框架獨立配置與靜態(tài)配置的功能、實現(xiàn)技巧與相關(guān)注意事項,需要的朋友可以參考下
    2017-03-03
  • php面向?qū)ο笈c面向過程兩種方法給圖片添加文字水印

    php面向?qū)ο笈c面向過程兩種方法給圖片添加文字水印

    使用許多編程語言時,你通常只能使用面向?qū)ο蠡蛎嫦蜻^程二者之一的編程方式。而在PHP中,你可以自由選擇或混用,下面通過面向?qū)ο笈c面向過程兩種方法給圖片添加水印,需要的朋友可以參考下
    2015-08-08
  • laravel csrf驗證總結(jié)

    laravel csrf驗證總結(jié)

    這篇文章主要介紹了laravel csrf驗證總結(jié),csrf是laravel表單提交和ajax請求為了安全設(shè)置的機(jī)制,有感興趣的同學(xué)可以深入學(xué)習(xí)下
    2021-03-03
  • PHP中使用sleep函數(shù)實現(xiàn)定時任務(wù)實例分享

    PHP中使用sleep函數(shù)實現(xiàn)定時任務(wù)實例分享

    這篇文章主要介紹了PHP中使用sleep函數(shù)實現(xiàn)定時任務(wù)實例分享,本文給出了多個使用sleep的例子,本文還可以作為學(xué)習(xí)sleep函數(shù)的教程,需要的朋友可以參考下
    2014-08-08
  • yii2 數(shù)據(jù)庫讀寫分離配置示例

    yii2 數(shù)據(jù)庫讀寫分離配置示例

    本篇文章主要介紹了yii2 數(shù)據(jù)庫讀寫分離配置示例,數(shù)據(jù)庫讀寫分離是在網(wǎng)站遇到性能瓶頸的時候最先考慮優(yōu)化的步驟,有興趣的可以了解一下。
    2017-02-02

最新評論

天气| 贺州市| 阿尔山市| 观塘区| 犍为县| 玛曲县| 甘南县| 即墨市| 遵义县| 汶川县| 定西市| 临西县| 台安县| 崇文区| 牟定县| 韩城市| 神木县| 麻阳| 和龙市| 安阳县| 怀仁县| 乌什县| 信宜市| 太和县| 兴安盟| 黎平县| 通化市| 谢通门县| 南部县| 庄河市| 仁怀市| 鄂托克旗| 普格县| 和龙市| 旺苍县| 无棣县| 八宿县| 平度市| 丹寨县| 鹿泉市| 九龙坡区|