亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
午夜不卡av在线| 亚洲视频综合在线| 欧洲精品在线观看| 成人国产精品免费观看| 国产一区二区美女诱惑| 日本不卡123| 日韩电影免费一区| 蜜臀久久99精品久久久久宅男| 亚洲欧美日韩国产成人精品影院 | 国产精品的网站| 国产性做久久久久久| 精品捆绑美女sm三区| 日韩精品一区二区三区四区视频| 777亚洲妇女| 精品国产成人系列| 国产视频一区在线观看| 国产精品成人在线观看| 亚洲欧美偷拍三级| 亚洲一二三区视频在线观看| 日韩av电影免费观看高清完整版在线观看 | 一区二区三区日韩| 午夜精品久久久久影视| 奇米影视在线99精品| 国产91精品露脸国语对白| 不卡的电视剧免费网站有什么| 91视频观看免费| 欧美一区二区三区在线电影| 精品国产亚洲一区二区三区在线观看| 久久蜜臀精品av| 一区二区三区日韩在线观看| 蜜桃av噜噜一区二区三区小说| 国产精品2024| 欧美日韩一区高清| 久久久午夜电影| 亚洲午夜久久久久久久久久久| 美女视频一区在线观看| av电影天堂一区二区在线观看| 欧美无砖专区一中文字| 成人免费在线观看入口| 亚洲午夜在线观看视频在线| 精品无人区卡一卡二卡三乱码免费卡| 波多野洁衣一区| 日韩美一区二区三区| 国产精品久久久久久久裸模 | 欧美肥胖老妇做爰| 久久精品人人做人人综合| 亚洲制服丝袜一区| 国产激情偷乱视频一区二区三区| 在线亚洲+欧美+日本专区| 久久久久久久久99精品| 亚洲午夜激情网站| 色综合天天综合狠狠| 国产乱码字幕精品高清av| 成人午夜视频免费看| 欧美人狂配大交3d怪物一区| 欧美激情在线观看视频免费| 日韩电影在线免费观看| 99re这里只有精品视频首页| 久久久99免费| 久久国产尿小便嘘嘘尿| 欧美色综合网站| 一区二区三区在线免费观看| 成人综合在线网站| 26uuu欧美| 毛片一区二区三区| 欧美高清hd18日本| 亚洲一区二区三区四区在线 | 欧美日韩一区二区电影| 日韩一区中文字幕| 成人v精品蜜桃久久一区| 久久久精品国产免大香伊| 免费观看成人鲁鲁鲁鲁鲁视频| 91福利国产精品| 一区二区三区在线视频免费观看 | 日本伦理一区二区| 一区在线观看视频| 波波电影院一区二区三区| 国产精品电影一区二区三区| 国产精品一区免费在线观看| 久久亚洲综合色一区二区三区| 美女视频网站黄色亚洲| 欧美电影免费观看高清完整版在线| 日本在线不卡视频一二三区| 欧美一区二区三区免费在线看| 亚洲国产精品一区二区www在线| 色综合久久久网| 亚洲夂夂婷婷色拍ww47| 欧美日韩国产经典色站一区二区三区| 亚洲综合小说图片| 欧美一区三区四区| 国产寡妇亲子伦一区二区| 国产亚洲精品7777| 99re这里只有精品首页| 亚洲一级二级三级| 91精品午夜视频| 国产福利一区二区三区视频在线 | 日韩中文字幕不卡| 欧美一级午夜免费电影| 精品中文字幕一区二区小辣椒 | 国产不卡视频在线播放| 中文在线一区二区| 色婷婷综合久久久久中文一区二区| 一区二区三区av电影| 91精品国产一区二区| 国产高清在线精品| 一区二区三区高清不卡| 日韩一区二区免费视频| 国产不卡视频在线播放| 亚洲国产sm捆绑调教视频| 欧美α欧美αv大片| 99re热这里只有精品免费视频| 一区二区三区精品久久久| 日韩一级高清毛片| kk眼镜猥琐国模调教系列一区二区| 亚洲国产精品尤物yw在线观看| 欧美v国产在线一区二区三区| 不卡的电影网站| 老司机免费视频一区二区| 亚洲欧洲99久久| 久久久噜噜噜久久中文字幕色伊伊| 91视频www| 国产老妇另类xxxxx| 亚洲成a人片综合在线| 国产精品色呦呦| 日韩精品一区二区在线| 欧日韩精品视频| a级精品国产片在线观看| 男人的j进女人的j一区| 亚洲精品国产精品乱码不99| 久久久国际精品| 日韩视频免费观看高清完整版在线观看 | 亚洲你懂的在线视频| 2023国产精品| 日韩一级成人av| 欧美午夜电影在线播放| 91在线免费看| 成人午夜电影久久影院| 久久狠狠亚洲综合| 日韩不卡一二三区| 亚洲成人免费在线观看| 亚洲精品免费播放| 日韩美女视频一区二区| 国产精品剧情在线亚洲| 久久精品水蜜桃av综合天堂| 欧美成人乱码一区二区三区| 欧美性欧美巨大黑白大战| 91香蕉视频黄| 91免费国产在线| 色综合久久88色综合天天免费| 国产美女精品一区二区三区| 久久99精品久久久久久动态图| 五月天激情综合| 日韩电影在线一区二区三区| 亚洲成av人片在线观看无码| 亚洲一二三专区| 天天色综合天天| 日本麻豆一区二区三区视频| 日韩黄色小视频| 日本不卡的三区四区五区| 日韩成人午夜精品| 麻豆精品一区二区| 国产在线精品不卡| 国产成人免费9x9x人网站视频| 国产一区二区不卡在线| 国产精品一二三在| proumb性欧美在线观看| 日本高清免费不卡视频| 欧美三片在线视频观看| 91精品国产综合久久婷婷香蕉| 日韩无一区二区| 国产日韩欧美综合一区| 国产精品电影一区二区三区| 亚洲欧美区自拍先锋| 亚洲成人av资源| 青青草97国产精品免费观看无弹窗版| 蜜桃视频一区二区三区| 国产精品一区一区三区| 97久久超碰国产精品电影| 欧美性大战久久| 精品国内二区三区| 国产精品久久久久久户外露出| 亚洲最大色网站| 久久er精品视频| 99免费精品在线观看| 欧美视频一二三区| 精品88久久久久88久久久| 自拍偷拍国产精品| 日韩精品国产精品| 大美女一区二区三区| 色哦色哦哦色天天综合| 欧美一区二区三区成人| 国产精品激情偷乱一区二区∴| 亚洲福利视频导航| 成人一级黄色片| 欧美精品色一区二区三区| 国产精品少妇自拍| 蜜桃在线一区二区三区| 色婷婷激情一区二区三区| www国产成人免费观看视频 深夜成人网| 中文字幕中文乱码欧美一区二区|