PHP教程之Smarty模板疾速入门
不过语法好学,但是怎么用语法来实现每个人都有每个人的方式,几乎是各有千秋。然而借鉴别人成功的代码,绝对是有益无害,因此,多看那些经过千锤百炼凝出来的经典代码,是进阶的最好方法。疾速入门|模板 在PHP的世界里已呈现了林林总总的模板类,但就功效和速度来讲Smarty仍是一向处于抢先位置,由于Smarty的功效绝对壮大,所以利用起来比其他一些模板类稍显庞杂了一点。如今就用30分钟让您疾速入门。一. 装置
起首翻开网页http://smarty.php.net/download.php,下载最新版本的Smarty。解压下载的文件(目次布局还蛮庞杂的)。接上去我演示给人人一个装置实例,看过应当会触类旁通的。
(1) 我在根目次下创立了新的目次learn/,再在learn/里创立一个目次smarty/。将方才解紧缩出来的目次的libs/拷贝到smarty/里,再在smarty/里新建templates目次,templates里新建cache/,templates/,templates_c/, config/.
(2) 新建一个模板文件:index.tpl,将此文件放在learn/smarty/templates/templates目次下,代码以下:
[复制此代码]CODE:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Smarty</title>
</head>
<body>
{$hello}
</body>
</html>
新建index.php,将此文件放在learn/下:
[复制此代码]CODE:<?php
//援用类文件
require 'smarty/libs/Smarty.class.php';
$smarty = new Smarty;
//设置各个目次的途径,这里是装置的重点
$smarty->template_dir = "smarty/templates/templates";
$smarty->compile_dir = "smarty/templates/templates_c";
$smarty->config_dir = "smarty/templates/config";
$smarty->cache_dir = "smarty/templates/cache";
//smarty模板有高速缓存的功效,假如这里是true的话即翻开caching,然而会形成网页不当即更新的成绩,固然也能够经由过程其他的举措处理
$smarty->caching = false;
$hello = "Hello World!";
//赋值
$smarty->assign("hello",$hello);
//援用模板文件
$smarty->display('index.tpl');
?>
(3) 履行index.php就可以看到Hello World!了。
二. 赋值
在模板文件中需求交换的值用大括号{}括起来,值的后面还要加$号。例如{$hello}。这里可所以数组,好比{$hello.item1},{$hello.item2}…
而PHP源文件中只需求一个复杂的函数assign(var , value)。
复杂的例子:
*.tpl:
Hello,{$exp.name}! Good {$exp.time}
*.php:
$hello = “Mr. Green”;
$hello=”morning”;
$smarty->assign(“exp”,$hello);
output:
Hello,Mr.Green! Good morning
三. 援用
网站中的网页普通header和footer是可以共用的,所以只需在每一个tpl中援用它们就能够了。
示例:*.tpl:
{include file="header.tpl"}
{* body of template goes here *}
{include file="footer.tpl"}
四. 判别
模板文件中可使用if else等判别语句,便可以将一些逻辑法式放在模板里。"eq", "ne", "neq", "gt", "lt", "lte", "le","gte""ge", "is even", "is odd", "is not even", "is not odd", "not", "mod", "div by", "even by", "odd by","==","!=",">", "<","<=",">="这些是if中可以用到的对照。看看就可以晓得甚么意思吧。
示例:
{if $name eq "Fred"}
Welcome Sir.
{elseif $name eq "Wilma"}
Welcome Ma'am.
{else}
Welcome, whatever you are.
{/if}
五. 轮回
在Smarty里利用轮回遍历数组的办法是section,若何赋值遍历都是在模板中处理,php源文件中只需一个assign就可以处理成绩。
示例:
{* this example will print out all the values of the $custid array *}
{section name=customer loop=$custid}
id: {$custid}<br>
{/section}
OUTPUT:
id: 1000<br>
id: 1001<br>
id: 1002<br>
六. 罕见成绩
Smarty将一切大括号{}里的器材都视为本人的逻辑法式,因而咱们在网页中想拔出javascript函数就需求literal的协助了,literal的功效就是疏忽大括号{}。
示例:
{literal}
<script language=javascript>
function isblank(field) {
if (field.value == '')
{ return false; }
else
{
document.loginform.submit();
return true;
}
}
</script>
{/literal}
那么接下来,这就算学会啦?NO,NO,NO,还早呢,你至尽还没碰过OOP之类的吧?模板呢? 当然这种网站的会员费就几十块钱。 本文当是我的笔记啦,遇到的问题随时填充 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。 建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql 实践是检验自己会不会的真理。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 当然这种网站的会员费就几十块钱。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
页:
[1]
2