PHP学习---ThinkPHP(七)

ThinkPHP分组

'APP_GROUP_LIST' => 'Index,Admin', //项目分组设定
'DEFAULT_GROUP'  => 'Index', //默认分组

THinkphp–URL样式

紧接上次没解决的问题—URL的样式,在这个分组中,需要从前端post数据并且调用Index中的一个方法,
实属无奈,改过php.ini/apache–http.conf等, 依旧无效, 记得将URL_MODEL改为0,打印的URL为一般
形式,故将此改为’URL_MODEL’ => 0,来先不至于<从入门到放弃>!

ThinkPHP–IS_AJAX

来自知乎的解释:https://www.zhihu.com/question/20874229
ajax的全称是AsynchronousJavascript+XML。
     * 异步传输+js+xml。
     * 所谓异步,在这里简单地解释就是:向服务器发送请求的时候,我们不必等待结果,
     * 而是可以同时做其他的事情,等到有了结果我们可以再来处理这个事。
     * (当然,在其他语境下这个解释可能就不对了)
     *
     * 总结:只要是JS调用异步通讯组件
     * 并使用格式化的数据来更新web页面上的内容或操作过程,
     * 那么我们用的方法就可算是AJAX。
     *
     *
     * 可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
     * (集体拍照,缺少某个人;  重新拍照理解为重新加载网页, ps为AJAX)
     *

ThinkPHP— I 方法

命名来自于英文Input(输入),主要用于更加方便和安全的获取系统输入变量,可以用于任何地方,用法格式如下:
I('变量类型.变量名',['默认值'],['过滤方法'])

  1. echo I(‘get.id’); // 相当于 $_GET[‘id’];
  2. echo I(‘get.id’,0); // 如果不存在$_GET[‘id’] 则返回0;
  3. echo I(‘get.name’,”,’htmlspecialchars’); // 采用htmlspecialchars方法对$_GET[‘name’] 进行过滤,如果不存在则返回空字符串;
  4. I(‘get.’); // 获取整个$_GET 数组;
  5. post类型 I(‘session.user_id’,0); // 获取$_SESSION[‘user_id’] 如果不存在则默认为0
// 'username' => I('post.username'),
//会自动判断,所以不用写

ThinkPHP—打印方法

    /*
     * var_dump -- 打印变量的相关信息
     * 此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。
     *
     * var_export -- 输出或返回一个变量的字符串表示
     * 此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,
     * 不同的是其返回的表示是合法的 PHP 代码。
     *
     * */

ThinkPHP—文件读写

定义和用法
file_put_contents() 函数把一个字符串写入文件中。
与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。

语法:file_put_contents(file,data,mode,context)

  1. 步骤:写入文件的顺序,先创建一个目录文件–data, 并找到该路径进行写入
  2. 例子:file_put_contents(‘./data/phiz.php’, $str);
  3. 直接根据某个路径读数据
  4. $phizArray = include ‘./data/phiz.php’;
thinkphp---F方法
仅用于简单数据缓存,并且只能支持文件形式,不支持缓存有效期,因为采用的是PHP返回方式,所以其效率较S方法较高,因此我们也称之为快速缓存方法。

简单数据缓存;
文件形式保存;
采用PHP返回数据方式加载缓存;
支持子目录缓存以及自动创建;
支持删除缓存和批量删除;

F(  存储的名称, 数据, 路径);
F('user/data',$data); // 缓存写入
F(  存储的名称, '', 路径);
F('user/data'); // 读取缓存

ThinkPHP—后台登录验证与自动运行方法

创建数据库
 
  创建数据库/表
 
  create table hhw_user(id int unsigned not null primary key auto_increment,
  username char(20) not null default '',
   password char(32) not null default '',
  logintime int(10) unsigned not null, loginip varchar(20) not null,
  `lock` tinyint(1) unsigned not null default 0,
  unique(username))
  engine myisam default charset utf8;

 默认管理员
  insert into hhw_user set username = 'admin', password = md5('admin'),
 logintime = unix_timestamp(now()), loginip = '127.0.0.1';


分组模式下的模块配置
<?php
/**
 * Created by PhpStorm.
 * User: BWF-HHW
 * Date: 16/5/10
 * Time: 下午3:16
 */

return array(

    /**分组模式下,为了分模块,将HTML中的路径前缀改为__PUBLIC__,
     * 然后映射到模块下存放css/js的文件夹
     *
     * 默认情况下__PUBLIC__指的是根目录下的Public
     *
     * */


    //模板替换
    'TMPL_PARSE_STRING' => array(

        '__PUBLIC__' => __ROOT__ . '/' . APP_NAME . '/Tpl/Admin/Public/',

    )
);

thinkPHP中的验证码

目录/ThinkPHP/Extend/Libary/ORG/Unti/Image.class.php中,内部有文字/数字/字母以及混编;

public function verify(){
        //引入头文件
        import('ORG.Util.Image');
        //宽高使用默认值就好, 因为字体不会改
        Image::buildImageVerify(4, 5, 'png');
        ///在HTML中的对应的input标签加入 src="{:U'Admin/Login/verify')}"

    }


  1. 在HTML中定义全局变量以便后续使用, 通过U方法var verifyURL = ‘{:U(“Admin/Login/verify”, ‘ ‘, ”)}’;
  2. 在js中由于URL_MODEL=0原因,不支持/的形式访问,故改为&拼接, 以此实现更换验证码;

更多精彩内容请关注“IT实战联盟”哦~~~

《PHP学习---ThinkPHP(七)》 IT实战联盟.jpg

点赞