smarty后台文件常用方法及说明

<?php

require ‘smarty.inc.php‘;

global $_smarty;//访问引入文件的变量

//分配变量

#普通变量

#该函数还有第三个参数,设置是否启用缓冲,如果为true,

#变量将不被缓冲

$_smarty->assign(‘title‘,‘虎哥开始学习smarty了‘);//给前端基本变量赋值

// $_smarty->assignByRef():同上,只是按照引用赋值

#数组

$arr1= array(‘协调‘,‘毛姐‘);//索引数组

$arr2=array(‘name‘=>‘huge‘,‘sex‘=>‘男‘);//关联数组

$arr3=array(‘world‘=>array(‘china‘=>‘河北‘));//二维数组

$_smarty->assign(‘arr1‘,$arr1);

$_smarty->assign(‘arr2‘,$arr2);

$_smarty->assign(‘arr3‘,$arr3);

$_smarty->assign(‘str‘,‘ hello x3 aAA‘);//用于变量修饰器测试

$_smarty->assign(‘str1‘,‘I love ‘);

$str2="War Dims Hope for Peace. Child‘s Death Ruins

Couple‘s Holiday.Man is Fatally Slain. Death Causes Loneliness, Feeling of Isolation.";

$_smarty->assign(‘str2‘,$str2);

$_smarty->assign(‘myname‘,‘huge‘);

$_smarty->assign(‘len‘,5);

$arr4=array(1001=>‘Hello‘,1002=>‘World‘,1003=>‘Thanks‘);

$_smarty->assign(‘arr4‘,$arr4);

$arr5=range(1,9);

$_smarty->assign( ‘tr‘, array(‘bgcolor="#eeeeee"‘,‘bgcolor="#dddddd"‘) );

#clear_all_cache();//清空所有的缓冲

#$_smarty->clearAllCache();

#clear_cache();//清空指定的缓冲

$_smarty->addConfigDir(‘./config_1‘);#添加文件目录

//$_smarty->setConfigDir(‘./config_2‘);//配置文件只有一个目录了

/*

类似的还有:

addTemplateDir(‘filename‘):添加模板文件目录

addPluginsDir(filename):添加插件目录

getCacheDir():获取缓冲目录

setCacheDir(filename):设置缓冲目录

getCompileDir():获取编译目录

setCompileDir(filename):设置编译目录

getConfigDir():获取配置文件目录

setConfigDir(filename):设置配置文件目录

getPluginsDir():获取插件目录

setPluginsDir(filename):设置插件目录

setTemplateDir(filename):设置模板目录

*/

// 以上函数设置目录的都可以传入关联数组或函数连用,eg

/*

$_smarty->setConfigDir(array(

‘one‘=>‘config1‘,

‘two‘=>‘config2‘,

‘three‘=>‘config3‘

));

*/

#方法连用

/*

$_smarty->setConfigDir(‘config1‘,‘one‘)

->setCompileDir(‘config2‘,‘two‘);

*/

// $arr6=$_smarty->getConfigDir();//获取文件目录

// print_r($arr6);

//append:为数组添加值

$_smarty->append(‘arr5‘,‘1‘);//和assign一样,放在html_table中会出错

$_smarty->append(‘arr5‘,‘2‘);

$_smarty->append(‘arr5‘,$arr5);

//appendByRef():和append一样,只是通过引用为数组添加值

// $_smarty->clearAllAssign();//清空全部分配变量

// 类似的还有:

// clearAllCache:清空全部缓冲

// clearAssign(‘name‘):清空指定的值,如果清空多个值的话可以用关联数组

// clearAssign(‘demo1.tpl‘):清空指定的模板的缓冲,另外还可以设置指定缓

// 冲id,编译id,生命周期的缓冲

// clearCompiledTemplate:清空编译模板文件,参数同上

// clearCofig():清除配置,如果指定变量名,则清空指定的变量

// $_smarty->compileAllConfig(‘.conf‘);//编译所有的配置文件,参数有

