Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。

首先:要导入文件

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

然后:链接数据库

 <?php

 //数据库执行的魔术函数
function mysql_magic(){ //首先我们参数个数是未知的,但是可以通过PHP函数func_get_args
//得到所有的传入参数,返回值是一个数组
//这个函数还有一个相对的方法func_num_args,这个方法是获取传入参数的个数
$argsNum = func_get_args();
$args = func_get_args(); if($argsNum == 0){
echo "没有传入参数,直接返回false";
return false;
}
//array_shift数组方法,会把原数组的第一个位置的元素,移出数组,数组剩下后面的部分,并且将移出的元素返回
$sql = array_shift($args);
//为了不混淆$args,将args的值复制给另外的数组
$values = $args; //使用字符串替换函数str_replace
$sql = str_replace("?","'%s'",$sql); //使用vsprintf,将$sql字符串格式化
$sql = vsprintf($sql,$values);
//数据库执行语句已经拼好了,接下来就是要判断到底是增删改查的哪个语句
//根据判断执行不同的操作 //取得数据库语句第一个单词
// $s = explode(" ",$sql)[0];
$s = substr($sql,0,6); $conn = mysql_connect("localhost","root","") or die("数据连接异常".mysql_error());
mysql_select_db("bbs",$conn) or die(mysql_error());
mysql_query("set names 'utf8'"); $result = mysql_query($sql) or die(mysql_error()); if(strcasecmp($s,"insert") == 0){
return mysql_insert_id(); //>0->true表示插入成功,返回最新id,=0表示插入失败,没有获取最新插入的id
}
else if(strcasecmp($s,"update") == 0 || strcasecmp($s,"delete") == 0){
return mysql_affected_rows(); //返回几行受影响,>0表示删除或者更新成功,至少都有1行受影响,=0失败,没有行数受影响
}
else{
$arr = array();
while($row=mysql_fetch_array($result)){
$arr[] = $row;
}
return $arr;
} } ?>

最后:测试

 <?php

 include_once("smarty_inc.php");
include("mysql_func.php"); $sql = "select * from topic where parentid=?";
$topic = mysql_magic($sql,"0"); $arr = array(
array("我是标题1","我是内容1","我是作者1"),
array("我是标题2","我是内容2","我是作者2"),
array("我是标题3","我是内容3","我是作者3"),
array("我是标题4","我是内容4","我是作者4"),
); $smarty->assign("name","macio jackson is a good black man");
$smarty->assign("age","19");
$smarty->assign("address","成都");
$smarty->assign("arr",$arr);
$smarty->assign("topic",$topic); $smarty->display("index.html"); ?>

About_Smarty的更多相关文章

随机推荐

  1. jQuery插件开发代码

    方法和原理在这篇博文中非常详细易懂 http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html 下面整理下基本知识点和基本的代码段: jQue ...

  2. sql查询删除重复数据

    数据库UserInfo 删除重复数据 即删除重复的用户名手机号 同一个用户名手机号只保留一个用户 01.根据多个字段查询重复数据 with data1 as( select MobilePhone,N ...

  3. DevExpress 程序运行后 layoutView 卡片大小发生变化

    设置属性前效果:  将layoutView1.CardMinSize 的属性更改为(0, 0) 后 效果:

  4. Linux 昨天时间

    今天date +%F昨天date -d yesterday +%F明天date -d tomorrow +%F七天前date -d "7 days ago" +%F

  5. 11. KVC And KVO

    1. KVC And KVO  的认识 KVC/KVO是观察者模式的一种实现  KVC全称是Key-value coding,翻译成键值编码.顾名思义,在某种程度上跟map的关系匪浅.它提供了一种使用 ...

  6. Object-c 类方法和实例方法的区别和联系

    在我学习oc的时候,总是搞不懂什么时候用类方法,什么时候使用实例方法.于是做了如下总结. -表示实例方法: 用实例方法访问 +表示类方法:类方法的对象时类不是实例.多用于创建对象或工具类 什么时候使用 ...

  7. 模拟搭建Web项目的真实运行环境(七)

    下面这个是mongo驱动的小案例,里面也有涉及到一点redis的操作 https://github.com/SuperRocky/MyMongoDriver 接下来通过几张图片主要介绍一下每个文件的具 ...

  8. C++根据图片url下载图片

    需要使用到URLDownloadToFile()函数,该函数在头文件<urlmon.h>中声明. URLDownloadToFile()函数的定义如下: HRESULT URLDownlo ...

  9. C语言 指针小结

    指针 -->指针变量 类型名 *变量名 int *point1; char *point2; 注意:*p可以直接使用,它代表指针p指向的变量,*p可以当做被指向的变量使用!~~~~ 一个变量的地 ...

  10. /usr/bin/ld.bfd.real: cannot find -lGL /usr/bin/ld.bfd.real: cannot find -lX11

    /usr/bin/ld.bfd.real: cannot find -lGL /usr/bin/ld.bfd.real: cannot find -lX11 根据网上大多数的说法,以及官网的介绍.截至 ...