您的位置:首页 > 编程语言 > PHP开发

使用Smarty之变量信息的使用

2016-10-25 15:45 246 查看
三种变量信息的使用

  1.assign变量信息使用

  2.保留变量信息

  3.配置变量信息

1.assign变量信息的使用前面已经介绍过了。

2.保留变量信息

  对php中的超全局数组变量信息的使用

  例如:$_GET、$_POST、$_SESSION、$_COOKIE、$_REQUEST\、$_SERVER、\$_ENV、\$GLOBALS、\$_FILES、常量信息

  在模板文件中可以直接使用保留变量(全局变量)信息

  如:

{$smarty.get.xxx}  //获得地址栏信息
{$smarty.post.xxx}
{$smarty.session.xxx}
{$smarty.cookies.xxx}
{$smarty.request.xxx}
{$smarty.server.xxx}
{$smarty.env.xxx}


  这里$smarty是模板引擎的一个保留变量(“关键字”)

  服务器端文件(02.php)

<?php
define('HOST', 'CQUPT');
require "./libs/Smarty.class.php";

$sm = new Smarty;

$sm -> assign("name", $_GET['name']);//assign变量信息

$sm -> display("02.html");


  模板文件(02.html)

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>

<body>
<h2>保留变量的使用</h2>
<div>{$name}</div>
<div>姓名:{$smarty.get.name}</div>
<div>年龄:{$smarty.get.age}</div>
<div>主机名:{$smarty.const.HOST}</div>
<div>时间戳:{$smarty.now}</div>
<div>当前模板名称:{$smarty.template}</div>
<div>当前模板目录名称:{$smarty.current_dir}</div>
<div>模板引擎版本:{$smarty.version}</div>
<div>模板引擎定界符:{$smarty.ldelim} ... {$smarty.rdelim}</div>
</body>
</html>


  运行结果为:



3.配置变量信息

  网站上有一些比较简单的变量信息,前端人员可以自行定义并调用。这样可以脱离后端的依赖。配置变量是不需要php程序来提供的。

如网易首页页脚的一些信息:



  以上简单的信息可以通过“配置文件”给维护并使用。

  在Smarty.class.php中查找__construct,可以看到配置文件的路径相关信息

$this->setConfigDir('.' . DS . 'configs' . DS);


  在工作目录创建一个配置(configs)文件夹,在该文件夹下,创建一个自定义文件名的文本文件(如:site.conf)

//stie.conf
NETWORK=互联网出版许可证粤002号
POLICE=京公网安备 11000002000013号
DONG=广东省通信管理局


  使用配置变量:

  左标记# 变量名称 #右标记

  即{#名称#}

  或者{$smarty.config.名称}

03.html:

<!--引入配置文件-->
{config_load file = "site.conf"}
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>

<body>
<h2>配置变量的使用</h2>
{#NETWORK#}<br />
{#POLICE#}<br />
{#DONG#}<br />
<!--也可以通过下面这种方式-->
{$smarty.config.DONG}<br />

</body>
</html>




  当模板文件中的css,或者js脚本中出现{ }时,会当成Smarty的定界符来编译,造成冲突。解决方法:

  1.把smarty的标记{ }更改为其他的标记;

  2.给{ }标记的开始和结束加空格;

  3.使用{literal} / {/literal}标记,被{literal} {/literal}标记的部分不会被Smarty解析。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php smarty