// 文件后缀;是否强制编译所有文件,false表示只编译修改过的文件;

// timelimit:设定模板编译过程的时间限制,默认无限制;最有一个参

// 数是设定最大错误次数,超过了这个次数,就停止编译

/*

类似的函数含有

compileAllTemplates:编译全部的模板,参数同上

*/

// $_smarty->configLoad(‘filename‘):加载配置文件,功能同{cofigLoad}标签

/*

$data = $_smarty->createData();//创建一个数据对象,以保存赋值

// 赋值到数据对象

$data->assign(‘foo‘,‘bar‘);

//创建模板对象,并将数据对象载入到其中作为赋值

$tpl=$_smarty->createTemplate(‘demo1.tpl‘,$data);

$tpl->display();

*/

/*

$_smarty->disableSecurity();//关闭安全机制

$_smarty->enableSecurity();//开启安全机制

*/

// $_smarty->fetch(‘template‘);//抓取模板内容并显示

// $_smarty->getConfigVars(varname):获取预配置变量,未设置参数时,获取所有变量

// $_smarty->getRegisteredObject(objname):获取已注册对象

/*

$tpl=$_smarty->createTemplate(‘demo1.tpl‘);

$tags=$_smarty->getTags($tpl);//获取模板中的所有标签

print_r($tags);

*/

// $_smarty->getTemplateVars();//获取模板变量,如果不设置名称,将获取所有变量

/*

if($_smarty->isCached(‘demo1.tpl‘)){//判断指定的模板是否开启缓冲

echo ‘已缓冲‘;

}else{

echo ‘未缓冲‘;

}

*/

// $_smarty->loadFilter(‘pre‘,‘trim‘);//载入过滤器

// $_smarty->muteExpectedErrors():忽略脚本警告信息

// $_smarty->unmuteExpectedErrors():移除当前自定义的错误处理器

//注册缓冲资源

// $_smarty->registerCacheResource(‘name‘,‘resourcehandler‘);

//$_smarty->registerCacheResource(‘name‘):注销缓冲资源

class myclass

{

public static $property=‘这是一个类的属性‘;

function __construct(){

}

}

$_smarty->registerClass(‘myclass‘,‘myclass‘);//注册类

// $_smarty->registerDefaultPluginHandler():注册默认的插件处理器

// $_smarty->registerFilter():注册过滤器

// unregisterFilter:注销过滤器

//registerResource():注册资源

//registerObject():注册对象

//unregisterObject():注销对象

// registerPlugins():注册插件

// unregisterPlugin:注销插件

#注册函数

function my_fn($arr){

return ‘参数值:‘.$arr[‘param‘];

}

$_smarty->registerPlugin(‘function‘,‘my_fun‘,‘my_fn‘);

function my_bk($param,$content){//注册块函数

$res="<span style=‘background-color:";

$res.="{$param[‘background-color‘]}";//注意。参数要用大括号括起来

$res.="‘>";

$res.=$content;

$res.=‘</span>‘;

return $res;

}

$_smarty->registerPlugin(‘block‘,‘mybk‘,‘my_bk‘);

$_smarty->setCacheLifetime(3600);

//$abc=new Memchache();

$_smarty->display(‘demo1.tpl‘);

?>

smarty后台文件常用方法及说明

时间: 2024-12-30 03:04:48

smarty后台文件常用方法及说明的相关文章

php Laravel 框架之建立后台文件夹 二

在前面的章节中我们讲解过如何在 Laravel框架中建立后台文件夹. php Laravel 框架之建立后台文件夹 现在我们再添加一块内容.是关于自动加载的部分. 在我们app目录中还有个start目录.它里面这样写道: In addition to using Composer, you may use the Laravel class loader to load your controllers and models. This is useful for keeping all of

php Laravel 框架之建立后台文件夹

