smarty 在html中能解析html标签吗?

html-css028

smarty 在html中能解析html标签吗?,第1张

可以,步骤如下:

1. Html中每个tag都是都将作为树中的一个节点存在的,每个tag都属于树中的某一层。

2. 辅助数据结构:栈(stack)、List、HashTable。其中HashTable[i](i属于int类型)是一个List,用于临时存储第i层子Tag。

3. 顺序扫描Html文本,当遇到”<A~Z”这样的标志,表示可能是一个Tag,调用GetTag()函数对此段代码进行解析,解析出Tag名,Tag属性等等。

先看结果——

页面源代码如下:

分析一下代码,经过检查index_config.php(Smarty连接文件)、index.php文件均无错,下面重点看看模板文件,可能原因就出在这个tpl文件上,出代码——

复制代码 代码如下:

{% config_load file="1.conf" section="style2" %}

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8">

<title>{% #title# %}</title>

</head>

<body bgcolor="{% #bgcolor# %}">{%$hello%}

{%*这是一个注释语句*%}

<br />

{%$array.0.0%}

</body>

</html>

Smarty不能将模板文件中的变量解析成相应的值,肯定是调用文件时的错误了,但看着写的代码也没错啊,和书上的、网上的几乎一模一样的,怎么会出错呢??

百思不得其解之际,突然发现,在调用变量时自己的代码比他们多了空格…………………………

删除空格,大功告成:

页面源代码

总结,在使用Smarty模板时,不要为了代码的美观和可读性而增加空格,这样Smarty不会把这些当成变量解析的,而会直接输出

smarty有缓存,可以在配置里开启。

然后用伪静态。

实在需要生成html文件 可以帮你写个下面的函数

function write_file($str,$filepath){

$fp=fopen($filepath,"wr")

$ok= fwrite($str,$fp)

fclose($fp)

return $ok

}

只是简单写下,如果有问题 自己慢慢调试把。