当前位置: 编程技术>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;
}
}
?>
/**
对查询进行分页的类
@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");
?>
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,',');
*/
?>
//未考虑浮点型
/*
* 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,',');
*/
?>
最新技术文章: