当前位置:  编程技术>php
本页文章导读:
    ▪一个好用的php分页类      一个好用的php分页类,使用那种方式显示导航,默认的方式是使用show1()首页|上一页|下一页|末页的方式。 有需要的朋友可以参考下。   代码如下: <?php /** 对查询进行分页的类 @.........
    ▪ php单例模式的演示代码      下面为大家提供一个应用单例模式的小例子,供大家参考。   代码如下:  <?php  class User {     static function getInstance()     {     if (self::$instance == NULL) { // If instance is not created yet, will .........
    ▪php实现大数以,作分隔符分隔的代码      要求实现这样的效果:类似1234567890-->1,234,567,890。   代码如下: <?php //未考虑浮点型 /*      * method 1      * echo number_format($str,2,'.',',');      */     /*  method2      *     先反.........

[1]一个好用的php分页类
    来源: 互联网  发布时间: 2013-12-24

一个好用的php分页类,使用那种方式显示导航,默认的方式是使用show1()首页|上一页|下一页|末页的方式。
有需要的朋友可以参考下。
 

代码如下:
<?php
/**
对查询进行分页的类
@link http://www.
*/
class paging
{
    private $pageSize;    //没一页显示的条数 默认是10条。
    private $totlePage;    //总共有多少条记录
    private $dbConnection;//数据库连接
    private $nowPageIndex;//当前显示的页数
    private $show;    //使用那种方式显示导航,默认的方式是使用show1()首页|上一页|下一页|末页的方式。
    /**
    构造函数,建立数据库的连接
    @$pageSizeP 没一页显示的条数默认是10条。
    @$show      使用那种方式显示导航,默认的方式是使用show1()首页|上一页|下一页|末页的方式。
    */
    public function _construct($pageSizeP=10,$show="show1")
    {
        $this->dbConnection = @mysql_connect()("localhost","username","password");
        if($this->dbConnection)
        {
        die("");
        }
        mysql_select_db($this->dbConnection,"databaseName");
        $this->show = $show;
        $this->pageSize = $pageSizeP;
    }
    /**
    析构函数,关闭数据库的连接。
    */
    public function _destruct()
    {
        @mysql_close($this->dbConnection);
    }
    /**
    查询数据库,显示数据库的记录条数。
    @$sql        查询数据库的sql语句。
    @$charset    查询数据库使用的字符集,默认的是UTF-8。
    @return    返回数据库查询的结果,保存成数组,然后返回,条数不确定。
    */
    public function querySQL($sql,$charset="UTF-8")
    {
        mysql_query()("SET NAMES ".$charset);
        $rs = @mysql_query($sql);
        if(!$rs)
        {
            die("");
        }
        $num = @mysql_num_rows($rs);
        $this->totlePage= ceil($num/$this->pageSize);
        $this->nowPageIndex = (isset()($_POST['page']) || $_POST['page'] >= 1):$_POST['page']?1;
        if($this->nowPageIndex >$this->totlePage)
        {
            $this->nowPageIndex = $this->totlePage;
        }
        $start = ($this->nowPageIndex - 1)*$this->pageSize;
        mysql_free_result($rs);
        $sql .= "LIMIT $start,$this->pageSize";
        $rs = @mysql_query($sql);
        if(!$rs)
        {
            die("");
        }
        $rows = array();
        while($row = @mysql_fetch_row($rs))
        {
            $rows[] = $row;
        }
        @mysql_free_result($rs);
        return $rows;
    }
    /**
    显示导航兰。
    @$arg 调用显示导航的函数的参数。
        $img1 一个数组,保存导航的连接的图片。在调用show1()使用的。
        $size 导航兰的一行显示的页数。在调用show2()使用的。
    */
    public function show($arg)
    {
        $func = $this->show;
        $this->$func($arg);
    }
    /**
    以首页|上一页|下一页|末页的方式显示导航。
    @$img1 首页|上一页|下一页|末页对应的图片路径数组,默认是NULL,既不显示 图片。
    */
    private function show1($img1 = NULL)
    {  
        $url =  $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
        $str = "<table>
            <tr><td>当前$this->nowPageIndex页/共$this->totlePage页</td><td><a herf='";
        $str .= ereg_replace("page=/.&","page=1&",$url);
        $str .= "'>";
        if(isset($img) || $img != NULL)
        {
            $str .= "<img src=/blog_article/$img[0]/index.html alt=首页></a></td><td><a href=";
            $page1 = $this->nowPageIndex - 1;
            $str .= ereg_replace("page=/.&","page=$page1&",$url);
            $str .= "><img src=/blog_article/$img[1]/index.html alt=上一页></a></td><td><a href=";
            $page1 = $this->nowPageIndex + 1;
            $str .= ereg_replace("page=/.&","page=$page1&",$url);
            $str .= "><img src=/blog_article/$img[2]/index.html alt=下一页></a></td><td><a href=";
            $page1 = $this->totlePage ;
            $str .= ereg_replace("page=/.&","page=$page1&",$url);
            $str .= "><img src=/blog_article/$img[3]/index.html alt=末页></a></td><td></tr><table>";
        }
        else
        {
            $str .= "首页></a></td><td><a href=";
            $page1 = $this->nowPageIndex - 1;
            $str .= ereg_replace("page=/.&","page=$page1&",$url);
            $str .= ">上一页</a></td><td><a href=";
            $page1 = $this->nowPageIndex + 1;
            $str .= ereg_replace("page=/.&","page=$page1&",$url);
            $str .= ">下一页</a></td><td><a href=";
            $page1 = $this->totlePage ;
            $str .= ereg_replace("page=/.&","page=$page1&",$url);
            $str .= ">末页</a></td><td></tr><table>";
        }
        echo $str;
    }
    /**
    以1|2|3|。。。的方式显示导航。
    @$size 导航兰每一行显示的页数,默认是10。
    */
    private function show2($size =10)
    {
        $url =  $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
        $str = "<table><tr>";
        for($index = 1 ; $index <= $this->totlePage ; $index++)
        {          
            $str .= "<td><a herf=";
            $str .= ereg_replace("page=/.&","page=$index&",$url);
            $str .= "$index</a></td>";
            if($index == $size)
            {
                $str .="</tr><tr>";
            }
        }
        $str .= "</tr></table>";
        echo $str;
    }
}
?>

    
[2] php单例模式的演示代码
    来源: 互联网  发布时间: 2013-12-24

