• THINKPHP 小结


    1、在开发时要打开调试模式,在入口文件中 define('APP_DEBUG',TRUE); 保证在开发阶段,每一项配置都是最新的。等网站上线后就要关闭注销掉。

    2、Think里的打印函数:dump($result);

    另一个打印数组方法:

    echo "<pre>";
    print_r($result); 

    另外,还可以自定义函数 

    function p ($array){
      dump($array , 1 , '<pre>' ,0);  
    }

    3、THINKPHP里的配置项主要在Conf里的convention.php文件里。

    使用数据库时要注意配置项里存在一个 表前缀DB-PREFIX 要配置好才能顺利读取对应的表。

    但是,我们一般不能直接在thinkphp框架里修改配置文件,而是在项目下的Conf里修改配置文件即可。

    4、前端后端常用创建方法:

    在think下建立前端index目录、后端Admin目录及index.php、Admin.php两个单入口文件。

    缺陷是后端无法使用前端的配置文件,只能使用各自的或thinkphp框架的配置文件。

    解决方法:为了省去同一个配置项在前端和后端反复配置,出现重复代码。我们再建立一个公用Conf文件夹,里面添加config.php文件,在该文件里配置前后端公用的配置项。然后,在前后端各自的config.php里合并配置项。

    //前、后台的config.php
    $config = array(
      'DB_HOST' => 'localhost'
    );
    return
    array_merge(include './Conf/config.php',$config);

    5、添加扩展函数库,在Common目录下,创建common.php(必须这样命名才能被读取)在里面就可以添加自定义常用函数了。

    @ 符号代表当前项目下的Common文件夹。@.common 代表Common文件夹下的common.php文件。

    **

    如果函数扩展库不命名为common.php,而要命名为比如function.php,想要调用该函数库有两种方法:

    一种是在配置文件里设置 'LOAD_EXT_FILE' => 'function'

    另一种是在调用该函数库时,临时加载 load('@.function'); 就会把整个函数库都添加进来,就可以使用内部函数。不过这种方法只在当前方法内部有效,其他方法均无效

    **

    6、问题:模版显示与模版替换 里的路径设置没听明白!

    7、url里的路径设置:

    localhost/wish/index.php/Index/index/uid/1 

    index.php后面的第一根斜线是IndexAction控制器,第二根斜线后是控制器里的index方法,然后是GET参数,设置uid的值为1。相当于设置 $_GET['uid']=1。

    [_URL_]是一个数组

    [_URL_] =>Array{

      [0] => Index

      [1] => index

      [2] => uid

      [3] => 1

    }

    8、U函数自动组合url地址。

    U('Index/index') = /wish/index.php/index/index.html

    【静态后缀名 .html (可在配置文件中设置 'URL_HTL_SUFFIX' => 'html';也可以在U函数里面设置)】

    使用U函数设置GET参数 和 临时后缀名 和 是否跳转(0、1)和 是否要显示域名

    U('Index/show', array('uid'=>1) , 'asp' , 1, true);

    http://127.0.0.1/wish/index.php/show/index/uid/1.asp

    跳转到Index控制器下的show方法,并且附带GET参数uid=1,设置后缀为asp。

     8.1 配置URL地址显示方式

      'URL_MODEL' => 0 , 则 U('Index/index',array('uid'=>1)) = wish/index.php?m=index&a=show&uid=1

      'URL_MODEL' => 1 , 则就是上面的url格式

      'URL_MODEL' => 1 , 就可以省略输入index.php

    8.2 以后使用url地址,我们最好使用U函数来生成,可直接配置URL_MODEL来改变url格式

    比如,在 <a></a>超链接中插入url地址: 

    <a href='{:U('**')}'></a>

    9、 I 函数 自动从GET或POST中获取变量值 I('uid'),则不需要利用$_GET $_POST来获取

    I('get.')表示GET数组

    I('post.')表示POST数组

    防止脚本注入:echo I('username', ' ', 'htmlspecialchars'); 即使username是脚本代码也不会被执行。

    直接使用I('username')的话,如果username的内容是一个javascript脚本,则会自动执行。

    10、IS_POST常量可用来判断表单是否已向全局变量post已提交数据。

    11、404方法显示错误页面: _404('页面不存在',U('index'));

    若为调试模式,则发生错误时也会显示错误信息。

    然后还会跳转回同一目录下的index方法。

     12、处理表单数据插入数据库

    使用数据库时要注意配置项里存在一个 表前缀DB-PREFIX 要配置好才能顺利读取对应的表。

    public function handle(){
        if(!IS_POST) _404('页面不存在',U('index')); //判断表单是否通过POST提交数据
        
        $data = array(
                 'username' => I('username','','htmlspecialchars'), //直接从post中获取对应表单的值
                 'content' => I('content','','htmlspecialchars') ,
                 'time' => time() 
        ) ;
        
        if(M('table')->data($data)->add()){  //直接将该数组插入到数据表table中
             $this->sucess('发布成功',U('index'));
        }//插入成功
        else{
           $this->error('发布失败,请重试。。。');
        }
    }    

    然后为了使用数据库mysql,要在项目配置项中添加配置项,index/Conf/config.php:

    <?php
    return array(
        'DB_HOST' => '127.0.0.1',
        'DB_USER' => 'root',
        'DB_Pwd' => '',
        'DB_NAME' => 'think',
        'DB_PREFIX' => 'hd_',
    
    );
    ?>    

    12.1mysql删除操作

    M('table')->where('id>0')->delete();

    M('table')->where(array('id' => array('gt',0)))->delete();

    12.2 mysql查询操作

    M('table')->select();

    13、html标签foreach解析成php

    <foreach name='wish' item='v'>

    </foreach>

    对于wish变量中的所有键值对里的值$v 进行遍历使用

    解析成php:

    <?php foreach($wish as $key => $v) ;?>

    <?php endforeach;?>

    14、将time()得到的时间戳转换成24小时格式显示

    time=time();

    time|date='y-m-d H:i',###

    其中,###自动替换|前面的对象

  • 相关阅读:
    C# 监测每个方法的执行次数和占用时间(测试1)
    C# 依赖注入那些事儿
    SQL Server GROUP BY 后 拼接 字符串
    C# 根据Excel生成树
    C# 反射赋值
    C# 集合转换为DataTable
    Oracle 未能加载文件或程序集Oracle.DataAccess
    MySQL 各种主流 SQLServer 迁移到 MySQL 工具对比
    平衡树
    数据结构优化dp
  • 原文地址:https://www.cnblogs.com/wingjay/p/3887283.html
Copyright © 2020-2023  润新知