tp5学习笔记5

1、系统类(/var/www/tp5/thinkphp/library/think)

Config
Controller
Env
Route
Url
View
Request 

2、系统方法(/var/www/tp5/thinkphp/helper.php)

dump();  格式化输出
controller(); 调用控制器
action(); 调用方法
config(); 读取和设置配置文件
url(); 生成URL地址
view(); 加载页面
request(); 实例化 Request类

3、如何获取请求类

1、系统函数
    $request=request();

2、系统Request类

    use think\Request;
    // 因为Request类属于单例模式 所以 不能直接new
    $request=Request::instance();

3、系统Request类
    use think\Request;
    // 方法的书写
    public function index(Request $request)
    {
        dump($request);
    }

4、获取用户请求信息

1、获取域名
    dump($request->domain());
2、获取URL地址 除域名以外
    dump($request->url());
3、 获取入口文件
    dump($request->baseFile());
4、获取PathInfo路径
    dump($request->pathinfo());
5、获取PATHINFO路径 无后缀
    dump($request->path());
6、url地址伪静态后缀
    dump($request->ext());

7、伪静态
    就是将路径伪装成静态页面,让搜索引擎更好收录网站,防止别人知道网站真实开发语言

5、获取请求模块\控制器\方法

1、控制器

    $request->controller();

2、方法
    $request->action();

3、模块

    $request->module();

6、获取请求相关类型

1、请求类型
    $request->method();

2、请求资源类型

    $request->type();

3、访问地址

    $request->ip();

4、是否ajax请求

    $request->isAjax();


5、获取所有地址栏参数
    $request->param();

6、获取特定字段

    $request->only(['name','id']);

7、剔除字段

    $request->except(['name','id']);

7、获取变量

1、判断是否存在
    dump($request->has('id','get'));
    dump(input('?get.id'));

2、读取变量
    dump($request->get('id'));
    dump(input('get.id'));

    dump($request->get());
    dump(input('get.'));

3、可以读取数据类型
    get、post、delete、put、session、cookie、server 等
    $request->get();
    $request->post();
    $request->put();
    $request->server();
    $request->request();
    $request->session();
    $request->cookie();

8、变量的过滤

1、作用    
        防止恶意输入、防止sql注入
2、使用
    1、全部的数据进行过滤
        // 单个方法过滤
        $request->filter("htmlspecialchars");
        // 多种方法过滤
        $request->filter(["htmlspecialchars","strip_tags"]);

    2、针对变量过滤
        $request->get('name','','htmlspecialchars');

    3、密码过滤之后加密
        dump($request->get('pass','','htmlspecialchars,md5'));

9、变量的排除和获取

1、获取
    $request->only('name');
    $request->only('name',get);
    $request->only(['name','pass'],get);
2、排除

    $request->except(['name','pass'],get);
    $request->except(['name','pass']);
    $request->except('name');

10、变量修饰符

1、修饰变量的类型
    s 字符串
    d 整形
    f 浮点型
    a 数组
    b 布尔型

2、使用
    dump(input('get.id/d')); // 强制转换整形

    dump($request->get('id/d'));

11、更改变量

// 地址栏访问 http://www.tp.com/index.php/Index/Index/xiugai?id=10
    dump($request->get('id'));  // 10
    dump($request->get(['id'=>20]));  //数组
dump($request->get('id'));  // 20

12、请求类型判断

1、系统类
    // 判断是否是get请求
    dump($request->isGet());
    // 判断是否是手机端
    dump($request->isMobile());

2、系统函数
    dump(request()->isGet());
    dump(request()->isMobile());

13、模拟put、delete请求

1、使用
    <form action="{:url('type')}" method="post">
        <p>
            User:
            <input type="text" name="name" id="">
            <input type="hidden" name="_method" value="PUT">
        </p>
        <p>
            Pass:
            <input type="password" name="pass" id="">
        </p>
        <p>
            <input type="submit" value="提交">
        </p>
    </form>

2、注意
    1、表单的请求类型必须是post

    2、需要设置隐藏域传递模拟请求类型

14、模拟ajax请求和PJAX请求

1、模拟ajax请求
        http://www.tp.com/index.php/index/index/type?_ajax=10
2、模拟pjax请求
    http://www.tp.com/index.php/index/index/type?_pjax=10

15、伪静态

1、作用
        1) URL伪静态通常是为了满足更好的SEO效果
        2) 为了网站的安全
2、修改伪静态
    在配置文件中进行修改

    'url_html_suffix'        => 'shtml',

3、获取当前的伪静态后缀
    $request->ext();

16、参数绑定

1、使用
public function banding($id,$name="admin"){
     dump($id);
     dump($name);
    }

    http://www.tp.com/index.php/index/index/banding/id/1/name/user

2、注意
    1、参数绑定的个数,少于地址栏参数的个数

    2、参数绑定的名字,必须和地址栏参数名字一一对应

    3、参数绑定可以设置默认值
  • thinkCMF上传图片

    thinkCMF上传图片 1、要使用这个功能,首先要引入框架自带的admin.js或者frontend.js文件 再上传的地方添加 1234567891011121314151617181920212223242526...

    thinkCMF上传图片
  • 小程序开发

    小程序开发 获取access_token要将申请的测试号的appid和secret填在相应的位置,而不是填公众号的appid和secret。

    小程序开发
  • global与GLOBAL区别

    global与GLOBAL区别 1.有些场合需要全局变量的出现,如下例子:<?php$name=”why”;//定义变量name,并初始化function echoName(){//试图引用函数外面的变量echo “m...

    global与GLOBAL区别
  • PHP取整

    PHP取整 1.直接取整,舍弃小数,保留整数:intval($a);2.四舍五入取整:round($a);3.向上取整,有小数就加1:ceil($a);4.向下取整:floor($a)。

    PHP取整
  • 为什么PHP变量以$开头

    PHP变量 ​ Because PHP was based on Perl which used $, though the symbols Perl used were meaningful andplenty us...

    为什么PHP变量以$开头
  • PHP超全局变量

    PHP超全局变量 PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。 PHP 超级全局变量列表: $GLOBALS $G...

    PHP超全局变量
  • 面试准备

    PHP面试题目 1、阿里PHP面试​ https://blog.csdn.net/qishouzhang/article/details/47007177 1、get与post的区别​ 最直观的区别就是GET把参数...

    面试准备
  • tp5学习笔记9

    tp5学习笔记9 1、验证器1) 控制器中使用验证器 // 实例化验证器类 $validate=new Validate( [ &q...

    tp5学习笔记9
  • tp5学习笔记8

    tp5学习笔记8 1、视图a) 加载页面 1、继承系统控制器类 return $this->fetch(参数1,参数2,参数3,参数4); 参数1(字符串): 模板...

    tp5学习笔记8
  • tp5学习笔记7

    tp5学习笔记7 1、模型(model)数据模型 2、新建数据模型​ 1) 手动新建 在model目录下 新建 User.php // 声明命名空间 namespace a...

    tp5学习笔记7