亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dbabase.php

?? PhpWiki是sourceforge的一個開源項目
?? PHP
?? 第 1 頁 / 共 2 頁
字號:
<?php rcs_id('$Id: dbaBase.php,v 1.21 2005/04/01 16:05:48 rurban Exp $');require_once('lib/WikiDB/backend.php');// FIXME:padding of data?  Is it needed?  dba_optimize() seems to do a good// job at packing 'gdbm' (and 'db2') databases./* * Tables: * *  page: *   Index: pagename *  Values: latestversion . ':' . flags . ':' serialized hash of page meta data *           Currently flags = 1 if latest version has empty content. * *  version *   Index: version:pagename *   Value: serialized hash of revision meta data, including: *          + quasi-meta-data %content * *  links *   index: 'o' . pagename *   value: serialized list of pages (names) which pagename links to. *   index: 'i' . pagename *   value: serialized list of pages which link to pagename * *  TODO: *  Don't keep tables locked the whole time * *  index table with: *   list of pagenames for get_all_pages *   mostpopular list? *   RecentChanges support:  *     lists of most recent edits (major, minor, either). *    * *  Separate hit table, so we don't have to update the whole page entry *  each time we get a hit.  (Maybe not so important though...). */     require_once('lib/DbaPartition.php');class WikiDB_backend_dbaBaseextends WikiDB_backend{    function WikiDB_backend_dbaBase (&$dba) {        $this->_db = &$dba;        // TODO: page and version tables should be in their own files, probably.        // We'll pack them all in one for now (testing).        // 2004-07-09 10:07:30 rurban: It's fast enough this way.        $this->_pagedb = new DbaPartition($dba, 'p');        $this->_versiondb = new DbaPartition($dba, 'v');        $linkdbpart = new DbaPartition($dba, 'l');        $this->_linkdb = new WikiDB_backend_dbaBase_linktable($linkdbpart);        $this->_dbdb = new DbaPartition($dba, 'd');    }    function sortable_columns() {        return array('pagename','mtime'/*,'author_id','author'*/);    }        function close() {        $this->_db->close();    }    function optimize() {        $this->_db->optimize();    }    function sync() {        $this->_db->sync();    }    function rebuild() {        $this->_linkdb->rebuild();        $this->optimize();    }        function check() {        return $this->_linkdb->check();    }    function get_pagedata($pagename) {        $result = $this->_pagedb->get($pagename);        if (!$result)            return false;        list(,,$packed) = explode(':', $result, 3);        $data = unserialize($packed);        return $data;    }                function update_pagedata($pagename, $newdata) {        $result = $this->_pagedb->get($pagename);        if ($result) {            list($latestversion,$flags,$data) = explode(':', $result, 3);            $data = unserialize($data);        }        else {            $latestversion = $flags = 0;            $data = array();        }                foreach ($newdata as $key => $val) {            if (empty($val))                unset($data[$key]);            else                $data[$key] = $val;        }        $this->_pagedb->set($pagename,                            (int)$latestversion . ':'                            . (int)$flags . ':'                            . serialize($data));    }    function get_latest_version($pagename) {        return (int) $this->_pagedb->get($pagename);    }    function get_previous_version($pagename, $version) {        $versdb = &$this->_versiondb;        while (--$version > 0) {            if ($versdb->exists($version . ":$pagename"))                return $version;        }        return false;    }    //check $want_content    function get_versiondata($pagename, $version, $want_content=false) {        $data = $this->_versiondb->get((int)$version . ":$pagename");        if (empty($data)) return false;        else {            $data = unserialize($data);            if (!$want_content)                $data['%content'] = !empty($data['%content']);            return $data;        }    }            /**     * See ADODB for a better delete_page(), which can be undone and is seen in RecentChanges.     * See backend.php     */    //function delete_page($pagename) { $this->purge_page($pagename);  }    /**     * Completely delete page from the database.     */    function purge_page($pagename) {        $pagedb = &$this->_pagedb;        $versdb = &$this->_versiondb;        $version = $this->get_latest_version($pagename);        while ($version > 0) {            $versdb->set($version-- . ":$pagename", false);        }        $pagedb->set($pagename, false);        $this->set_links($pagename, false);    }    function rename_page($pagename, $to) {        $result = $this->_pagedb->get($pagename);        if ($result) {            list($version,$flags,$data) = explode(':', $result, 3);            $data = unserialize($data);        }        else            return false;        $this->_pagedb->delete($pagename);        $data['pagename'] = $to;        $this->_pagedb->set($to,                            (int)$version . ':'                            . (int)$flags . ':'                            . serialize($data));        // move over the latest version only        $pvdata = $this->get_versiondata($pagename, $version, true);        $this->set_versiondata($to, $version, $pvdata);	return true;    }                /**     * Delete an old revision of a page.     */    function delete_versiondata($pagename, $version) {        $versdb = &$this->_versiondb;        $latest = $this->get_latest_version($pagename);        assert($version > 0);        assert($version <= $latest);                $versdb->set((int)$version . ":$pagename", false);        if ($version == $latest) {            $previous = $this->get_previous_version($version);            if ($previous> 0) {                $pvdata = $this->get_versiondata($pagename, $previous);                $is_empty = empty($pvdata['%content']);            }            else                $is_empty = true;            $this->_update_latest_version($pagename, $previous, $is_empty);        }    }    /**     * Create a new revision of a page.     */    function set_versiondata($pagename, $version, $data) {        $versdb = &$this->_versiondb;        $versdb->set((int)$version . ":$pagename", serialize($data));        if ($version > $this->get_latest_version($pagename))            $this->_update_latest_version($pagename, $version, empty($data['%content']));    }    function _update_latest_version($pagename, $latest, $flags) {        $pagedb = &$this->_pagedb;        $pdata = $pagedb->get($pagename);        if ($pdata)            list(,,$pagedata) = explode(':',$pdata,3);        else            $pagedata = serialize(array());                $pagedb->set($pagename, (int)$latest . ':' . (int)$flags . ":$pagedata");    }    function numPages($include_empty=false, $exclude=false) {        $pagedb = &$this->_pagedb;        $count = 0;        for ($page = $pagedb->firstkey(); $page!== false; $page = $pagedb->nextkey()) {            if (!$page) {                assert(!empty($page));                continue;            }            if ($exclude and in_array($page, $exclude)) continue;             if (!$include_empty) {            	if (!($data = $pagedb->get($page))) continue;                list($latestversion,$flags,) = explode(':', $data, 3);                unset($data);                if ($latestversion == 0 || $flags != 0)                    continue;   // current content is empty             }            $count++;        }        return $count;    }    function get_all_pages($include_empty=false, $sortby=false, $limit=false, $exclude=false) {        $pagedb = &$this->_pagedb;        $pages = array();        for ($page = $pagedb->firstkey(); $page!== false; $page = $pagedb->nextkey()) {            if (!$page) {                assert(!empty($page));                continue;            }            if ($exclude and in_array($page, $exclude)) continue;             if ($limit and count($pages) > $limit) break;            if (!$include_empty) {            	if (!($data = $pagedb->get($page))) continue;                list($latestversion,$flags,) = explode(':', $data, 3);                unset($data);                if ($latestversion == 0 || $flags != 0)                    continue;   // current content is empty             }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久www成人免费无遮挡大片| 国产一区视频导航| 国产欧美日韩久久| 精品国产百合女同互慰| 日韩一区二区三区视频在线观看| 91黄色免费观看| 色丁香久综合在线久综合在线观看 | 91影视在线播放| 欧美视频在线一区二区三区| 视频一区二区中文字幕| 久久久99久久精品欧美| 国产原创一区二区| 久久精品久久精品| 日韩影视精彩在线| 欧美久久一二三四区| 全国精品久久少妇| 国产乱码精品一区二区三区忘忧草| 亚洲欧美另类小说视频| 国产精品久久久久久久久果冻传媒| 精品成人私密视频| 成人99免费视频| 欧美日韩中文精品| 一区二区三区四区在线播放 | 精品成人在线观看| 波多野结衣中文字幕一区| 中文字幕中文字幕一区二区| 免费看日韩精品| 亚洲三级电影全部在线观看高清| 中文字幕亚洲一区二区va在线| 国产精品视频线看| 国产午夜亚洲精品不卡| 国产精品色噜噜| 一区二区三区在线高清| 琪琪一区二区三区| 成人性生交大合| 成人一区在线看| 精品免费一区二区三区| 国产成人免费在线视频| 2019国产精品| 亚洲制服丝袜av| xnxx国产精品| 亚洲一区视频在线| 精品av综合导航| 亚洲美女少妇撒尿| 激情五月婷婷综合| 色综合激情五月| 精品99久久久久久| 亚洲一区二区在线观看视频 | 国产成人免费在线观看不卡| 欧洲一区二区av| 国产日韩欧美综合在线| 婷婷综合五月天| av中文字幕亚洲| 日韩欧美一二区| 一区二区三区四区蜜桃| 国产一区二区三区四区五区入口| 色八戒一区二区三区| 26uuu色噜噜精品一区| 亚洲欧美经典视频| 国产ts人妖一区二区| 91精品国产入口在线| 一区二区三区美女视频| 国产精品一区二区男女羞羞无遮挡| 欧美午夜电影网| 亚洲另类在线视频| 成人黄色在线看| 久久蜜臀中文字幕| 日韩成人一级片| 欧美日韩亚洲国产综合| 一级女性全黄久久生活片免费| 国产91丝袜在线播放九色| 日韩免费观看高清完整版| 亚洲成人在线免费| 欧美最猛性xxxxx直播| 亚洲欧洲美洲综合色网| 99综合影院在线| 国产精品情趣视频| 成人动漫精品一区二区| 中文字幕不卡在线观看| 处破女av一区二区| 中文字幕乱码亚洲精品一区| 国产精品1区二区.| 国产欧美精品日韩区二区麻豆天美| 精品一区二区免费在线观看| 日韩一级大片在线观看| 免费欧美在线视频| 精品日韩欧美在线| 精品一区二区三区视频| 精品美女被调教视频大全网站| 奇米一区二区三区av| 日韩三级在线免费观看| 国内偷窥港台综合视频在线播放| 精品国产一区a| 国产iv一区二区三区| 国产精品系列在线| 色老汉一区二区三区| 亚洲国产精品一区二区尤物区| 欧美日韩美少妇| 久久国产精品露脸对白| 2023国产一二三区日本精品2022| 国产高清在线精品| 日韩毛片视频在线看| 欧美三级日韩三级| 三级欧美在线一区| 2024国产精品| 91免费在线播放| 日本强好片久久久久久aaa| 久久综合色播五月| 91免费国产视频网站| 午夜精品成人在线| 国产亚洲欧美激情| 色婷婷av一区二区三区gif| 偷拍日韩校园综合在线| 国产日韩成人精品| 欧美日韩免费视频| 国产精品一线二线三线| 一区二区三区在线视频免费| 在线观看91av| 成人高清免费观看| 日本系列欧美系列| 综合激情成人伊人| 欧美电影免费观看完整版| www.欧美色图| 麻豆91精品91久久久的内涵| 国产欧美一区二区精品秋霞影院| 99久久99久久精品免费观看| 日本不卡不码高清免费观看| 国产精品高潮久久久久无| 日韩午夜在线观看视频| 91在线观看高清| 韩日欧美一区二区三区| 亚洲国产视频一区二区| 中文字幕av不卡| 欧美变态tickling挠脚心| 91久久精品日日躁夜夜躁欧美| 国产在线精品免费| 日韩成人午夜精品| 亚洲一区二区三区爽爽爽爽爽| 国产日本亚洲高清| 精品久久人人做人人爽| 717成人午夜免费福利电影| 97久久人人超碰| 成人毛片视频在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 天天色天天操综合| 亚洲一区二区三区四区不卡| 亚洲天堂成人在线观看| 久久久国产精品午夜一区ai换脸| 4438x成人网最大色成网站| 91久久精品一区二区| 99久久精品国产一区二区三区| 国产成人在线免费观看| 国产专区欧美精品| 久久国产人妖系列| 久久精品国产999大香线蕉| 日本va欧美va精品| 日韩电影在线观看网站| 天天操天天综合网| 日本成人在线网站| 视频在线观看国产精品| 午夜精品免费在线观看| 天堂一区二区在线免费观看| 性感美女久久精品| 日韩电影在线看| 美洲天堂一区二卡三卡四卡视频| 日本欧美一区二区三区乱码| 青青青伊人色综合久久| 老司机精品视频一区二区三区| 美女国产一区二区三区| 久草中文综合在线| 国产成人精品综合在线观看 | 国产午夜亚洲精品理论片色戒 | 国产精品一区在线| 国产美女视频91| 成人av片在线观看| 色丁香久综合在线久综合在线观看| 欧美性色欧美a在线播放| 欧美久久久久久蜜桃| 精品国产百合女同互慰| 国产精品美日韩| 1024亚洲合集| 香蕉影视欧美成人| 国产精品一区在线观看乱码| 99re热这里只有精品免费视频| 欧美午夜不卡视频| 欧美大片一区二区| 国产精品高潮呻吟| 日韩不卡一二三区| 成人激情综合网站| 欧美主播一区二区三区| 日韩欧美久久久| 中文字幕中文字幕一区二区| 天堂资源在线中文精品| 国产精品一区在线观看乱码| 91福利视频网站| 久久久久久综合| 午夜精品免费在线| 成人性生交大片免费看在线播放 | 色吧成人激情小说| 2020国产精品|