本方介绍几个最基础的comporser包(也即是说,这些包在常规项目中大概率都是用得上的,所以一般而言,在一个项目开始初,也就都做了自动安装了)
这个包,主要用来防范XSS攻击的,尤其适合富文本HTML过滤器.
其安装和使用代码主要如下:
安装 composer require ezyang/htmlpurifier使用:$dirty_html=<<<EOF<h1>Hello<script>alert("world");</script> EOF;$config = \HTMLPurifier_Config::createDefault(); $purifier = new \HTMLPurifier($config);$clean_html = $purifier->purify($dirty_html); dump($clean_html);
这个包是用来处理数据表的,也即数据的导出或导入excel.
其安装和使用代码主要如下:
安装 composer require phpoffice/phpspreadsheet
使用详见:https://blog.csdn.net/u011167662/article/details/101671828
这个包主要用来创建token的
安装为:composer require firebase/php-jwt
使用时,需要先引入这个类来创建一个新类,一般会在项目的extend目录下新建一个”personal”的个人类文件夹,在其下创建一个JwtToken.php的类文件,在此类中对外提供两个方法:signToken($uid)和checkToken($token):
namespace personal;use Firebase\JWT\JWT;use Firebase\JWT\Key;class JwtToken{// 加密public static function signToken($uid){$key = 'personal'; // 这里自定义秘钥,需要和解密是保持一致!$data['uid'] = $uid;$payload = array("iss" => 'personal', //签发者 可以为空"aud" => 'spospone', //受众,面象的用户,可以为空"iat" => time(), //签发时间'nbf' => time(), // 开始时间'exp' => time() + 7*24*60*60, // 到期时间'data' => $data // token的数据);$jwt = JWT::encode($payload, $key, 'HS256');return $jwt;}// 解密public static function checkToken($token){$key = 'personal'; //自定义的一个随机字串用户于加密中常用的 盐 salt$res['status'] = false;try {JWT::$leeway = 60;//当前时间减去60,把时间留点余地$decoded = JWT::decode($token, new Key($key, 'HS256')); //HS256方式,这里要和签发的时候对应$arr = (array)$decoded;$res['status'] = 0;$res['data'] =(array)$arr['data'];return $res;} catch(\Firebase\JWT\SignatureInvalidException $e) { //签名不正确$res['info'] = "签名不正确";$res['status'] = 1;return $res;}catch(\Firebase\JWT\BeforeValidException $e) { // 签名在某个时间点之后才能用$res['info'] = "token失效";$res['status'] = 1;return $res;}catch(\Firebase\JWT\ExpiredException $e) { // token过期$res['info'] = "token失效";$res['status'] = 1;return $res;}catch(Exception $e) { //其他错误$res['info'] = "未知错误";$res['status'] = 1;return $res;}}}
先这样子,今天发现了这个实用就先写这一个.
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号