下面为大家提供一个应用单例模式的小例子,供大家参考。
 

代码如下:
 <?php
 class User {
    static function getInstance()
    {
    if (self::$instance == NULL) { // If instance is not created yet, will create it.
        self::$instance = new User();
    }
    return self::$instance;
    }
    private function __construct()
    // Constructor method as private  so by mistake developer not crate
    // second object  of the User class with the use of new operator
    {
    }
    private function __clone()
    // Clone method as private so by mistake developer not crate
    //second object  of the User class with the use of clone.
    {
    }
   
    function Log($str)
    {
    echo $str;
    }
    static private $instance = NULL;
}
User::getInstance()->Log("Welcome User");
?>

您可能感兴趣的文章:
php单例模式为何只能实例化一次
php设计模式之单例模式的实例代码
学习php设计模式之单例模式
php实现的单例模式的例子
学习php单例模式及应用实例
有关php单例模式介绍及例子
php设计模式之单例模式学习
php单例模式的例子


    
[3]php实现大数以,作分隔符分隔的代码
    来源: 互联网  发布时间: 2013-12-24

要求实现这样的效果:类似1234567890-->1,234,567,890。
 

代码如下:
<?php
//未考虑浮点型
/*
     * method 1
     * echo number_format($str,2,'.',',');
     */
    /*  method2
     *     先反转字符串strrev 再str_split($str,3);
    
        $str = strrev($str);
        $arr = str_split($str,3);//987
        $res = '';
        $count = count($arr);
        while($count--){
            $res .= strrev($arr[$count]).',';
        }
        $res = rtrim($res,',');
    */
    /*    method 3
     *  截取出每3个字符
     *  $count = strlen($str);
        $i = 0;
        $md = $count % 3;
        switch ($md){
            case 0:
                break;
            case 1:
                $res = $str{0}.',';
                $count -=1;
                $i = 1;
                break;
            case 2:
                $res = substr($str,0,2).',';
                $count -= 2;
                $i = 2;
                break;
        }
        for(;$i<$count-3;$i+=3){
            $res .= substr($str,$i,3).',';
        }
        $res .= substr($str,$i,3);
    */
    /*    method 4
     *  正则,求不确定长度的做法
        $md = strlen($str) % 3;
        $res = substr($str, 0,$md).($md == 0?'':',');
         $res .= preg_replace('(\d{3})', '\\0,', substr($str, $md));
        $res = rtrim($res,',');
    */
 ?>

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3