那是多个xml 分析类,方今使用的时候开掘成点时候寻觅的东西过于大的时候
分类:热门资源

那是二个xml 剖判类

原头阵布过三个退出数据库的分页类,近日应用的时候发掘成些时候寻觅的事物过于大的时候,选择url传递参数的方法,恐怕会有必然的影响依旧叫已知的bug,此番做了有的扩大,同不常候相配了原先的方式,使用方面很简短的,只须要多设置贰个参数就足以了代码如下:
复制代码 代码如下:

?phpclass Message_XML extends DOMDocument{const file_name = e:/myphp/xmldom/xml/message.xml;private $root; //根节点private $PageNo; //当前页private $allNum; //记录总的数量private $PageSize; //页大小private $allPages; //总页数public function __construct(){parent::__construct();if(!file_exists(self::file_name)){$xmlStr = ?xml version='1.0' encoding='utf-8' ?root /;$this - loadXML($xmlStr);$this - save(self::file_name);}else{$this - load(self::file_name);}$this - root = $this - documentElement;$this - get_pagemsg(State of Qatar;}//获得页消息private function get_pagemsg(卡塔尔{$this - PageSize = 3; //页大小$allNode = $this - getElementsByTagName(record卡塔尔;$this - allNum = $allNode - length; //记录总量$this - allPages = ceil($this - allNum / $this - PageSizeState of Qatar; //总页数$this - PageNo = $_GET[PageNo];if($this - PageNo 1 || !is_numeric($this - PageNo卡塔尔国State of Qatar{$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(recordState of Qatar;$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(0State of Qatar - nodeValue;$content = $v - getElementsByTagName(content卡塔尔(قطر‎ - item(0State of Qatar - nodeValue;$str = div class='msgInfo'p class='msgT'span留言标题:/span$subject/pp class='msgC'span留言内容:/spanbr /br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;$content/p;$str .= p class='msgCMD'a href='?Action=edit_messageAutoID=$autoidPageNo=$_GET[PageNo]'编辑/a a href='?Action=delete_messageAutoID=$autoidPageNo=$_GET[PageNo]'删除/a/p/div;print $str;}$i++;}$this - get_pageCode(State of Qatar;}//得到当前页码public function get_pageCode(){$str = div class='pageCode'当前页:.$this - PageNo. / .$this - allPages.nbsp;nbsp;nbsp;a href='?PageNo=1'首页/anbsp;a href='?PageNo=.($this-PageNo - 1).'/anbsp;a href='?PageNo=.($this-PageNo

/**
* 效率: 分页类,根据提供的数额总的数量和页面大小
* 成立日期:Fri Apr 20 16:45:21 CST 2007
* 最后更新:
* 作者: sanshi
*/

  • 1卡塔尔(قطر‎.'/anbsp;a href='?PageNo=.($this-allPagesState of Qatar.'末页/a;$str .= nbsp;nbsp;nbsp;input type='text' size='2' id='goPage' value='.$this-PageNo.'input type='button' value='GO' onclick=window.location='?PageNo='+document.getElementById('goPage'State of Qatar.value;print $str;}//增添留言页面public function post_message(){print divform method='post' action='?Action=add_messagePageNo=$_GET[PageNo]';print p标题:input type='text' name='Subject' size='50' //p;print p内容:textarea name='Content' cols='50' rows='5'/textarea/p;print pinput type='submit' value='增添留言'/p/div/form;}//加多留言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 scriptalert('增多留言成功!'State of Qatar;window.location='.$_SERVER['PHP_SELF'].?PageNo=.$_GET['PageNo'].'/script;}//清空留言public function clear_message(){$fp = @ fopen(self::file_name,w+卡塔尔;if($fp卡塔尔{$str = ?xml version='1.0' encoding='utf-8' ?root /;fwrite($fp,$strState of Qatar;fclose($fpState of Qatar;echo scriptalert('清空成功!'State of Qatar;window.location='.$_SERVER['PHP_SELF'].'/script;}else{echo scriptalert('清空战败!'卡塔尔;history.back(卡塔尔国;/script;}}//设置节点路线和操作对象IDprivate 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 scriptalert('删除成功!'卡塔尔(قطر‎;location='.$_SERVER['PHP_SELF'].?PageNo=.$_GET['PageNo'].'/script;}//编辑留言页面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(0State of Qatar - getElementsByTagName('content'卡塔尔(قطر‎ - item(0卡塔尔(قطر‎-nodeValue;//取值方法2foreach($node_top - item(0) - childNodes as $v){$value[] = $v - textContent; //注意:这里的$value必得那样写成一个数组,否则要出错}print divform method='post' action='?Action=save_messageAutoID=$AutoIDPageNo=$_GET[PageNo]';print p标题:input type='text' name='Subject' value=$value[1] size='50' //p;print p内容:textarea name='Content' cols='50' rows='5'$value[2]/textarea/p;print pinput type='submit' value='编辑留言'/p/div/form;}//编辑留言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 scriptalert('编辑成功!'State of Qatar;location='.$_SERVER['PHP_SELF'].?PageNo=.$_GET['PageNo'].'/script;}}?

class pagination
{
    var $result = array();
    var $pVar = "myp";//page参数分页记数
    var $urlParamStr = ""; //页面包车型地铁具有参数
    var $sqlMoveNumber = 0; //数据的偏移量
    var $is_post = false;

    public function pagination()
    {

    }
    public function set($sum,$pageSize,$page="",$is_post = false)
    {
        $this->is_post = $is_post;
        $this->pVar = defined('PAGE_BAR') ? PAGE_BAR : 'myp' ;
        $url = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
        //计算出总页数
        $curPage = $this->getCurPage();

        $temp['sumPage'] = ceil($sum/$pageSize);
        //纠正了,页码超出的bug
        if($curPage>$temp['sumPage']) $curPage=$temp['sumPage'];
        $temp['curPage'] = $curPage;
        $temp['nextPage'] = $temp['sumPage'] > $curPage ? ($curPage+1) : $temp['sumPage'];
        $temp['upPage'] = $curPage >1 ? $curPage-1 :1;
        $temp['endPage'] = $temp['sumPage'];
        $this->urlParamStr = $this->_makeUrl($url);
        $temp['urlPageStr'] = ($page=="") ? $this->_makeUrl($url) : $page.$this->urlParamStr;

        $this->sqlMoveNumber = $curPage <2 ? 0 : ($curPage-1)*$pageSize;
        $temp['sqlMoveNumber'] = $this->sqlMoveNumber;
        $temp['rowNo'] = $sum;
        $this->result = $temp;
        return $this->result;
        //print_r($temp);exit();
    }
    public function getSqlMove()
    {
        return $this->sqlMoveNumber;
    }
    public function getFooter()
    {
        $str= "共有 {$this->result['rowNo']} 条 result['upPage']}'";
        if($this->is_post) $str .=" onclick='return sanshi_page_post(this.href,{$this->result['upPage']});' ";
        $str .=" >上一页 ";
        $str .=" 当前 {$this->result['curPage']} 页";
        $str .=" 共有 {$this->result['sumPage']} 页";
        $str .=" result['nextPage']}'";
        if($this->is_post) $str .=" onclick='return sanshi_page_post(this.href,{$this->result['nextPage']});' ";
        $str .=" >下一页";
        return $str;
    }
    public function getJumpPage()
    {
        if($this->is_post)
        {
            $str = " 跳到第 n";
        }else{
            $str = " 跳到第 n";
        }
for($i=1;$i<=$this->result['sumPage'];$i++)
{
$str .= ($i==$this->result['curPage']) ? "$in" : "$in";
威尼斯正规官网,}
$str.=" 页";
         //输出form表单
        if($this->is_post)
        {
            $str .="

";
            $str .="

";
            $str .="";
            $_POST = isset($_POST) ? $_POST : array();
            foreach($_POST AS $k=>$v)
            {
                $str .="";
            }
            $str .="

";
        }
return $str;
    }
    public function getCurPage()
    {
        return isset($_GET[$this->pVar]) ? intval($_GET[$this->pVar]) : 1 ;
    }
    //深入分析出url的参数重返?后的参数,页码为空 包涵问号
    private function _makeUrl($url)
    {
        $arrayUrl=parse_url($url);
        if(isset($arrayUrl['query']))
        {
            $q=$arrayUrl['query'];
            parse_str($q,$qParam);
            //print_r($qParam);
            if(array_key_exists($this->pVar,$qParam))
            {
                foreach ($qParam AS $k=>$v)
                {
                    if($k !=$this->pVar) $temp[$k] = $v;
                }
                $temp[$this->pVar] = "";
                if(function_exists("http_build_query"))
                    return '?'.http_build_query($temp);
                else
                    return '?'.sanshi_http_build_query($temp);
            }else {
                return "?{$q}&{$this->pVar}=";
            }
        }else{
            return "?{$this->pVar}=";
        }

    }
}
function sanshi_http_build_query($a,$b='',$c=0)
{
    if (!is_array($a)) return false;
    foreach ((array)$a as $k=>$v)
    {
        if ($c)
            $k=$b."[".$k."]";
        elseif (is_int($k))
            $k=$b.$k;
        if (is_array($v)||is_object($v))
        {
            $r[]=http_build_query($v,$k,1);
            continue;
        }
        $r[]=$k."=".urlencode($v);
    }
    return implode("&",$r);
}
/*
//print_r($_SERVER);
$p = new pagination();
$p->set(10,2,'thi.php');
echo $p->getFooter();
echo $p->getJumpPage();
*/
?>

本文由威尼斯在线注册平台发布于热门资源,转载请注明出处:那是多个xml 分析类,方今使用的时候开掘成点时候寻觅的东西过于大的时候

上一篇:不过对nginx配置可能不谙习 下一篇:路径信息及脚本位置的数组
猜你喜欢
热门排行
精彩图文