- 浏览: 132344 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
爱吃小面:
jquery中altow应该改为altrow
Jquery 实现隔行变色 -
lsyx5566:
...
php获取表单数据 -
shaka:
你们这些从业人员怎么写东西都这么不负责任,
验证url的
ww ...
JS 验证时间/url地址/电子邮件 -
java小细胞:
请问一下url除了规定协议还有什么规则?
js验证URL -
hesihua:
恩 写的非常好噢~~
Jquery 实现隔行变色
一: Smarty介绍
使用Smarty 要掌握一个原则:将程序应用逻辑与网页呈现逻辑明确地分离。就是说 PHP 程序里不要有太多的 HTML 码。程序中只要决定好那些变量要塞到模版里,让模版自己决定该如何呈现这些变量
在 Smarty 中,一切以变量为主,所有的呈现逻辑都让模版自行控制。因为 Smarty 会有自己的模版语言,所以不管是区块是否要显示还是要重复,都是用 Smarty 的模版语法 (if, foreach, section) 搭配变量内容作呈现。这样一来感觉上好象模版变得有点复杂,但好处是只要规划得当, PHP 程序一行都不必改。
二: Smarty模板运行示意图:
三: Smarty安装配置:
1. 官方网站下载:http://www.smarty.net/ 最新版本是:Smarty-2.6.21
2. 解压Smarty-2.6.21,里面的libs目录下的文件是我们需要的
3. 在网站根目录下建立项目文件夹smartyDmoe/, 将libs文件夹整个考到smartyDmoe目录下。
4. smartyDmoe/下新建6个文件夹:
cache
configs
templates //模版文件
templates_c //Smarty 编译过的档案
includes //用来放置一些 function 、 sql 檔
modules //是用来放置程序模块的,如此一来便不会把程序丢得到处都是,整体架构一目了然。
5. test.htm,保存在 templates 目录下面
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>{$title}</title> </head> <body> {$content} </body> </html>
6. 建立文件模板配置文件: main.php,保存在项目主目录smartyDmoe/ 下面
<?php include "libs/Smarty.class.php"; @define('__SITE_ROOT', str_replace("\\","/",dirname(__FILE__))); $tpl = new Smarty(); $tpl->template_dir = __SITE_ROOT . "/templates/"; $tpl->compile_dir = __SITE_ROOT . "/templates_c/"; $tpl->config_dir = __SITE_ROOT . "/configs/"; $tpl->cache_dir = __SITE_ROOT . "/cache/"; $tpl->left_delimiter = '{'; $tpl->right_delimiter = '}'; ?> //left_delimiter 和right_delimiter 两行其实可以不用写的,因为在Smarty.class.php中已经赋值了。
7. 建文件test.php文件,放在项目主目录smartyDmoe/ 下面
<?php require "config.php"; $tpl->assign("title", "smarty配置"); $tpl->assign("content", "smarty配置成功了"); $tpl->display('test.htm'); ?>
8. 在浏览器输入http://localhost/smartyDmoe/test.php
显示: smarty配置成功了
9. 为了能在网站全局使用Smarty技术,我们可以修改PHP.inc里面的
include_path = ".;d:\php\includes"
改为:
include_path = ".;d:\php\includes;d:\web\smartyDmoe\libs"
下面这句就不用再写
最后整理一下整个 Smarty 程序撰写步骤:
Step 1. 加载 Smarty 模版引擎。
Step 2. 建立 Smarty 对象。
Step 3. 设定 Smarty 对象的参数。
Step 4. 在程序中处理变量后,再用 Smarty 的 assign 方法将变量置入模版里。
Step 5. 利用 Smarty 的 display 方法将网页秀出。
四:控制模板的内容,重复区域
1.Smarty 样板中,重复一个区块有两种方式: foreach 及 section, 这两个函数的输出都是一样的
(1. foreach 要以巢状处理的方式来呈现我们所 assign 的两层数组变量.
(2. section 则以「主数组[循环名称].子数组索引」即可将整个数组呈现出来
其中foreach函数和PHP中的foreach函数是一样的.
section 则是 Smarty 为了处理如数组变量所发展出来的叙述。
2. 数组index索引要从0开始的,否则section输出时将不输出最后一个索引值,如果index索引不是整数的话,section将不予检索。
3. 实例:
(1. test2.php 代码:
<?php require "config.php"; //index索引要从0开始的,否则section输出时将不输出最后一个索引值,如果index索引不是整数的话,section将不予检索 //$array1 = array(1=>"中国", 2=>"日本", 3=>"美国", 4=>"俄罗斯"); //$array1 = array("a"=>"中国", "b"=>"日本", "c"=>"美国", "d"=>"俄罗斯"); $array1 = array(=>"中国", 2=>"日本", 3=>"美国", 4=>"俄罗斯"); $tpl->assign("array1", $array1); $array2 = array( array("index1" => "data1-1", "index2" => "data1-2", "index3" => "data1-3"), array("index1" => "data2-1", "index2" => "data2-2", "index3" => "data2-3"), array("index1" => "data3-1", "index2" => "data3-2", "index3" => "data3-3"), array("index1" => "data4-1", "index2" => "data4-2", "index3" => "data4-3"), ); $tpl->assign("array2", $array2); $tpl->display("test2.html"); ?>
(2. test2.html 代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>测试重复区块循环输出</title> </head> <body> <!--用foreach来输出array1--> 用foreach来输出array1---> {foreach item=arr1 from=$array1} {$arr1} {/foreach} <br> <!--用section来输出array1--> 用section来输出array1---> {section name=sec1 loop=$array1} {$array1[sec1]} {/section} <br> <!--用foreach来输出array2--> 用foreach来输出array2---><br> {foreach item=index2 from=$array2} {foreach key=key2 item=item2 from=$index2} {$key2}: {$item2} {/foreach} <br> {/foreach} <br> <!--用section来输出array2--> 用section来输出array2---><br> {section name=sec2 loop=$array2} index1: {$array2[sec2].index1} index2: {$array2[sec2].index2} index3: {$array2[sec2].index3} <br> {/section} </body> </html>
(3. 运行结果:
测试重复区块循环输出测试重复区块循环输出用foreach来输出array1---> 中国 日本 美国 俄罗斯 <!---->用section来输出array1---> 中国 日本 美国 俄罗斯 <!---->用foreach来输出array2---> index1: data1-1 index2: data1-2 index3: data1-3 index1: data2-1 index2: data2-2 index3: data2-3 index1: data3-1 index2: data3-2 index3: data3-3 index1: data4-1 index2: data4-2 index3: data4-3 <!---->用section来输出array2---> index1: data1-1 index2: data1-2 index3: data1-3 index1: data2-1 index2: data2-2 index3: data2-3 index1: data3-1 index2: data3-2 index3: data3-3 index1: data4-1 index2: data4-2 index3: data4-3
发表评论
-
PHP 读取MAC地址
2009-07-01 21:01 2194代码: <?php class GetMacAd ... -
PHP读取.ini文件
2009-06-25 18:25 5868parse_ini_file -- 解析一个配置文 ... -
PHP 读取注册表
2009-06-25 17:45 2177Example on how to read a r ... -
PHP echo, print, printf, sprintf函数的区别和使用
2009-06-25 16:09 82431. echo函数: 输出函数,是命令, ... -
XXTEA 加密算法的 PHP 实现
2009-06-24 16:44 2636<?php /* XXTEA encrypti ... -
$_SERVER
2009-06-23 10:17 983<?php echo "<table ... -
PHP获得URL路径
2009-06-09 15:42 22591. PHP获得网站根目录: $_SERVER['DOCUM ... -
PHP写入二进制文件
2009-06-08 17:49 4252一:php将字符串写入二进制文件,并读取文件 函数: unp ... -
PHP相关语法
2009-05-15 13:29 8511.PHP获得字符串长度: $length = s ... -
关于PHP从checkbox取值
2009-05-13 20:59 5629在用到checkbox的时候发现php只能取一个值,查了 ... -
PHP正则表达式
2009-04-16 18:57 1095一:匹配YYYY-MM-DD (([0-9]{3 ... -
php获取request保存的值
2009-04-13 14:21 4145php获取request中的值: 1。保存值:$_REQUE ... -
php页面跳转
2009-04-06 14:41 2100PHP的HEADER函数。PHP里的HEADER函数的作用就是 ... -
php数组
2009-04-05 16:15 9471. 创建数组并输出 $valueArray = arra ... -
php获取表单数据
2009-04-05 11:08 57481. html代码: <html> & ... -
shell_exec()函数
2009-01-07 13:46 1692public function execCmd() { ... -
strtolower()函数
2009-01-07 13:26 1121字符串全转为小写。 语法: string str ... -
php-java-bridge连接桥
2009-01-06 12:52 9126JavaBridge.jar : 启动一个后台程序通过端口和 ... -
dirname(__FILE__)函数
2009-01-06 10:45 2760dirname(__FILE__) 就是取得当前文件所在的目录 ... -
define()函数
2009-01-06 10:26 1262The define() function defines a ...
相关推荐
官方下载地址、windows最适合版本号,所有程序的安装、以及最重要的配置工作,均包含在内,以最简明的方式实现环境的建立。 本文为我自己花1天时间从头开始配环境(2010.3.19),从实践得出的傻瓜化、“手把手”教程...
非常实用的框架,可以在此基础上继续开发。利用php融合smarty技术编写的框架,开发环境用的是windows+Zend Studio+mysql服务器是用的wamp。登录已经写好。
HuCart是一款领先企业建站系统,基于PHP+Mysql架构的,可运行在Linux、Windows等各种服务器平台上,常规环境下,能支 持百万 级数据。DIY各栏目内容,所有内容展示自由选择。 优秀搜索引擎优化:快速检索页面、优秀...
2.6Windows下使用组合包 2.7PHP常用开发工具 2.8第一个PHP实例 3.PHP语言基础(教学录像:49分19秒) 3.1PHP标记风格 3.2PHP注释的应用 3.3PHP的数据类型 3.4PHP常量 3.5PHP变量 3.6PHP运算符 3.7PHP的表达式 3.8PHP...
2.6Windows下使用组合包 2.7PHP常用开发工具 2.8第一个PHP实例 3.PHP语言基础(教学录像:49分19秒) 3.1PHP标记风格 3.2PHP注释的应用 3.3PHP的数据类型 3.4PHP常量 3.5PHP变量 3.6PHP运算符 3.7PHP的表达式 3.8PHP...
本图书管理系统主要是用来管理图书,及读者,是...技术方面使用smarty模板开发web应用时的命名方,在mysql数据库表中使用auto_increment属性设置自动编号位数,及初始值。实现了一个功能比较完整,可配置的图书管理系统
使用了smarty模板引擎 使用了xhEditor文本编辑器 集成了百度分享 在此对所有插件开发者表示感谢 升级指南:无升级指南 安装方法: 将下下载来的压缩包解压,放到web根目录,然后访问install文件夹。会引导你...
SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于...
12、全新的Smarty模板引擎及缓存技术。 13、超炫的产品图片展示效果。 14、多语言共用一套模板,多语言分别采用独立的模板两种模式支持。 15、中文简、繁自动转换。 16、全部采用 UTF-8...
HuCart是一款领先企业建站系统,基于PHP Mysql架构的,可运行在Linux、Windows等各种服务器平台上,常规环境下,能支 持百万 级数据。DIY各栏目内容,所有内容展示自由选择。 优秀搜索引擎优化:快速检索页面、优秀...
《PHP从入门到精通》所配DVD光盘含有全程语音视频讲解教学录像以及实例的全部源代码,这些源代码都经过精心调试,在WindowsXP、Windows2000、Windows2003下全部通过。《PHP从入门到精通》内容详尽,实例丰富,非常...
SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于...
《PHP从入门到精通》所配DVD光盘含有全程语音视频讲解教学录像以及实例的全部源代码,这些源代码都经过精心调试,在WindowsXP、Windows2000、Windows2003下全部通过。《PHP从入门到精通》内容详尽,实例丰富,非常...
1.1 Windows下IIS的安装配置 1.1.1 IIS的安装 1.1.2 配置调试IIS运行环境 1.1.3 IIS的设置 1.2 Linux下Apache的安装配置 1.2.1 Apache的安装工作 1.2.2 Apache的配置工作 1.3 PHP的安装配置 1.3.1 Windows系统中PHP...
-电子商务网站与PHP前后台自己开发的电商网站-php源码-smarty模版A.2017.2-2017.4 BhereShop购物商城项目该项目的IP,域名尚在准备案途中,此...使用技术:MVC架构模式下面向对象的编程开发单个入口机制数据库技术,My
《PHP从入门到精通》所配DVD光盘含有全程语音视频讲解教学录像以及实例的全部源代码,这些源代码都经过精心调试,在WindowsXP、Windows2000、Windows2003下全部通过。谢谢,www.liwuguo.com 支持整理。《PHP从入门到...
2.2 在Windows下使用IIS+PHP+MySQL搭建PHP环境 2.3 在Linux下的安装配置 2.4 PHP常用开发工具 2.5 第一个PHP实例 2.6 小结 2.7 练习与实践 第3章 PHP语言基础 视频讲解:47分钟 3.1 PHP标记风格 3.2 PHP注释的应用 ...
启科网络商城系统由启科网络技术开发团队完全自主开发,使用国内...系统要求: Apache + Rewrite组件(支持.htaccess URL重写) + php5 + mysql5 + zend 暂不支持Windows环境。运行时请保证程序对data目录有写入的权限。
ELINCMS系统的特征及运行环境。1、ELINCMS 100%的开源软件。2、系统以 PHP+MYSQL 并应用流行的SMARTY 模板引擎。3、ELINCMS是在开源的LINUX平台下开发的。还未进行WINDOWS系统的IIS下测试,所以推荐运行于 LINUX操作...
智伟CMS免费开源企业建站系统_繁体版本 GV32CMS是一款领先企业建站系统,基于PHP Mysql架构的,可运行在Linux、Windows等各种服务器平台上,常规环境下,能支 持百万 级数据。DIY各栏目内容,所有内容展示自由选择。...