0

0

ThinkPHP框架之视图_PHP教程

php中文网

php中文网

发布时间:2016-07-14 10:12:19

|

1162人浏览过

|

来源于php中文网

原创

一、视图

 

Tome
Tome

先进的AI智能PPT制作工具

下载

1、 视图组件的构成:

 

1) 视图类

立即学习PHP免费学习笔记(深入)”;

 

View类

Smarty类

 

2) 模板

 

Tpl/项目/模块/***.html

 

视图类负责读取模板内容,并实现字符串替换,最终再输出给用户

 

2、 模板定义

 

默认的模板文件定义规则:

 

模板目录/[分组名/]模块名/操作名+模板后缀

 

TMPL_TEMPLATE_SUFFIX

 

一般情况下,模板的后缀大体使用以下几种:

 

.html

.htpl

.tpl

 

3、 分隔符

 

因为每个模板设计者的习惯不同,有的人习惯使用“{}” 有的人使用   {**}

 

在配置文件中,可以设置以下两个配置选项,表示配置模板的分隔符

 

 'TMPL_L_DELIM'=>'

 'TMPL_R_DELIM'=>'}>',

 


 

4、 模板赋值以及输出

 

1)    $this->assign(‘模板变量名’,变量);

         $var = '手机';
       
        $this->assign('var',$var);
       
        $this->display('test');


2)    $this->assign(数组变量);

     

 
   

   

        $var = '手机';
       
        $this->assign('var',$var);
       
        $arr['price'] = 33.3;
        $arr['address'] = '北京';
        $this->assign($arr);
        $this->display('test');
    }

 

 

3)$this->display(‘操作名’)

       当前模块下的指定操作名.html模板

4)$this->display(‘模块:操作名’); //模板是可以跨模块调用的


       引用指定模块下的指定的操作名.html模板

5)$this->display(‘操作’,’输出编码’,’输出类型’);

 


       //跨模块输出
        $this->display('User:login','utf-8','text/html');

 

 

 

5、 模板替换(模板常量)

 在项目中经常要引用css、js、图片的资源需要引用。


__PUBLIC__:当前网站的公共目录

__APP__: 当前项目的URL地址

 __GROUP__:当前分组的URL地址

__URL__:当前模块的URL地址

__ACTION__:当前操作的URL地址

 

在tp中的模板里,可以使用以上模板常量,它们表示不同的字符串,一般在需要引用url时,可以用到以上常量

 

默认来讲:如果我们访问:

 

Localost/index.php/home/product/test,这时模板如使用了__PUBLIC__模板常量,那么它的值指向了apache的htdocs目录下,但是如果我们有多项目,这时会有冲突,如何解决?

 

解决之道:

 

1) 修改配置文件

 

在配置文件中,可以配置一个叫TMPL_PARSE_STRING选项,它可以定义在模板使用的模板常的值

 


 

然后,在模板中,可以这样来引用当前项目下的资源文件:

 


 

2) 配置虚拟主机

 

打开host文件:


打开httpd.conf

 

 


 

将上面的配置选项之前的#去掉

 

打开httpd-vhosts.conf文件,添加新的虚拟主机设置

 


 

重启apache

 

Localhost---àapache/htdocs/

 

Tp.com-----àapache/htdocs/tp/

 

6、 获取内容

 

$this->fetch();

 


 

Display:读取模板、替换内容、输出

Fetch:读取模板、替换内容、返回字符串(主要用于生成静态页)

 

 

二、模板

 

1、 模板注释:

 

l  {/* 注释内容 */ }

 

l  {// 注释内容 }

 

Tp中的模板注释主要是给模板设计者或程序设计者来看的

 

2、 变量输出:

 

程序向模板中赋值

 

普通变量

       $name

数组变量

       $row

对象变量

       $obj

 

代码示例:

 

Php程序:

 


 

模板程序:

 


 

 

 

 

 

 

 

3、 系统变量   (模板中的系统变量)

 

l  $Think.server        $_SERVER

l  $Think.get               $_GET

l  $Think.post             $_POST

l  $Think.request         $_REQUEST

l  $Think.cookie          $_COOKIE

l  $Think.session         $_SESSION

l  $Think.config          读取配置文件      

 

 


 

4、 使用函数

 

l  格式

 

       {$name|fn1|fn2=arg1,arg2,###}

 


 

5、 默认值

 

{$变量|default="默认值"}

 


 

6、 运算符

 

l  +              {$a+$b}

l  -        {$ab}

l  *              {$a*$b}

l  /        {$a/$b}

l  %             {$a%$b}

l  ++            {$a++} 或  {++$a}

l  --              {$a--}  或 {--$a}

 


 

7、 内置标签

 

l  闭合标签


l  开放标签

 

8、 包含文件

 

 

是基于项目的入口文件位置。

 

./Tpl/Admin/Public/header.html

 

我们将网页公共部分放到header.html和footer.html两个公共模板页中,在主页中使用include进行引用

 


 

 

 

上面在引用文件时,路径过长,如何解决?

 

 

l  格式:

      

 

       file(必须):资源文件

       type(可选):资源文件类型,默认为js

 

       起始路径是网站的Public(__PUBLIC__)目录

       采用命名空间方式

       目录.目录.文件名

 


 

10、             volist标签

 

用于遍历数组元素

 

l  格式:

 

      

              {$vo.id}

              {$vo.name}

      

 

l  name(必须):要遍历的数组变量

l  id(必须):当前数组元素

l  offset:     要输出数据的offset

l  length:    输出数据的长度,需要指定offset

l  key: 循环索引   key的值默认为 i

 


 

 

11、             foreach标签

 

用于遍历数组变量

 

语法:

              {$vo.id}

              {$vo.name}

 

Name :要遍历的数组变量

Item:用于保存当前元素的变量名

 

如果有特殊需求,使用volist,否则使用foreach

 


12、             for标签

 

              {$i}

 

属性:

l  start(必须):循环变量开始值

l  end(必须):循环变量结束值 (不包括)

l  name(可选):循环变量名,默认值为i

l  step(可选):步进值,默认值为1

 


 

13、             switch标签

 

l  格式:

              输出内容1

输出内容2

默认情况

 


 

14、             empty标签

 

name为空值

 

15、             assign标签

 

16、             if标签

 

l  if

l  elseif

l  else

 


 

判断时,需要使用以下连接符

 

l  eq或者 equal:等于

l  neq 或者notequal:不等于

l  gt:大于

l  egt:大于等于

l  lt:小于

l  elt:小于等于

l  heq:恒等于

l  nheq:不恒等于

 

17、             使用php代码

 

1)echo “hello”;

2)


 

在配置文件中,有一个选项可以控制第二种方法是否可用


TMPL_DENY_PHP 可以禁用第二种方法

 

建议:尽量少在模板中使用php代码


 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477228.htmlTechArticle一、视图 1、 视图组件的构成: 1) 视图类 View类 Smarty类 2) 模板 Tpl/项目/模块/***.html 视图类负责读取模板内容,并实现字符串替换,最终...

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

9

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

8

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

3

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

17

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号