phplib里怎么得到模板被替换后的全部内容

jjwxg 2003-08-22 10:12:43
...//以上内容省略
$t->tpl_content=parse("out","newshow");
echo $t->tpl_content;

是这样子么?
...全文
32 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
feel8 2003-08-22
  • 打赏
  • 举报
回复
$t-> set_var("tplpath", $path);
$t-> pparse("mainPage", "main");
你用过Ease Template吗?   PHP工程中的模板应用,关于它的好处,我想无论是在实际开发阶段还是上升到设计模式的角度都已经有很多“前辈先哲”"讨论过了。就项目实施而言,在一些中型甚至大型的项目中,有效的将HTML(还有其他文本形式的表现层)和PHP代码分开,不仅在开发阶段可以提高界面设计人员和应用程序编写人员的工作效率,更会给项目的测试和维护带来巨大的便利。 什么是模板技术?   PHP模板发展自Perl的Template。剥开神秘的面纱,模板技术的核心概念简单得令人心跳:要将你的美工页面指定为模板文件,只需将页面中活动的内容部分(如数据库输出,用户交互等)定义成形式为的变量放在模板文件中相应的位置,当用户浏览时,由PHP程序文件打开该模板文件,将模板文件中定义的变量进行替换。当然,替换成对应的数据库输出或者用户交互等动态生成内容。 Ease Template 模板能够改善网站的结构,其特点有: * 可以在几秒钟改变整个站点的外观; * 可以让网站更容易实现多语言; * 抽象程序设计,没有垃圾HTML代码; * 稳定性能初期的强大甚至超越混编代码; * 提供完善的 Debug 平台; * 开发效率快地令人惊讶; * 更容易重用模版; * 开源版权保护(保证您的版权不会被侵犯)。 模板技术经过很多年的发展已经演变出各式各样的类型:phplib就效率而言在大量应用的时候效率会降低很多,但是拥有语法简单的优势;Smarty 语法强大效率很高,问题是架构庞大,语法过于复杂。如果你正在设计一个交互式网站,你一定会关注两个主要的问题:美工和程序。这也是一个网站在建设中抛开其内容之后最关键的要素。 通常有两种方式来协调美工和程序之间的关系: 1.先做好美工页面,然后由程序员直接在美工页面的HTML文件中嵌入ASP、JSP、PHP等程序代码。 2.美工和程序同时进行,但这时因为没有页面框架,程序只能先做出部分代码,双方完成后再进行一次美工页面和程序代码的嵌入合成。   在实际的网站建设过程中,由于人员、进度等环境的限制,大家通常会混合使用上面两种协调方式。然而这两种方法都有不足之处: 1. 效率不高。两者协调不好可能产生等待、重复代码调试等现象; 2. 调试不畅。由于程序代码最终需要嵌入在HTML页面中,代码的嵌入、调试、纠错都比较繁琐; 3. 维护不便。一旦美工设计需要修改,如网站改版,那么所有程序和HTML代码混合页面都需要重写。 如果你正在使用PHP程序建设网站,那么恭喜你,PHP模板技术会比较圆满地解决上述问题。 模板应用与结构,以往的开发流程如下:   流水线1:网站设计 -> 切图转为htm -> php工程师写程序 -> 程序套用htm -> 开发结束。 如果存在修改时流程如下:   流水线1:网站设计修改 -> 切图转为htm -> php工程师改程序 -> 程序套用htm -> 修改结束。 采用Ease Template之后将有一些区别性的变化,开发流程如下:   流水线1:php工程师写程序与简单模板 -> 程序测试 -> 开发结束。   流水线2:网站设计 -> 模板工程师修改(Dreamweaver) -> 开发结束。 修改流程如下:   流水线1:网站设计修改 -> 模板工程师修改(Dreamweaver) -> 修改结束。   流水线2:程序员工作被释放出来   Ease Template相对于Smarty或phplib提供更简单更高效的方法,甚至可以将数据库运用方法直接写入模板中,这样将无须复杂的数组转换操作。   目前发行的任何一套模板引擎都没有提供开源商业化版权保护。公司开发出的程序,有可能被合作方转卖或盗用。使用Ease Template便不用再为此问题担心,它提供了版权保护设置。开发方启用版权保护设置并对所有程序运行一次后将生成版权保护代码。开发方不需提供程序模板给合作方,程序仍可以独立完整运行。如果合作方需要修改原始模板将非常复杂甚至无法修改。商业版本的程序如果没有模板要修改页面对于任何人都将是非常头疼的工作,而采用Ease Template的开发者则按正常流程即可完成所有的修改工作。   Ease Template 经过多年的发展已经被很多框架所采用,其中比较有名气的当属FleaPHP、ThinkPHP。有些框架直接集成了Ease Template插件,用户选择Ease Template的时候无需担心兼容性以及稳定性。   当Ease Template用户觉得方法过少造成不知如何使用的时候,可以运用{run:}php方法{/run},此操作完全支持系统的所有方法以及用户自己写的方法。   看到这也许您提出一个问题,那就是Ease Template具有这么多功能那他的速度又能达到什么程度?举个例子:对Ease Template三个引擎进行1万次循环并且载入多个模板情况下的测试结果:替换引擎0.06秒、编译引擎0.04秒、MemCache引擎0.03秒。与各种模板比较,Ease Template编译引擎的速度已经远远超越同类大部分模板,所以您无需为Ease Template的速度担心。   Ease Template 模板技术的基本概念就介绍到这,请继续关注更加有趣的功能介绍。
技术特点及优势: 1. 框架没有和实现混在一起. 我发这个面的实现只是一个例子. 让大家知道如何调用.. 2. 关于不好向PHP5移植, 我从没想过要移植到PHP5上. 因为如果要移值, 你敢说你的框架不要改.. 恐怕要改的也不在少数.就算你勉强凑合着用上了, PHP5的新功能都没有加上, 你所谓的移植还有 什么意义啊. 3. 异常处理部分, 你说和返回值没有区别, 说明你还没有仔细看这个异常.. 这个异常可以跨函数, 几层函数调用后也照样没问题. 另外, 可以返回一些其它的附加信息. 最最最最最重要的是, 你可 以自定义异常类来捕获. 假如: YourException extends Exception 你捕获 catch( YourException ) 时如果发 生的是Exception类时, 程序就会捕捉不到.. 反之, 如果发生了YourException, 而程序捕获 的是catch( Exception )时, 则能捕获到.. 因为所有异常继承自Exception就是也能像语言级 异常处理一样, 可以做到一个默认处理.. 4. 1) 数据库处理的优势, 框架中抽象出一个Abstract Database(数据库抽象层)出来, 使得上层不 用关心底层数据库, 而由些层完成一系统转换. pfcDB在此基础上进行数据库操作. 2) pfcTable类, 此类可以使得你在程序中在大多时间不需要输入SQL语句(除非包含很 复杂的很多函数的语句或针对某种数据库平台的语句)即可完成对数据库的操作.. 如选择, 插入, 更 新, 删除等, 选择时可以对多表进行关联, 并可选left join, right join, inner join 等多 种联接方式. 对于选择出的结果可以以多种形式返回, 如二维表格(MapResult), 以某一列为键的 二维表格(MapResultOnKey), 单一行(MapOneRow), 单一列(MapOneColumn), 某列为键, 某列 为值的哈希表(MapHashTable) 等多种形式.. 插入和修改时, 程序自动决定SQL语句形式, 并可以自动根据字段类型决定是否使用引号包裹字 段内空(如果设置了欢迎,默认), 是否自动对特殊字符进行转义(防SQL Inject, 可设置是否开启, 默认为关). 并支持多种参数形式, 如键为字段名, 数组值为字段值的PHP数组, 如: array( field1 => xxx, field2 => xxx2, ) 也可是设置好的字段($tblObj->setFields(array( field1 , field2 )) $tblObj->insert(array(xxx, xxx2)); 3) 数据单一记录抽象. 为那些对于某字段有一个可以唯一确定的键的记录的访问提供了方便的途径 使用本类可以方便的对单一记录进行读取, 修改等..使用举例: $item = new pfcRecord($dbObj, table1 , Name , 帅的像人渣 ); echo $item->get( Favorite ); $item->set( Favorite , make .... ); $item->set( Name , zhazha ); $item->commit(); if($e = catch( SQLException )) { echo 发生成错误:
. $e->GetErrorText(); if(defined( debug )) echo
SQL: . $e->getSqlSegment(); } else echo 修改成功 ; 5. 输入输出封装. pfcInputStream, pfcOutputStream. 从底层实现对输入输出管理, 再也不用 再也不用关心是否开启了register_global. 统计一使用各种变量(也有办法区分具体是GET还是 POST,COOKIE, SESSION等.), 并且不用关心是否启用了 magic_quotes_gpc. 程序会自动处理. 不用怕用户输入非法了.为你打造一个安全的程序提供一个安全的环境. 输出由于采用了pfcOutputStrem 类进行封装, 再也不怕不小心出 现在header之前进行输出了.(没经过本类的不算) 并可在输出前进行可种处理. 如压缩(可手工用自己的算法或ob), 替换等操作. 使用举例: $instream = new pfcInputStream(); $out = new pfcOutputStream(); $in = $instream->parse_incoming(); echo $in[ xxx ]; //取变量xxx, 无论GET, POST, COOKIE, SESSION或文件 echo $in[ _GET ][ xxx ]; //取GET中的变量xxx, 依此类推. POST, COOKIE, //SESSION, FILES等 $out->add_output( xxxx ); //添加一个串 $out->do_output(); //输出 //---------------------------------------------------------------- //其它可调用的方法(非必须) //---------------------------------------------------------------- $out->get_content(); //取出当前缓冲区内容 $out->replace_keyword($arr); //对当前缓冲区内容进行替换.$arr格式为 // array( key => val , ....); $out->clear_buffer(); //清空缓冲区 6. 多语言处理, 在底层做好了多语言处理的工作. 使得开发多语言程序时变的很easy. 7. 模板处理,采用新算法的模板处理类。 在数据量不是很大的页面中速度比PHPLIB快。 (<200) 支持自定义标记, 无限套嵌区块等. 8. 合理的文件组织管理, 使代码昼合理化、不重复、易移植。 模板、逻辑、实现、图片、基础类、UTIL类 分离。 并可改变位置(改变时改变相应常量) 9. 统一程序入口、逻辑实现分离 符合MVC模式。 10.合理的业务逻辑设计, 包括标准的添加,修改, 删除, 取一条数据, 取列表, 计算总数,transData (对返回给UI层的数据进行转换)和untransData(对入库数据根据需要变换)能力。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