zoukankan      html  css  js  c++  java
  • 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 ?>
  • 相关阅读:
    新加的keyword编码错误
    Robot framework模拟打开浏览器问题
    Chrome无法登陆
    Android App用MulticastSocket监听组播,为什么连接到不同路由、在不同手机上跑,有的能收到有的收不到
    ubuntu 14.04/15.10 安装基于eclipse的android app开发环境
    ubuntu15.10英文系统中文输入法配置 fcitx
    Amazon S3 上传文件 SSL23_GET_SERVER_HELLO握手错误
    Google Map API v2 番外篇 关于gps位置偏差及修正方法探讨
    Google Map API v2 (四)----- 导航路径
    Google Map API v2 (三)----- 地图上添加标记(Marker),标记info窗口,即指定经纬度获取地址字符串
  • 原文地址:https://www.cnblogs.com/a-moemiss/p/3766615.html
Copyright © 2011-2022 走看看