#smarty的相关写法
原理
#article.html
<body>
<div>{subject}</div>
<div>{content}</div>
</body>
#index.php
<?php
$str = file_get_contents('article.html');
$subject='smarty视频教程分享';
$content='smarty视频教程分享,下面是具体的下载地址,有需要的朋友可以看看,对smarty模板讲解的非常详细,作者粗略看了一下目录,真是详细到细枝末节该......';
$str=str_replace('{subject}',$subject,$str);
$str=str_replace('{content}',$content,$str);
echo $str;
?>#就正常显示了
smarty={
<?php
include_once "smarty/Smarty.class.php";
$smarty->assign(key,value);
$smarty->display('XXX.html');
?>
#Smarty.class.php文件里的默认一些参数
setTemplateDir('.' . DS . 'templates' . DS)#指定html文件存储目录,display('index.html')则它会默认到templates去找,如果不需要指定的,那就写display('XX/index.html')
setCompileDir('.' . DS . 'templates_c' . DS)#指定编译文件存储目录
setCacheDir('.' . DS . 'cache' . DS)#指定缓存文件存储目录
setConfigDir('.' . DS . 'configs' . DS);#指定配置文件存储目录
public $cache_lifetime = 3600;#设置缓存的时间
public $caching = false;#是否开启缓存
public $left_delimiter = "{";#设置标签的左定界符,默认{$value}显示
public $right_delimiter = "}";#设置标签的右定界符
#####Smarty标签#######
# 在HTML里面的一些语法
1:{$key}#显示
2:{$key.下标}{$key[下标]}#显示数组中的某个值
3、判断:
{if $age <18}
内容
{elseif $age==20}
内容
{else}
内容
{/if}
#非空判断要用什么语句
{ if $array neq ""}
{/if}
4、for标签
{for $i=0 to 5}
内容 {$i}#0,1,2,3,4
{/for}
5、while标签
{while $age <18}#循环
内容
{/while}
6、section标签
#可以遍历多维数组
{section name=rows loop=$articleclass}
{assign var=SmallType value=$articleclass[rows].secondlist}#定义一个量
{section name=lists loop=$SmallType}
{/section}
{/section}#接着循环
{section name="别名" loop=$array}
{$array[别名]}
{/section}
注意:
#别名任意是什么
#1)只遍历索引数组 array("北京","上海","深圳","西安");只适用于这种格式
#2)无法获得数组下标
7、foreach标签#重点
{foreach $array as $k=>$v}
下标:{$k} 值:{$v}
{/foreach}
#既可以是索引,又可以是关联数组
8、忽略标签
{literal}
{$age}#忽略标签,还是会显示{$age},也就是smarty不编译
{/literal}
9、包含html文件
{include file="xxx.html"}#比如共用头部,尾部
10、包含php文件
{include_php file="xxx.php"}
#只有Smarty2可用
11、禁止缓存
{nocache}
#不想缓存的内容
{/nocache}
12、加载配置文件
{config_load file="配置文件名"}
#####给事件传参数####
oncick('{$v.XX}')
############变量调节器###########
{$key|default:"默认的内容"}#默认值,如果有$key,则显示$key,没有就显示默认类容
{$key|escape}#html转义,里面有html不执行,并且显示出来
{$key|truncate:长度}#截取字符串,几位
{$key|truncate:长度:"省略符号"}#截取字符串,几位(包括省略符号位数),字符串后面+包括省略符号
{$key|nl2br}#将\n转换为<br/>,换行,\n是 ,而<br/>是换行
##############configs文件夹#############
configs文件夹
#配置文件
#在configs文件夹下新建一个配置文件(xxx.conf)。键值对
key=value
key=value
key=value
#配置文件只能允许模板文件来调用,也就是在html文件引入,在html头部引入
{config_load file="xxx.conf"}
{#key#} #获得配置文件中指定的信息
##################Smarty缓存#####################
Smarty缓存
#缓存的意思就是不更新网站类容,用户在缓存时间内,看到的页面内容都是不变的
$smarty->caching = true;#开启缓存
$smarty->cache_lifetime = 3;#设置缓存时间
$smarty->display("cache1.html");#然后这个页面就开启了缓存
# 如果部分数据经常变化,不需要缓存,则在HTML文件里写入:
{nocache}
不想缓存的数据
{/nocache}
#按照页面不同的请求参数分别进行缓存,参数用来标志那个缓存html
$smarty->display("cache1.html",1);#后面就是缓存id标识,随便设置
#smarty中删除缓存的方法,加入到php文件
$smarty->clearAllCache();#清除所有缓存
$smarty->clearCache('cache1.html');#删除指定页面,设置了id标识,也会删除
$smarty->clearCache('cache1.html',1);#删除指定id标识缓存
# 什么样的页面应当添加缓存?
# 1、页面的访问量高(高并发)
# 2、页面的数据量大
# 什么样的页面不能加缓存?
# 1、页面里只有一个表单
# 2、页面的数据变更太频繁
}
MVC={
三层体系架构
#显示层:html、css、js、jquery
#逻辑层:php
#数据层:database、conn、dbio
MVC框架
# Model 模型(dbio)
# View 视图(templates)
# Controller 控制器(php)
MVC框架特点
#1、显示与逻辑相分离
#2、代码简化(通过面向对象进一步封装)
#3、项目单一入口(index.php)
MVC框架优点
#1、代码分工更加明确
#2、便于网站的维护与管理(便于二次开发)
项目目录
library----------------第三方资源包
smarty
jquery
kindeditor
application------------应用程序
configs--------------配置文件
core-----------------核心类
DbConn.php
model----------------模型(dbio)
view-----------------视图(templates)
controller-----------控制器(每个页面对应的php文件)
runtime--------------运行时
templates_c--------编译文件
cache--------------缓存文件
public-----------------公用文件
images
css
index.php--------------入口文件(引导文件)
#控制器命名规则
1、必须采用大驼峰的命名规则
2、必须以Controller来结尾
IndexController.php
#控制器中方法的命名规则
1、必须采用小驼峰的命名规则
2、必须以Action来结尾
deleteAction()
#一个url的访问方式
# http://localhost/项目/index.php
# http://localhost/项目/index.php?c=控制器&a=方法
# http://localhost/项目/index.php?c=控制器&a=方法&名=值&名=值
# 链接地址
<a href="index.php?c=控&a=方">文字</a>
<a href="index.php?c=控&a=方&名=值">文字</a>
# 引入样式表
<link href="public/css/xxx.css" ......>
# 引入图片
<img src="public/images/xxx.jpg">
# 引入jquery
<script src="library/jquery/jquery-1.4.js">
#############PHP原生session会话#################
PHP原生session会话
生命周期:打开浏览器创建、关闭浏览器销毁,测试是必须关闭窗口
# session文件保存在服务器端。
session_start();#在php最头部,前面不能有任何代码
$_SESSION["username"]="tom";#设置session
#就可以在其他php文件里直接访问
$a=$_SESSION["username"];
echo $a;
#删除session
unset($_SESSION["username"])
#############PHP原生cookie会话#################
PHP原生cookie会话
# cookie是保存在客户端。
setcookie("TestCookie",'789', time()+10);#这个页面不能一直刷新,否则一直设置,这里保存时间是10秒
cookie读取:
$_COOKIE["TestCookie"];#cookie读取,在其他页面读取,如果那个时间已经过期,则访问不到
cookie的删除:
setcookie("TestCookie","",time()-100);#把value为空,就代表删除,时间设置为-,这时到F12那里就没有了
}