About_Smarty

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

 

首先:要导入文件

 1 <?php
 2 include_once('smarty/Smarty.class.php');
 3 
 4 $smarty = new Smarty;
 5 
 6 $smarty->template_dir = './templates/';
 7 $smarty->compile_dir = './templates_c/';
 8 $smarty->config_dir = './configs/';
 9 $smarty->cache_dir = './cache/';
10 
11 $smarty->left_delimiter = "{";
12 
13 $smarty->right_delimiter = "}";
14 
15 ?>

 

然后:链接数据库

 1 <?php
 2 
 3 //数据库执行的魔术函数
 4 function mysql_magic(){
 5 
 6     //首先我们参数个数是未知的,但是可以通过PHP函数func_get_args
 7     //得到所有的传入参数,返回值是一个数组
 8     //这个函数还有一个相对的方法func_num_args,这个方法是获取传入参数的个数
 9     $argsNum = func_get_args();
10     $args = func_get_args();
11 
12     if($argsNum == 0){
13         echo "没有传入参数,直接返回false";
14         return false;
15     }
16     //array_shift数组方法,会把原数组的第一个位置的元素,移出数组,数组剩下后面的部分,并且将移出的元素返回
17     $sql = array_shift($args);
18     //为了不混淆$args,将args的值复制给另外的数组
19     $values = $args;
20 
21     //使用字符串替换函数str_replace
22     $sql = str_replace("?","'%s'",$sql);
23 
24     //使用vsprintf,将$sql字符串格式化
25     $sql = vsprintf($sql,$values);
26     //数据库执行语句已经拼好了,接下来就是要判断到底是增删改查的哪个语句
27     //根据判断执行不同的操作
28 
29     //取得数据库语句第一个单词
30 //    $s = explode(" ",$sql)[0];
31     $s = substr($sql,0,6);
32 
33     $conn = mysql_connect("localhost","root","") or die("数据连接异常".mysql_error());
34     mysql_select_db("bbs",$conn) or die(mysql_error());
35     mysql_query("set names 'utf8'");
36 
37     $result = mysql_query($sql) or die(mysql_error());
38 
39     if(strcasecmp($s,"insert") == 0){
40         return mysql_insert_id();  //>0->true表示插入成功,返回最新id,=0表示插入失败,没有获取最新插入的id
41     }
42     else if(strcasecmp($s,"update") == 0 || strcasecmp($s,"delete") == 0){
43         return mysql_affected_rows(); //返回几行受影响,>0表示删除或者更新成功,至少都有1行受影响,=0失败,没有行数受影响
44     }
45     else{
46         $arr = array();
47         while($row=mysql_fetch_array($result)){
48             $arr[] = $row;
49         }
50         return $arr;
51     }
52 
53 }
54 
55 ?>

 

最后:测试

 1 <?php
 2 
 3 include_once("smarty_inc.php");
 4 include("mysql_func.php");
 5 
 6 $sql = "select * from topic where parentid=?";
 7 $topic = mysql_magic($sql,"0");
 8 
 9 $arr = array(
10     array("我是标题1","我是内容1","我是作者1"),
11     array("我是标题2","我是内容2","我是作者2"),
12     array("我是标题3","我是内容3","我是作者3"),
13     array("我是标题4","我是内容4","我是作者4"),
14 );
15 
16 $smarty->assign("name","macio jackson is a good black man");
17 $smarty->assign("age","19");
18 $smarty->assign("address","成都");
19 $smarty->assign("arr",$arr);
20 $smarty->assign("topic",$topic);
21 
22 $smarty->display("index.html");
23 
24 
25 ?>

 

posted @ 2014-06-03 22:45  moemiss  阅读(178)  评论(0编辑  收藏  举报