在smarty莪在模板页tpl中调用配置文件conf、但网页总是解析不出来

KAIDXC 2011-04-09 04:40:37
这个小程序总共有三个文件、目录结构如下
/index.php
/config.php
/Smarty/templates/index.tpl
/Smarty/configs/04.conf

index.php

<?php
include_once 'config.php';
$smarty->display('index.tpl');
?>




config.php

<?php
header('Content-Type:text/html;charset=gb2312');
/* 定义服务器的绝对路径 */
define('BASE_PATH',$_SERVER['DOCUMENT_ROOT']);
/* 定义Smarty目录的绝对路径 */
define('SMARTY_PATH','/Smarty/');
/* 加载Smarty类库文件 */
require BASE_PATH.SMARTY_PATH.'Smarty.class.php';
/* 实例化一个Smarty对象 */
$smarty = new Smarty;
/* 定义各个目录的路径 */
$smarty->template_dir = BASE_PATH.SMARTY_PATH.'templates/';
$smarty->compile_dir = BASE_PATH.SMARTY_PATH.'templates_c/';
$smarty->config_dir = BASE_PATH.SMARTY_PATH.'configs/';
$smarty->cache_dir = BASE_PATH.SMARTY_PATH.'cache/';
$smarty->left_delimiter = '{%';
$smarty->right_delimiter = '%}';
$smarty->caching = false;
$smarty->debugging = false;
?>


04.conf

title = "调用配置文件"
bgcolor = "#000000"
border = "5"
type = "计算机类"
name = "PHP从入门到精通"


index.tpl

