首页 > 编程语言 >ThinkPHP常用方法

ThinkPHP常用方法

时间:2024-03-08 14:34:42浏览次数:20  
标签:常用 加密 name queryString AES 128 ThinkPHP query 方法

对称加密

对称加密可以用来把登录用户的 id 和 name 等少数信息http_build_query成一个字符串加密后放入 cookie 中。

    public function encryptString($content, $key)
    {
        return openssl_encrypt($content, 'AES-128-ECB', $key);
    }

    public function decryptString($content, $key)
    {
        return openssl_decrypt($content, 'AES-128-ECB', $key);
    }

调用

//待加密字符串
$queryString = 'id=1&name=John+Doe&age=22&city=%E5%8D%8E%E7%9B%9B%E9%A1%BF';
//加密
$encStr = openssl_encrypt($queryString, 'AES-128-ECB', 'key123');
echo $encStr . PHP_EOL;
//解密
$deStr = openssl_decrypt($encStr, 'AES-128-ECB', 'key123');
echo $deStr . PHP_EOL;

image

http_build_query & parse_str

http_build_query 将该数组或对象转换成一个经过 URL 编码的查询字符串。
parse_str 将查询字符串转换成数组或对象。

$data = array(
    'name' => 'John Doe',
    'age' => 22,
    'city' => 'New York'
);
//将数组转换为url的查询部分
$queryString = http_build_query($data);
echo $queryString . PHP_EOL;
//将 ur拼接字符串 转换成数组
parse_str($queryString, $res);
print_r($res);

执行后返回
image

Cookie对象

// 在 cookie 中设置 access_token 值
Cookie::set('access_token', $accessToken, Config::get('app.default_logout_time'));
// 从 cookie 中获取accessToken
$accessToken = Cookie::get('access_token');

DB 链式调用

Db 对象链式调用查询数据。

                $list = Db::name('table1')
                    ->alias("a")
                    ->field("a.*,c.col2")
                    ->where($where)
                    ->join("table2 c", "a.col1 = c.id", "left")
                    ->order(["create_time" => "desc"])
                    ->paginate($param["limit"], false, [$param["page"]]);

标签:常用,加密,name,queryString,AES,128,ThinkPHP,query,方法
From: https://www.cnblogs.com/aeolian/p/18060776

相关文章

  • Spring boot常用命令总结
    1.打包jar包mvnpackageclean-Dmaven.test.skip=truemvnpackage-Dmaven.test.skip=true2.结束当前运行的程序ps-aux|grepjavakill-9$(ps-ef|grep/usr/bin/chromedriver|grep-vgrep|awk'{print$2}')kill-9$(ps-ef|grep/opt/google/chrome/chrome|grep......
  • 关于安卓连接自带的数据库方法
    安卓连接自带的SQLLite方法和搭建web网站连接数据库操作基本没有区别。唯一的区别就是在web网站的时候我们在数据库中创建表都是在可视化软件中进行的,而安卓开发则需要自己去写SQL语句去创建一个新的表。接下来就简单演示一下这个过程。第一步自然是新建一个安卓项目,这里不在进行......
  • 除了行为管理,还有哪些方法可以防止员工摸鱼行为?
    除了行为管理的手段之外,我们还可以采用以下几种方式来防止员工的摸鱼行为:提供足够的工作量:给员工提供足够的工作量,让他们把工作时间用在真正的工作上,而不是去做其他无关的事情。通过价值观和公司文化的塑造:建立正确的工作态度和职业精神,让员工充分认识到他们的行为对公司的......
  • flutter开发提示Flutter device daemon #1报错解决方法
    1.问题描述更新或者切换AndroidStudio时候可能会出现Flutterdevicedaemon#1问题,这个问题出现会导致AndroidStudio找不到Device设备,从而导致没有方法跑flutter项目。2.解决方法先在cmd窗口输入flutterdoctor诊断查看一下什么问题,一般出现和flutter环境有关的问题......
  • JavaScript 常用取整、四舍五入方法汇总
    https://juejin.cn/post/7184257661339172919  2023-01-0314,624阅读2分钟 在JavaScript中,对数值进行四舍五入操作的场景有以下几种:向上取整:ceil向下取整:floor四舍五入:round固定精度:toFixed固定长度:toPrecision取整:parseInt1.向上取整:ceilceil是天花板......
  • 03_工厂方法模式
    工厂方法模式是一种创建型设计模式,用于定义一个创建对象的接口,但将实际创建对象的工作延迟到子类中。这样可以使一个类的实例化延迟到其子类中,从而实现解耦和灵活性。在工厂方法模式中,通常包含以下几个角色:抽象工厂(Creator):定义创建对象的接口,通常包含一个抽象的工厂方法,由子类......
  • MySQL常用语句
    目录1.创建数据库2.删除数据库3.使用数据库4.创建表5.删除表6.插入数据7.查询数据8.更新数据9.删除数据10.连接两个或多个表11.排序数据12.限制返回的数据数量13.创建索引14.删除索引15.创建主键16.删除主键17.创建外键18.删除外键1.创建数据库CREATEDATA......
  • c# webapi 禁用单个方法(Action)与整个控制器(Controller)
      在C#中,如果你想要禁用WebAPIController下的所有方法,你可以通过在Controller上应用特定的Attribute来实现。这里有两种常见的方法来禁用所有Controller的方法:使用[NonAction]属性:这个属性可以被应用到单个的Action方法上,以指示该方法不作为Action处理。但是,如果你想禁......
  • 换手机后日记不见了怎么恢复?换手机日记内容同步方法
    曾经,我使用的是一款苹果手机,这部手机陪伴了我整整3年。随着时间的推移,手机内存不够用成为了我面临的一个大问题,因此我决定更换一部新手机——这次我选择了OPPO品牌。在更换手机的过程中,我利用手机搬家软件一键同步了短信、图片、联系人等数据。然而,当我想查看那些记录在苹果手机系......
  • 并发编程Thread的常用API有哪些?
    引言在JDK17(或以上版本)中,Thread类提供了一组常用的API,用于管理线程的创建、启动、暂停、恢复和销毁等操作。本文从api、源码、编程示例等方面详细说明Thread常用函数的使用和注意事项。线程sleep使当前正在执行的线程暂停(挂起)指定的毫秒数。但受系统计时器和调度程序的精度......