关于SMARTY的问题,输出方式

number123456 2009-02-02 10:49:07
smarty的输出方法有两种,一种是直接echo ,还有一种是可以把返回的页面代码赋值给一个变量,
有哪位高人知道将代码赋值给一个变量的方法他是怎么实现的吗?

我有个主要的问题就是,他的缓存文件全是PHP的文件格式,他是怎么将这些PHP的文件都值行后,再把这个页面的代码变成html的代码赋值给一个变量的呢?
...全文
101 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hqaht 2009-02-02
  • 打赏
  • 举报
回复
这就是通过smarty的引擎了,先生成缓存文件,缓存文件是通过读取smarty的模板,也就是html,把模板中的变量替换成需要的值,然后每次运行程序都是直接先从缓存文件运行,如果html有改动重新生成缓存文件
number123456 2009-02-02
  • 打赏
  • 举报
回复
都己经解决了,散点友情分吧
yagas 2009-02-02
  • 打赏
  • 举报
回复
name=list cmd=select * from userdata=eee
正则表达式也拿你没有办法
yagas 2009-02-02
  • 打赏
  • 举报
回复

<?php
function str2arr($str)
{
$sr = explode(' ', $str);
$arr = array();

foreach($sr as $s)
{
$t = explode('=', $s);
$arr[$t[0]]=$t[1];
}

return $arr;
}


$a = 'name="list" data=$b';
$b = str2arr($a);
print_r($b);
?>
number123456 2009-02-02
  • 打赏
  • 举报
回复
不能用explode,有可能出现 "name=list cmd=select * from user"
yagas 2009-02-02
  • 打赏
  • 举报
回复
正则表达式不是这样用的。但我有方法可以将它变成你想要的那个结果。

<?php
//函数声明
function str2arr($str)
{
$sr = explode(' ', $str);
$arr = array();

foreach($sr as $s)
{
$t = explode('=', $s);
$arr[$t[0]]=$t[1];
}

return $arr;
}


//使用举例
$a = 'name="list" data=$b';
$b = str2arr($a);
//输出显示
print_r($b);
?>
number123456 2009-02-02
  • 打赏
  • 举报
回复
谁能帮我解决一下这个问题也给分
有段字符串,$a = 'name="list" data=$b'
怎么用正则表达试分析出这段字符串的内容变成
$b = array(
name=>list,
data=>$b
);
number123456 2009-02-02
  • 打赏
  • 举报
回复
已经解决

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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