{% config_load file="04.conf" %}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{% #title# %}</title>
</head>
<body bgcolor="{% #bgcolor# %}">
<table border="{% #border# %}">
<tr>
<td>{% $smarty.config.type %}</td>
<td>{% $smarty.config.name %}</td>
</tr>
</table>
</body>
</html>




可是在chrome浏览器里打开会出错误、应该是无法识别到CONF文件的标记、返回结果如下、只有这些
{config_load file=04.conf}
{% $smarty.config.type %} {% $smarty.config.name %}
<body bgcolor="{% #bgcolor# %}">
<table border="{% #border# %}">
<tr>
<td>{% $smarty.config.type %}</td>
<td>{% $smarty.config.name %}</td>
</tr>
</table>
</body>
</html>
...全文
1794 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
feraner 2013-07-29
  • 打赏
  • 举报
回复
用过smarty ,但没出现过这种情况,不过有空格没空格要注意,

 include_once '../libs/Smarty.class.php';
   $smarty=new Smarty();
   $smarty->template_dir="../templates/";
   $smarty->compile_dir="../templates_c/";
   $smarty->left_delimiter="<{";
   $smarty->right_delimiter="}>";

<{$error3|default:" "}>//这里的空格有了就错
但是看了你的代码 貌似模板没有执行,直接按原字符输出了吧!以上给你一个参考 ,不知道能不能帮你
xuzuning 2013-07-21
  • 打赏
  • 举报
回复
你 {% config_load file="04.conf" %} 没有指定 04.conf 的路径,那么他应该和 smarty 的使用者 index.php 在同一目录中 config_load 的作用是加载与定义的,与项目相关的常量数据 按理也应该和使用者放在一起 你的形如 $smarty->template_dir = BASE_PATH.SMARTY_PATH.'templates/'; 这样的代码是蛇足的 项目的目录结构应该这样的: /index.php /config.php /templates /templates_c 至于 smarty 放在哪?无关紧要,总是在 config.php 中通过计算得到就行 无论有多少个项目,只需一个 smarty 就可以了
怪才 2013-07-21
  • 打赏
  • 举报
回复
应该是模板标记里的空格导致的 {%后的空格去掉 %}前的空格去掉 或者按照2#说的,把定义分隔符那里加上空格符
ohmygirl 2013-07-20
  • 打赏
  • 举报
回复
config中header('Content-Type:text/html;charset=gb2312'); 是干嘛的?
it观望者 2013-07-20
  • 打赏
  • 举报
回复
我也遇到这样的问题,真的很郁闷。
终小南 2011-04-13
  • 打赏
  • 举报
回复
smarty值需要你assign一下。。
lazyboy_wu 2011-04-09
  • 打赏
  • 举报
回复
你还不如干脆

$smarty->left_delimiter = '{% ';
$smarty->right_delimiter = ' %}';

注意有空格
standford 2011-04-09
  • 打赏
  • 举报
回复
是不是{% config_load file="04.conf" %}这个中前面的空格引起的呢
源码下载地址: https://pan.quark.cn/s/8d2c461c797c JavaWeb程序设计构成了掌握Web交互式应用程序开发的核心领域,对于初学者来说,精通这一技术具有决定性意义。在“JavaWeb程序设计(第三版)作业答案”,我们可以预期获得针对该教材习题的一系列深入解析,从而协助学习者强化知识体系。 JavaWeb所包含的技术组件涵盖了Servlet、JSP(JavaServer Pages)、JDBC(Java Database Connectivity)以及各类框架如Spring MVC、Struts等。Servlet是Java平台提供的一种扩展服务器功能的接口,能够处理HTTP请求并生成相应的反馈。JSP则是一种用于构建动态的工具,它支持开发者将HTML代码与Java代码进行整合编写,从而简化了Web应用程序的开发流程。 作业答案通常会涉及以下几个核心内容: 1. **Servlet基础**:可能包含Servlet生命周期、init(), service(), destroy()方法的应用,以及如何在web.xml文件设定Servlet的映射关系。 2. **JSP基础**:JSP的九大内置对象,如request、response、session、application等的使用,以及EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)的实际操作。 3. **HTTP协议理解**:GET和POST请求方法的差异,请求头与响应头的应用,以及会话管理的概念阐释。 4. **JDBC数据库操作**:与数据库建立连接,执行SQL指令,处理查询结果集,以及...
源码链接: https://pan.quark.cn/s/a4b39357ea24 斐讯K2是一款广受用户青睐的无线路由器,其运行表现稳定且具备较高的可操作性,在DIY爱好者群体拥有极高的声誉。本资料将系统性地阐述斐讯K2的固件刷机方法及其关联的技术要点。固件升级是路由器爱好者改善设备性能、扩展功能的一种普遍手段,经由替换出厂固件,能够达成更加个性化的网络配置、增强安全防护等目标。斐讯K2固件资源库涵盖了多种知名的非官方固件,诸如Tomato Pheonix 不死鸟、高恪、PandoraBox 潘多拉等,这些固件均具备独特的优势,能够适配不同用户的需求。 1. Tomato Pheonix 不死鸟:Tomato是一款立足于Linux的开源固件,以其精巧、高效而备受推崇。不死鸟版本是专门为华硕及斐讯路由器优化的分支,提供了卓越的QoS(服务质量)配置、详尽的图表监控以及便捷的固件升级途径。对于那些需要精准调控带宽和监测网络状态的用户而言,这是一个理想的选项。 2. 高恪:高恪固件是OpenWrt的定制化版本,着重于操作的便捷性和运行的可靠性,特别适合对路由器操作不甚熟悉的用户群体。它提供了一些实用的功能,例如内置的广告屏蔽、快速测速工具等,同时保留了OpenWrt的适应性。 3. PandoraBox 潘多拉:潘多拉盒是另一款基于OpenWrt的固件,它以丰富的插件库和强大的自定义潜力而闻名。用户能够依据个人需求安装各类插件,实现更多功能,如远程接入、DDNS(动态域名解析服务)等。 4. 官方固件的纯净版本与定制版本:官方固件通常更侧重于稳定性,纯净版意味着未预置额外的应用或服务,适合注重稳定性的用户。定制版则可能包含了制造商的特色功能或优...

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