PHP结合Smarty分页类

 更新时间:2016年11月25日 16:10  点击:1938



<?php
    class show_Pager
    {
      protected  $_total;                          //记录总数
      protected  $pagesize;                       //每一页显示的记录数
      public     $pages;                         //总页数
      protected  $_cur_page;                    //当前页码
      protected  $offset;                      //记录偏移量
      protected  $pager_Links;                //url连接
      protected  $pernum = 5;                //页码偏移量,这里可随意更改
   
      public function __construct($total,$pagesize,$_cur_page)
        {  
        $this->_total=$total;
        $this->pagesize=$pagesize;
        $this->_offset();
        $this->_pager();
        $this->cur_page($_cur_page);
        $this->link();
    }
   
    public  function _pager()//计算总页数
    {
    return $this->pages = ceil($this->_total/$this->pa


1、布尔值:false(0,空白,null);    true(-1,非0值);

2、echo ''$s''输出内容是 $s; 
    如果""里面包含了$s或者{$s},那么将显示的变量的值。推荐使用{$s}的方式。
    使用""时候,如果在""里面还要使用"",就必须用来转义,例如: echo "<font>"sss"</font>";

3、字符串连接:使用标点"."进行字符串连接。

4、访问字符串中的字符:通过在字符串之后用花括号指定所要字符从零开始的偏移量来访问。
   strlen($str)   函数可以获取字符串长度。
   $str[0]  获取字符串$str的第一个字符。
   substr(''123456'',5,1)   从第5个字符开始获取一个字符,结果是“6”.
 
5、strval($s)将$s的值转换成字符串,intval($s)将$s的值转换成int整型数值。
   双引号里面使用双引号:" a"b "=a"b ;

6、数组: (array 括号,逗号,=>)
   数组排序:sort($arr);
   定义:$arr=array(1=>''11'',''foo''=>''fffooo'', ''info''=>array(2=>22,''ghost''=>''host'')  );
   引用:$arr[1]  $arr[''foo'']  $arr[''info''][2]  $arr[''info''][''ghost'']
   count($arr)  获取数组元素数量
   遍历数组:$arr=array(1=>''111'',2=>''222'',3=>''333'');
             foreach($arr as $k=>$v)
                    echo "{$k}_{$v}<br>"; //输出:1_111  2_222  3_333

7、对象

<?php
class foo
{
var $a=''s'';//类的变量!!

function init()  //类的函数
  {
   echo "Doing foo.";
   echo $this->a;  //引用类的变量!!
  }
}

$bar = new foo;
$bar->init();
?>
                  
 
8、变量
 
   isset($s)检查变量是否已经设置,如果还没有设置就引用$s将导致php提示: Undefined variable。
 
   默认情况下变量之间赋值是不会互相影响的(传值赋值模式);
   如果是 $a="a"; $b=&$a  这种情况下,$a和$b中任一个变量的值改动了,另外一个变量的值也随之变化(传地址赋值模式)。
 
   PHP5的预定义变量:
   $_SERVER["REMOTE_ADDR&quo


随着Ruby on Rails的火爆,PHP这个流行的Web应用脚本语言也出现了大量的新一代开发框架。与此同时,国内PHP开发者也在北京写字楼开始紧跟国外发展,推出了不同的开发框架。

Ruby on Rails催生变革
  在RoR流行之前,PHP领域也有不少开发框架,例如Mojavi、WACT、PHPMvc和Seagull等。这些框架虽然也采用了MVC模式、数据库抽象层等技术。但由于当时PHP本身不像现在这样流行,所以这些框架都没有得到大量应用,最终归于沉寂。
  而在感受到RoR提供的快速开发能力后,PHP社区像被注入了兴奋剂。各种应用技术和开发框架层出不穷。

新一代框架的诞生
  PHP社区在被RoR震晕后,没有陷入过多的争论。而是立即行动起来,开始了新一代框架的设计。首先出现的第一批框架几乎都是RoR的克隆。例 如PHP on Trax(连名字都借鉴Ruby on Rails)和TaniPHP、Akelos等。这些框架最大的特点就是力求100%克隆RoR,不管是采用的架构、设计模式,还是使用方法。
  这几个框架一开始确实吸引了开发者的注意,但随着开发者的深入了解,这些框架头上的光环逐步褪色。晦涩难懂的架构、糟糕的性能,以及太多的限制,让这些框架难以在实际项目中运用。
  此时,许多PHP开发者认为可以借鉴RoR的设计思想,但不应照搬RoR的结构和实现。为此,一些同样推崇快速开发的框架开始在PHP社区出现。这些框架中,CakePHP和Symfony可谓佼佼者。

CakePHP(http://www.cakephp.org/)
  CakePHP充满了RoR的影子,从ActiveRecord模式到视图的布局管理都和RoR非常相似。而且CakePHP一开始也尝试实现与 RoR一样的许多东西。但CakePHP的开发团队后来发现PHP语言和Ruby语言存在巨大区别,因此RoR中的许多设计即便能够在PHP中实现,也是缺乏实用价值的。
  CakePHP在发展中逐步走出了RoR的阴影,开始探索更能发挥PHP语言本身优势的架构和实现。因此有一段时间CakePHP的API发生了剧烈的变化,以致其他开发者纷纷停下脚步处于观望状态。
  但由于前期一些架构的不合理和对RoR太多的模仿,导致CakePHP的核心部分越来越难以理解,运行性能也不尽人意。而且CakePHP将一个庞大的数据库操作对象作为所有业务对象的基础。这虽然利于快速开发,但却导致对业务逻辑对象的测试非常困难。
  对于较小型的项目,CakePHP非常理想。北京鲜花礼品出色的快速开发能力、丰富的API和详尽的文档都可以帮助开发者很快完成工作。但随着项目规模的增加,CakePHP的局限性也变得突出。

Symfony(http://www.symfony-project.com/)
  Symfony是一个非常成熟的框架,大量利用了已有的开源项目。Symfony使用Mojavi的核心代码实现了框架的MVC模式,利用 Propel作为数据库抽象层。Symfony不仅功能强大,而且对Ajax有全面的支持。加上官方网站提供的大量文档和教程,并拥有一个活跃的社区,因 此受到许多开发者的欢迎。
  但是,Symfony最大的问题也在于使用了太多风格迥异的开源项目来组合成框架。由于Mojavi和Propel本身都相当复杂,因此Symfony的结构非常复杂,难以理解和学习。
  不过对于希望选择一个框架作为企业内部系统基础架构的企业来说,Symfony的成熟度、丰富的文档和活跃的社区都是值得考虑的。毕竟企业内部系统更为看重的是稳定性和长期的支持。

商业利益与大道至简
  看到PHP开发框架的潜在商业价值后,Zend.com联合IBM宣布将要推出一个真正能够发挥PHP优势的开发框架。一时间,这个消息在整个PHP社区引起了地震。大家都开始期盼这个具有“官方”背景的开发框架能够为PHP开发者指出一条正确的道路。
  不过世事难测,就在Zend Framework团队公布几个代码片断后,立即就有开发者指出这些代码片段是不可能实现的。事实证明这些代码片段不过是美好的理想。限于PHP语言本身 的能力,Zend Framework最终没有实现当初承诺提供的类似RoR中ActiveRecord模式的实现品。

Zend Framework(http://framework.zend.com/)
  Zend Framework大量应用了PHP5中面向对象的新特征:接口、异常、抽象类、SPL等等。这些东西的应用让Zend Framework具有高度的模块化和灵活性。同时,因为严格遵循“针对接口编程”和“单一对象职责”等原则,让Zend Framework很有希望成为一个出色的企业应用开发框架HKRFP。
  但不幸的是Zend Framework直到今天,也没有做出更多的突破。在使用Zend Framework开发时,框架对应用程序自身最重要的领域逻辑分离没有提供任何帮助


以下是侯捷老师个人陆续收集整理的有关於我所涉猎的领域的术语对照(英中繁简)。
欢迎所有朋友给我意见(任何意见)。谢谢。

新书写作,或发表文章时,我会以此表为叁考。

本表所列,并不表示我在写译书籍时一定会采用表内的中文术语。
我也可能采用英文术语。


一群性质相近同的「东西」,如果译名一贯,阅读的感觉就很好。
一贯性的术语,扩充性高,延伸性高,系统化高。
● 我喜欢「式」:
constructor 建构式
declaration 宣告式
definition  定义式
destructor  解构式
expression  算式(运算式)
function    函式
pattern     范式、模式、样式
program     程式
signature   标记式(签名式/署名式)

● 我喜欢「件」:(这是个弹性非常大的可组合字)
assembly (装)配件
component 组件
construct 构件
control   控件
event     事件
hardware  硬件
object    物件
part      零件、部件
singleton 单件
software  软件
work      工件、机件

● 我喜欢「器」:
adapter   配接器
allocator 配置器
compiler  编译器
container 容器
iterator  迭代器
linker    连结器
listener  监听器
interpreter 直译器
translator 转译器/翻译器

● 我喜欢「别」:
class 类别
type  型别

● 我喜欢「化」:
generalized    泛化
specialized    特化
overloaded     多载化(重载)

● 我喜欢「型」:
polymorphism  多型
genericity    泛型

● 我喜欢「程」:
process     行程/进程(大陆用语)
thread      绪程/线程(大陆用语)
programming 编程


●英中繁简编程术语对照

英文                    繁体译词
                      (有些是侯捷个人喜好,普及与否难说)      大陆惯用术语
---------------------------------------------------------------------------------------
#define                 定义                              &nb

<?php
date_default_timezone_set( "Asia/Shanghai");

class TCreateHTML{
var $HTemplate; //模板的文件
var $FileName; //新文件名称
var $HTFilePath;//产生文件的路径
var $ModiString;
var $ReTextArray;//替换信息数组
var $strText=""; //文本内容
var $CrType="1"; //产生文件名称的类型 默认为日期+4位 随机数
var $errorStr; //错误信息!

//********接口函数
//构造模板
function TCreateHTML(){}

//创建文件
function CreatrHtml()
{
 //检查模板路径是否合法
 if(!$this->CheckPath($this->HTemplate,"0"))
 {
  return false;
 }

 //检查新生文件路径是否合法
 if(!$this->CheckPath($this->HTFilePath,"1"))
 {
  return false;
 }
   
 
 $fp=fopen($this->HTemplate,"r"); //只读打开模板
 $this->strText=fread($fp,filesize($this->HTemplate));//读取模板中内容
    fclose($fp);
 

    //替换文件
 $this->ReplaceText();
 //生成文件名称
 $this->CreateName();

 
 $handle=fopen($this->FileName,"w"); //写入方式打开新闻路径
 fwrite($handle,$this->strText); //把刚才替换的内容写进生成的HTML文件
 fclose($handle);

 return true;
}

function  CheckPath($pStr,$type)
 {
   if($type=="0")
  {
      if(!file_exists($pStr))
   {
     $this->errorStr="文件夹路径有误!";
     return false;
   }
  }else
  {
   $arrPath = explode ("/", $pStr);
   $s_Path="";
            foreach ($arrPath as $tag) {
    if($s_Path=="")
    {
        $s_Path .= $tag;
    }else
    {
      $s_Path .="/".$tag;
    }

[!--infotagslink--]

相关文章

  • php KindEditor文章内分页的实例方法

    我们这里介绍php与KindEditor编辑器使用时如何利用KindEditor编辑器的分页功能实现文章内容分页,KindEditor编辑器在我们点击分页时会插入代码,我们只要以它为分切符,就...2016-11-25
  • 自己动手写的jquery分页控件(非常简单实用)

    最近接了一个项目,其中有需求要用到jquery分页控件,上网也找到了需要分页控件,各种写法各种用法,都是很复杂,最终决定自己动手写一个jquery分页控件,全当是练练手了。写的不好,还请见谅,本分页控件在chrome测试过,其他的兼容性...2015-10-30
  • jquery实现的伪分页效果代码

    本文实例讲述了jquery实现的伪分页效果代码。分享给大家供大家参考,具体如下:这里介绍的jquery伪分页效果,在火狐下表现完美,IE全系列下有些问题,引入了jQuery1.7.2插件,代码里有丰富的注释,相信对学习jQuery有不小的帮助,期...2015-10-30
  • vue.js 表格分页ajax 异步加载数据

    Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.这篇文章主要介绍了vue.js 表格分页ajax 异步加载数据的相关资料,需要的朋友可以参考下...2016-10-20
  • Springboot如何使用mybatis实现拦截SQL分页

    这篇文章主要介绍了Springboot使用mybatis实现拦截SQL分页,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-19
  • PHP 一个完整的分页类(附源码)

    在php中要实现分页比起asp中要简单很多了,我们核心就是直接获取当前页面然后判断每页多少再到数据库中利用limit就可以实现分页查询了,下面我来详细介绍分页类实现程序...2016-11-25
  • jquery实现的伪分页效果代码

    本文实例讲述了jquery实现的伪分页效果代码。分享给大家供大家参考,具体如下:这里介绍的jquery伪分页效果,在火狐下表现完美,IE全系列下有些问题,引入了jQuery1.7.2插件,代码里有丰富的注释,相信对学习jQuery有不小的帮助,期...2015-10-30
  • AngularJS实现分页显示数据库信息

    这篇文章主要为大家详细介绍了AngularJS实现分页显示数据库信息效果的相关资料,感兴趣的小伙伴们可以参考一下...2016-07-06
  • 基于jquery实现表格无刷新分页

    这篇文章主要介绍了基于jquery实现表格无刷新分页,功能实现了前端排序功能,增加了前端搜索功能,感兴趣的小伙伴们可以参考一下...2016-01-08
  • vue实现页面打印自动分页的两种方法

    这篇文章主要为大家详细介绍了vue实现页面打印自动分页的两种方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-29
  • vue.js表格分页示例

    这篇文章主要为大家详细介绍了vue.js表格分页示例,ajax异步加载数据...2016-10-20
  • C# DataTable分页处理实例代码

    有时候我们从数据库获取的数据量太大,而我们不需要一次性显示那么多的时候,我们就要对数据进行分页处理了,让每页显示不同的数据。...2020-06-25
  • smarty中改进truncate使其支持中文的方法

    这篇文章主要介绍了smarty中改进truncate使其支持中文的方法,涉及针对Smarty源码中truncate源文件进行函数功能扩展的相关技巧,需要的朋友可以参考下...2016-06-12
  • 原生js实现分页效果

    这篇文章主要为大家详细介绍了原生js实现分页效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-09-24
  • Python优化列表接口进行分页示例实现

    最近,在做测试开发平台的时候,需要对测试用例的列表进行后端分页,在实际去写代码和测试的过程中,发现这里面还是有些细节的,故想复盘一下...2021-09-29
  • laypage分页控件使用实例详解

    这篇文章主要为大家详细分享了laypage分页控件使用实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-05-20
  • 解析iReport自定义行数分页的操作方法

    ireport默认都是自动分页数据超出页面长度就会自动分到下一页,但有时候业务需要一页只显示固定几行这时候就需要自定义条数了。下面看具体操作吧...2021-10-26
  • MySQL分页优化

    这篇文章主要为大家详细介绍了MySQL分页优化,内容思路很详细,有意对MySQL分页优化的朋友可以参考一下...2016-04-22
  • EasyUI Pagination 分页的两种做法小结

    这篇文章主要介绍了EasyUI Pagination 分页的两种做法小结的相关资料,需要的朋友可以参考下...2016-07-25
  • 基于BootStrap的前端分页带省略号和上下页效果

    这篇文章主要介绍了基于BootStrap的前端分页带省略号和上下页效果,需要的朋友可以参考下...2017-05-22