今天研究了在Laravel框架中的控制器中添加后台的文件夹.发现了一些小的规律,拿来和大家分享一下吧. 通常情况下,我们是直接在controllers文件夹中添加我们的控制器,然后再routes.php 路由表中寻找相应的控制器和action进行处理.但是现在有个问题,如果我们的前台和后台同在一个项目中,也就是说前台和后台的控制器会在一块.当然不是没有办法进行区分.我们可以在控制器前面加上Front,Admin等标记来分别前台控制器和后台控制. 这里我给大家提供一种方法来将前后台的控制器进行分离

dedecms后台文件任意上传漏洞

漏洞名称:dedecms后台文件任意上传漏洞 补丁文件:/dede/media_add.php 补丁来源:阿里云云盾自研 漏洞描述:dedecms早期版本后台存在大量的富文本编辑器,该控件提供了一些文件上传接口,同时dedecms对上传文件的后缀类型未进行严格的限制,这导致了黑客可以上传WEBSHELL,获取网站后台权限 解决方法 搜索代码 $fullfilename = $cfg_basedir.$filename; 如下图: 在上述代码前添加代码 if(preg_match('#\.(php

&lt;转&gt;揭秘DNS后台文件:DNS系列之五

揭秘DNS后台文件 在前面的博文中我们介绍了DNS的体系结构,常用记录,还介绍了辅助服务器的配置,今天我们来介绍一下DNS服务器背后的几个文件.其实DNS服务器的工作完全依靠这几个文件,了解了DNS的后台文件后,有利于更好地理解DNS服务器,也可以让大家明白为什么有高手声称配置DNS最好的工具就是记事本. DNS服务器所使用的文件并不复杂,一个是Boot文件,负责存储DNS服务器的启动信息:一个是Cache.dns,负责存储根服务器的域名和IP地址:还有一个最重要的文件就是区域数据文件,负责存储

smarty初始化文件

为了smarty初始化文件能方便其他目录下的脚步包含使用,应该将初始化文件里的引入smarty类及其他路径设置为全局路径,而不是相对路径 另外,如果模板里有文件的路径的引用,一定要是相对PHP脚本文件的,而不是模板文件自己.因为访问的是PHP脚步文件,而不是模板文件,模板只是通过smarty引擎加载到PHP里

opencart修改后台文件夹名

在使用opencart进行二次开发时,若需要修改后台目录的文件夹名是可以操作的.具体步骤如下: 1.将网站后台文件夹名字改成opencartadmin 2.在该文件夹下找到config.php文件如图 $document_root = $_SERVER['DOCUMENT_ROOT']; $server_name = $_SERVER['SERVER_NAME']; //$website_root = str_replace("admin/", "", $docum

织梦后台文件编辑器和删除文件异常

在使用织梦后台管理网站的过程中,有一个网站文件管理器出现了异常,情况如下: 1.删除文件的时候在确认文件删除的对话框上下出现了两行javascript代码,代码的内容就是blank.js文件的内容(该文件在管理员目录下面的js目录中),而且这两行代码被用红色背景加重(现在 想想应该是浏览器的警示,与代码本身无关). 2.部分文件删除的时候,系统提示警告,禁止删除 3.编辑文件的时候工作目录和文件名称的两个input的内容是空的,正常情况下应该自动填充当前目录和当前要修改的文件名称才对.所以导致编

夺命雷公狗---Smarty NO:23 常用方法

assign :分配变量到模板文件(值传递) assignByRef:分配变量到模板文件(引用传递) assignByRef代码示例: $smarty = new Smarty(); $name = ‘lisi'; //$smarty -> assign(‘name’,$name); 值传递相当于把lisi复制一份发送到模板页 $smarty -> assignByRef(‘name’,$name);//引用传递,把$name变量的首地址赋值给模版页 $smarty -> display

【smarty项目源码】模拟smarty模版文件的解析过程

[php] view plaincopy <?php class MyMiniSmarty{ //模版文件的存放路径 var $template_dir="./templates/"; //编译文件的存放路径 ,编译文件的名称格式暂定为:com_对应的tpl.php var $complie_dir="./templates_c"; //模版变量数组:存放所有模版变量的值 var $tpl_vars=array(); //这里我们主要模拟两个方法 //参数1-