thinkPHP的模板是做什么用的】的更多相关文章

thinkPHP的模板是做什么用的 问题 为什么PHP中ThinkPHP有做类似模板引擎的东西?smarty也是?这些到底有何用? 我是真没发现它们的用处在哪里?分离了前端和PHP的依赖?HTML文件确实没有写PHP代码了,但是却有smarty或者Thinkphp的模板引擎代码在里面,PHP程序员要学,前端人员也要学,这不是反而增加了开发时间和开发难度?吃力不讨好?而且用了模板引擎势必要在PHP层面对HTML代码进行字符串替换解析,都知道字符串替换是很耗性能的,费时又浪费性能的.仅仅为了分离前端…
linux下, 使用thinkphp的模板标签,如 eq, gt, volist defined, present , empty等 标签时, 报错: used undefined function \Think\Template\simplexml_load_string(), 原因是 没有安装 php-xml包... 在php中, 关于xml有三个php包: php-xml; php-xmlrpc php-xmlseclibs: 这三个包都是 module for php applicati…
转之--http://www.thinkphp.cn/topic/6258.html 模板标签让网站前台开发更加快速和简单,这让本该由程序猿才能完成的工作,现在只要稍懂得HTM的人也能轻易做到,这也就是模板标签的强大之处.接触过dedecms或者phpcms等内容管理系统的人都知道,cms的前台都是使用模板标签来调用数据,如列表,内容.来看一个phpcms v9调用数据排行列表的标签: 1 {pc:content action="hits" catid="6" nu…
thinkphp在模板中使用php的函数 使用 {:函数名} 的形式 例如: // 获取 session 中存的值 {:session('admin.loginname')} // 输出当前日期 {:date('Y-m-d H:i:s', time())}…
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: 对于字符串的截取,truncate函数只适合英文用户,对与中文用户来说,使用 truncate会出现乱码,而且对于中文英文混合串来说,截取同样个数的字符串,实际显示长度上却不同,一个中文的长度大致相当于两个英文的长度.此外,truncate不能同时兼容GB2312.UTF-8等编码. 解决方法:自…
默认情况下ThinkPHP框架系统默认使用的模板引擎是内置模板引擎.内置模板引擎支持模板文件中采用php原生态代码和模板标签的混合使用.ThinkPHP官方开发文档说,这种默认的内置模板引擎的性能是高效的,但还不是最佳的.要使模板引擎的性能达到最佳效率,就要使用PHP本身作为模板引擎.使用PHP本身作为模板引擎其实很简单,只需在项目的配置文件Conf/config.php上配置:'TMPL_ENGINE_TYPE' =>'PHP' 采用PHP本身作为模板引擎后,意味着你将不能再使在模板文件上使用…
APP_PATH // 当前项目目录APP_NAME // 当前项目名称 ACTION_NAME // 当前操作名称 CACHE_PATH // 项目模版缓存目录 CONFIG_PATH //项目配置文件目录 COMMON_PATH  //项目公共文件目录 DATA_PATH  // 项目数据文件目录 GROUP_PATH //当前分组名称 HTML_PATH//项目静态文件目录 IS_APACHE // 是否属于 Apache IS_CGI  //是否是CGI模式 IS_IIS //是否属于 …
错误一:低级错误,将n打成看m,如图1 图1 这个找错,花了我将近2小时.扫了好几遍与之相关的代码,上网查了好些. 错误二:这个算是个低能的高级错误了.具体模板显示的效果如图2 图2 只要将相对地址及绝对地址找对即可了,但是我都设置好了,感觉就像常量没生效一样,结果还如上图2.我的常量设置如图3 入口文件定义常量,模板再去引用 常量在模板中的引用 问题所在: 我虚拟地址的配置如图 已经到了go目录但是我在设定常量时多设置路径了,导致了路径的错误.应该如下 错误三:差点忘了写了,其中在模板中引用常…
mvc即模型(model)-视图(view)-控制器(controller)的缩写 控制器很重要,功能性的东西要靠它实现,模型我还没接触到,只知道它对数据库负责,类似一个大控件吧... 速度... 一个网站说白了还是给用户看的视图,那么控制器可以控制视图... 控制器在D:\WWW\myapp\Index\Lib\Action里面 入口文件是index.php <?php define('APP_NAME','Index'); //项目名称 define('APP_PATH','./Index/…
AE模板: 是指设计师用Adobe After Effect做好各种视频动画,比如炫酷视频,文艺/搞笑的场景,相册效果等,根据我们的指导文件导出.蓝松SDK会解析导出的文件,自动还原成AE设计时的动画效果; 无需开发者再一帧一帧的绘制,开发者只需要做的是:引导用户选择素材,然后替换即可,执行后,即可得到用户自己的效果. 可做类似微商视频, 小柿饼的效果等 ----------------2018年10月08日 蓝松短视频SDK已更新:      android版本至3.1.0:        …
首先开启模板布局要在配置文件添加: 'LAYOUT_ON'=>true, 'LAYOUT_NAME'=>'layout', 如果需要设置多个布局模板,就要先关闭上面的LAYOUT_ON,也就是修改成false!! 在你的View目录下,想有多少个就多少个!自己创建就行. 然后再你想要哪个布局的页面<head></head>下添加<layout name="模板布局名字"/>,当然没有<head></head>的可以…
模板继承是3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层.模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载.因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换这些区块.每个区块由<block></block>标签组成,并且不支持block标签的嵌套.…
我已经将模板引擎配置为smarty,在模板中使用常量是写为 {$smarty.const.ADMIN_IMG} 到使用到session的值时这样写 {$smarty.session.mg_name}…
错误1: template<class T>void temp(std::vector<T>& container){        std::vector<T>::const_iterator p; //error: expected ‘;’ before ‘p’        for(p = container.begin(); p != container.end(); ++p)        {                //...        }…
3.1 模板放在哪儿? 放在模块的view目录下并且每个控制器的模板,要在与控制器同名的目录下. 以 index.php/Home/User/add则对应的模板在 /Home/view/User/add.html 3.2 叫什么?模板名和方法名是一致的 例: 地址栏: index.php/Home/User/add对应控制器: Home/UserController 对应的方法: add  (通过这个方法访问add.html,所以模板名和方法名要是一样的)对应的模板: Home/View/Use…
一直以来对cms后台的栏目管理不太理解,尤其是子栏目顶级栏目这种关系,通过网上的搜索与自己的摸索,实现方法如下(原理是利用数据库的path字段): 1.建立简单的栏目表: CREATE TABLE `self_cd`( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` ) NOT NULL, `pid` ', `path` TEXT NOT NULL ) ENGINE = MYISAM ; 2.建立CdModel.clas…
为了更方便的输出模板文件,新版封装了一个T函数用于生成模板文件名. 用法: 大理石平台检验标准 T([资源://][模块@][主题/][控制器/]操作,[视图分层]) T函数的返回值是一个完整的模板文件名,可以直接用于display和fetch方法进行渲染输出. 例如: T('Public/menu'); // 返回 当前模块/View/Public/menu.html T('blue/Public/menu'); // 返回 当前模块/View/blue/Public/menu.html T(…
看表单的提交<form action="{$Think.const.__SELF__}"  method="post">...</form> 起初以为是提交给自己本身,怎么没提交给控制器中处理他的方法,后来发现输出__SELF__的值为/index.php/admin/Manager/login,这就是控制器的login方法的访问方式,其实是提交给控制器处理它的方法.…
循环中.自己定义的id=volist就可以使用$volist.id 或者$volist['id'] 而外面定义的变量就不能使用$vo.id 必须使用$vo['id']<volist name="list" id="volist">         <option value="{$volist.id}" <if condition="$volist.id eq $vo['pid']">select…
// // main.cpp // 矩阵求逆 // // Created by 唐 锐 on 13-6-20. // Copyright (c) 2013年 唐 锐. All rights reserved. // #include<iostream> #include<algorithm> #include<iomanip> #include<string> #include<sstream> #include<cmath> #in…
denglu.php <?php include "init.inc.php"; $smarty->assign("action","main.php"); $smarty->display("denglu.html"); denglu.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "…
> ##### 前言,现在有一组数据(涉及到3个数据表,order订单表,order_process办理流程表,process_status流程描述表),根据当前订单,展示相应信息 1.办理流程部分数据: 2.流程状态部分数据: 3.期望达到效果如下: 这里就需要用到几个部分的技巧结合 一般的循环嵌套使用 <volist name="list" id="vo"> <volist name="vo['sub']" id=&q…
目录 1. 手册地址: 2. 如果前面输出的变量在后面定义的函数的第一个参数,则可以直接使用 3. 还可以支持多个函数过滤,多个函数之间用"|"分割即可,例如: 4. 变量输出使用的函数可以支持内置的PHP函数或者用户自定义函数,甚至是静态方法. 1. 手册地址: https://www.kancloud.cn/manual/thinkphp5/125005 2. 如果前面输出的变量在后面定义的函数的第一个参数,则可以直接使用 {$data.name|substr=0,3} //或者…
在ThinkPHP的模板中操作session时,可以参考ThinkPHP参考文档中的“模板—>系统变量”部分,在默认模板引擎中,语法如下: {$Think.session.user} //输出session中保存的user信息 但是,如果user是一个数组的话,该怎么输出数组中指定的单元(如'user_id')呢?用{$Think.session.user.user_id}或者{$Think.session.user['user_id']}是不行的.前者错误的原因是这种写法只支持一个点:第二种是…
ThinkPHP的模板主题机制,如果只是在PC,只要需修改 DEFAULT_THEME (新版模板主题默认是空,表示不启用模板主题功能)配置项就可以方便的实现多模板主题切换. 但对于移动端和PC端,也许你会设计完全不同的主题风格,且针对不同的来路提供不同的渲染方式,其中一种比较流行的方法是“响应式设计”,但就本人经历而言,要实现完全的“响应式设计”并不是那么容易,且解决兼容问题也是个难题,假设是大型站点,比如:淘宝.百度.拍拍这些,响应式设计肯定是满足不了需求的,而是需要针对手机访问用户提供单独…
如何关闭ThinkPHP的模板缓存 ThinkPHP的模板缓存是无奈关闭的,因为内置的模板引擎是一个编译型的模板引擎,必须经过编译后生成一个可执行的缓存文件才能被执行.但是可以设置缓存的有效期,例如设置 ‘TMPL_CACHE_TIME’ =>3, // 模板缓存有效期 -1 永久 单位为秒 这样,每隔3秒系统会自动重新编译模板文件.默认的配置是-1 表示永久缓存,除非模板文件有改动,模板文件一旦有改动会自动重新编译,如果是包括进来的外部文件有修改,系统是不会自动重新编译的. ThinkPHP的…
在项目开发的时候,有时候希望直接在模板中调用 一些自定义方法,或者内置方法来,处理获得一些数据,并且赋值给一个变量给后面调用,这个时候如果用原生Php 的方式调用如下:<?php $abc = myfun();?>  这样就可以调用并赋值给一个$abc的变量了,但是如果在是使用thinkphp的模板标签来写模板 出现这样原生的php 调用方式很容易让模板变得混乱所以,我们如果是使用thinkphp的模板标签方式来写模板,那么就尽量保持使用 thinkphp的标签方式来调用.从官方文档知道 模板…
原文:Thinkphp入门三-框架模板.变量(47) [在控制器调用模板] display()   调用当前操作名称的模板 display(‘名字’)  调用指定名字的模板文件 控制器调用模板四种方式: [在控制器给模板传递变量] 在smarty里边给模板传递变量信息 $smarty -> assign(变量名称,值); 在tp框架里边同样适用assign()给模板传递变量信息 ThinkPHP的模板引擎的左右标记: ThinkPHP/Lib/ Behavior/ ParseTemplateBe…
smarty模板只要就是实现分离效果所以每个功能都需要两个页面一个是HTML  和 PHP  两部分组成 使用smarty模板要在main文件夹下面创建login.php文本,要用smarty模板首先引入入口文件, <?php include("../init.inc.php"); //引入入口文件 //var_dump($smarty);// $smarty->display("login.html");//用来在模板显示用户看到的内容 登录页面在sm…
在开发的过程中,常常遇到要使每一个模板页都包括一个header文件和一个footer文件.thinkPHP的模板布局为我们提供了一个叫全局配置方式可以解决问题. 1. 在配置文件里开启LAYOUT_ON 參数(默认不开启),而且设置布局入口文件名称LAYOUT_NAME(默觉得layout) 'LAYOUT_ON'=>true, 'LAYOUT_NAME'=>'layout', 2. 在模板文件夹下建立一个layout.html文件,文件内代码例如以下: <include file=&q…