|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
参加PHP开发学习,或许只是一次偶然的想法吧!只是想在走向社会之前体验、学习在一个公司或者说是项目团队之中如何去更有效的沟通、交流、共同合作,还有就是为毕业实习找工作增加伐码。模板 假如你历来没有接触过PHP,那末仍是先看看这个吧,固然即便是你已对PHP有所懂得,但一本PHP4的的利用手册也仍是需求的,:)。另外一本HTML语法手册固然也是不成短少的啦。。。。。。。。。。
在网站开辟过程当中你是否是常常面临改版的忧??几百几千个文件由于版式上的一点小变更就需求全体从头处置,是否是让你头痛非常?唉,假如可以把内容和体现模式分隔就行了,这可是咱们一向翘首守候的。但惋惜用于处置这个成绩的XML还未完整的成熟。岂非除此以外就没有举措了吗?正所谓器材是逝世的,人倒是活的,咱们明天要进修的这个php库,就能够匡助咱们在必定水平上处置这个成绩。:))
FastTemplate是甚么?从PHP言语下去讲它是一个PHP库;从它的发源来讲它源于一个一样称号的Perl软件包;从用处下去讲是一个可让你在几秒内改动全部站点外不雅的适用东西。用最浅显的言语来讲,它就是一个模板,一个相似DreamWaver中的模板。如今FastTemplate在你心里是一个问号?仍是一个感慨号?又或是一个句号?(编纂:靠,在这骗稿费呀,我扁!)算了,不论那末多,你只需晓得他是好器材就成,:)
起首在咱们利用这个库之前固然要先下载它,人人可以鄙人面这个网址http://www.thewebmasters.net/php/下载它(本站下载地址为: http://www.phpe.net/downloads/1.shtml)。下载以后呢把它解紧缩到你的web办事器的一个目次上,上面是解紧缩后的目次布局
FastTemplate-1.1.0/
FastTemplate-1.1.0/README < - 这个文件就不必说了吧?
FastTemplate-1.1.0/class.FastTemplate.php3 < - 这个文件最主要,它就库文件,中心耶!
FastTemplate-1.1.0/example_1.phtml < - 一个例子
FastTemplate-1.1.0/example_2.phtml < - 第二个例子
FastTemplate-1.1.0/example_3.phtml < - 第三个例子
FastTemplate-1.1.0/dynamic_example.phtml < - 第四个例子
FastTemplate-1.1.0/docs/ < - 文档目次
FastTemplate-1.1.0/docs/FastTemplate.3 < - Unix man page
FastTemplate-1.1.0/docs/FastTemplate.html < - HTML documentation
FastTemplate-1.1.0/templates/ < - 模板例子的目次
FastTemplate-1.1.0/templates/begin.tpl
FastTemplate-1.1.0/templates/header.tpl
FastTemplate-1.1.0/templates/main.tpl
FastTemplate-1.1.0/templates/row.tpl
FastTemplate-1.1.0/templates/test.tpl
FastTemplate-1.1.0/templates/footer.tpl
FastTemplate-1.1.0/templates/htaccess.tpl
FastTemplate-1.1.0/templates/middle.tpl
FastTemplate-1.1.0/templates/table.tpl
注重哟,这个目次必定如果php法式可以会见的目次哟,换句话说就是php.ini里谁人include目次。然后呢,利用php4编程的伴侣注重了,你如今还不克不及直接利用这个库,还需求人工做些修正!等下注重看上面。php3的读者就不必管那末多,如今就能够试一下它带的那几个例子了,(嘿嘿,不外呢,它那些例子的后缀名满是phtml,假如你没举措设置web的话。你可以测验考试把后缀名改改看,应当也能够用,地藏没有试过不敢打包票。)那!接着呢,php4的兄弟可万万要注重哟,假如不你不按上面的修正的话,这个库可是没有举措用的哟!!
--- class.FastTemplate.php3 Sun Jun 27 13:44:47 1999
+++ php4.FastTemplate.php3 Tue Jul 20 10:49:25 1999
@@ -196,8 +196,10 @@
settype($val,"string");
}
- $template = ereg_replace("{$key}","$val","$template");
- //$template = str_replace("{$key}","$val","$template");
+ // php4 doesn't like '{$' combinations.
+ $key = '{'."$key".'}';
+ $template = ereg_replace("$key","$val","$template");
+ //$template = str_replace("$key","$val","$template");
}
}
@@ -410,7 +412,7 @@
}
if($end)
{
- $newParent .= "{$MacroName}
";
+ $newParent .= '{'."$MacroName}
";
}
// Next line please
if($end) { $end = false; }
人人用文本编纂器翻开class.FastTemplate.php3文件,找到下面的局部。'-'减号代表消弭这行,'+'加号代表到场这行。别的windows体系下的伴侣注重哟!你们还需求改点小器材,把上面的谁人$win32变量的值改成true,不改的话,用不了可别骂我,;)。
var $WIN32 = true; // Set to true if this is a WIN32 server
改好后,人人就能够尝尝他的那几个例子了。 若何?胜利了吧。嘿嘿嘿嘿~~~,地藏不会骗人人的啦。
OK,如今这个库已可以用啦,咱们筹办停止上面的进修吧,:)
若何利用这个库?复杂哟,起首要把这个库包括出去。也就是说呢,要 include "class.FastTemplate.php3"; 然后?呵呵…… 然后我也不晓得啦!(编纂:"嘿!找扁啊,你!")啊,啊…!Sorry,我想起来了(在地藏被众编纂海扁一顿以后)。然后是进修这个库的利用道理。在这里呢咱们先做个假定。
咱们假定一个页面是由良多的小的局部构成(好比:每一个网站都有分栏目导航等等),并且每一个小的局部都有一个独一的标识符(好比:咱们把分栏每一个小项界说为一个名字)
咱们起首以这个库自带的example_1为例,让人人可以尽快的学会这个库的根基用法,;),不外人人要注重哟,这几个文件在办事器上的地位要按解压时的绝对途径来存,万万不要健忘,就象不要健忘你女伴侣的诞辰一样。呵呵~~~~
< ?
// Example FastTemplate Demo #1 - The example from the man page
Header("Content-type: text/plain");
include("class.FastTemplate.php3");
$tpl = new FastTemplate("./templates");
$tpl- >define(
array(
main = > "main.tpl",
table = > "table.tpl",
row = > "row.tpl"
)
);
$tpl- >assign( array( TITLE = > "FastTemplate Test") );
for ($n=1; $n < = 3; $n++)
{
$Number = $n;
$BigNum = $n*10;
$tpl- >assign(
array(
NUMBER = > $Number,
BIG_NUMBER = > $BigNum
)
);
$tpl- >parse(ROWS,".row");
}
$tpl- >parse(MAIN, array("table","main"));
$tpl- >FastPrint();
exit;
? >
< !-- NAME: main.tpl -- >
< html >
< head >< title > {TITLE} < /title >
< /head >
< body >
{MAIN}
< /body >
< /html >
< !-- END: main.tpl -- >
< !-- NAME: table.tpl -- >
< table border='1' >
{ROWS}
< /table >
< !-- END: table.tpl -- >
< !-- NAME: row.tpl -- >
< tr >
< td >{NUMBER}< /td >
< td >{BIG_NUMBER}< /td >
< /tr >
< !-- END: row.tpl -- >
利用这个库起首要如后面所说的 include "class.FastTemplate.php3"; 然后是界说模板地点目次$tpl = new FastTemplate("./templates");注重哟!这里由于我是在windows体系运转,所以用的是"./templates",在Linux或UNIX中能够纷歧样,人人依据详细情形来设定。然后呢,咱们对应分歧的模板,界说上面这个矩阵数组。$tpl- >define( array( main = > "main.tpl", table = > "table.tpl", row = > "row.tpl" ) ); define是这个类中的一个函数。上面是它的语法:define( array( key,value pairs) ) ,define()函数映照一个名字到模板文件上,这个新的名字将是你用来代表模板的独一名字,由于除此以外再不会有模板文件名呈现。并且人人注重,这是利用类时决不克不及短少的步调,不克不及少的哟,假如少了那就和你不带诞辰礼品去你女伴侣的诞辰Party有异曲同工之妙,嘿嘿嘿~~~~
如今!关头的,最有特性的器材来了!assign( (key,value pair) 或 assign ( array(key value pairs) ) 这个函数将把你在模板中界说的标识符界说为你网页上真正想要的器材。好比就象是下面$tpl- >assign( array( TITLE = > "FastTemplate Test") ); 这句,将模板main.tpl里的{TITLE}交换为 FastTemplate Test 看不懂想不明的伴侣多看看下面的那些代码。接着呢!接着是别的一个很有特征的东东。parse(RETURN, FileHandle(s) ) 将一个已界说模板拔出的界说到别的一个模板文件中。人人细心研讨上面的代码,信任会对照轻易懂得。
for ($n=1; $n < = 3; $n++)
{
$Number = $n;
$BigNum = $n*10;
$tpl- >assign(
array(
NUMBER = > $Number,
BIG_NUMBER = > $BigNum
)
);
$tpl- >parse(ROWS,".row");
}
parse这个函数有三种用法
$tpl- >parse(MAIN, "main"); // 尺度
$tpl- >parse(MAIN, array ( "table", "main") ); // 简约
$tpl- >parse(MAIN, ".row"); // 增添
个中以第三种最成心思,它暗示的是在本来已有的基本上再加上一个新数据。呵呵,这么说人人能够没法分明,咱们仍是看看再多研讨一下下面的源代码吧,究竟编程这器材有良多是只可领悟不成言传的!(上面附上英文的申明,不是地藏想偷懒不翻译,其实是有些器材看原味的比翻译的加倍轻易了解呀,
In the regular version, the template named ``main'' is loaded if it hasn't been already, all the variables are interpolated, and the result is then stored in FastTemplate as the value MAIN. If the variable '{MAIN}' shows up in a later template, it will be interpolated to be the value of the parsed ``main'' template. This allows you to easily nest templates, which brings us to the compound style.
The compound style is designed to make it easier to nest templates.
The following are equivalent:
$tpl- >parse(MAIN, "table");
$tpl- >parse(MAIN, ".main");
// is the same as:
$tpl- >parse(MAIN, array("table", "main"));
// this form saves function calls and makes your code cleaner
It is important to note that when you are using the compound form, each template after the first, must contain the variable that you are parsing the results into. In the above example, 'main' must contain the variable '{MAIN}', as that is where the parsed results of 'table' is stored. If 'main' does not contain the variable '{MAIN}' then the parsed results of 'table' will be lost. The append style allows you to append the parsed results to the target variable. Placing a leading dot . before a defined file handle tells FastTemplate to append the parsed results of this template to the returned results. This is most useful when building tables that have an dynamic number of rows - such as data from a database query. )
最初在完成下面的进程后,就能够停止输入了,FastTemplate库利用利用FastPrint(HANDLE) 来停止输入。
$tpl- >FastPrint();
在经由下面的这些步调后,人人对利用FastTemplate库的进程是不是清晰分明呢?地藏尝尝把下面的进程总结一下,看看对列位伴侣是不是有匡助:
起首:将库用include加出去
其次:界说一个类变量,在上例中是$tpl
再次:界说各类最小元素,好比下面的$tpl = new FastTemplate("./templates");
然后:使用parse函数将各类最小元素停止组合起来
最初:用FastPrint()停止输入
我的文章不会对您的学习起到实质性的作用,您能否成功,还得靠自己的,坚持,坚持,再坚持,就是步入成功的不二法门。 |
|