老尸 发表于 2015-2-4 00:11:26

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之类的吧?模板呢?

小女巫 发表于 2015-2-4 09:56:26

当然这种网站的会员费就几十块钱。

不帅 发表于 2015-2-9 21:59:15

本文当是我的笔记啦,遇到的问题随时填充

爱飞 发表于 2015-2-11 16:51:44

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

冷月葬花魂 发表于 2015-3-2 15:49:55

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

老尸 发表于 2015-3-7 23:33:51

在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。

透明 发表于 2015-3-12 18:04:06

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

小妖女 发表于 2015-3-15 09:25:00

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。

愤怒的大鸟 发表于 2015-3-18 09:11:01

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

精灵巫婆 发表于 2015-3-19 07:37:36

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

小魔女 发表于 2015-3-19 17:34:44

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

兰色精灵 发表于 2015-3-20 18:40:24

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

若天明 发表于 2015-3-28 02:50:37

实践是检验自己会不会的真理。

活着的死人 发表于 2015-4-1 14:11:19

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

分手快乐 发表于 2015-4-6 00:09:44

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

再见西城 发表于 2015-4-7 01:18:21

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

admin 发表于 2015-4-10 15:12:01

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

变相怪杰 发表于 2015-4-12 15:30:04

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

深爱那片海 发表于 2015-4-15 13:49:19

当然这种网站的会员费就几十块钱。

莫相离 发表于 2015-4-22 03:35:50

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
页: [1] 2
查看完整版本: PHP教程之Smarty模板疾速入门