博主信息
博文 12
粉丝 0
评论 0
访问量 10608
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
TP6项目最基本comporser包(未完成)
屈世明
原创
1031人浏览过

本方介绍几个最基础的comporser包(也即是说,这些包在常规项目中大概率都是用得上的,所以一般而言,在一个项目开始初,也就都做了自动安装了)

1. ezyang/htmlpurifier

这个包,主要用来防范XSS攻击的,尤其适合富文本HTML过滤器.
其安装和使用代码主要如下:

  1. 安装 composer require ezyang/htmlpurifier
  2. 使用:
  3. $dirty_html=<<<EOF
  4. <h1>Hello
  5. <script>alert("world");</script> EOF;
  6. $config = \HTMLPurifier_Config::createDefault(); $purifier = new \HTMLPurifier($config);
  7. $clean_html = $purifier->purify($dirty_html); dump($clean_html);

2.phpoffice/phpspreadsheet

这个包是用来处理数据表的,也即数据的导出或导入excel.
其安装和使用代码主要如下:

  1. 安装 composer require phpoffice/phpspreadsheet

使用详见:https://blog.csdn.net/u011167662/article/details/101671828

3.firebase JwtToken

这个包主要用来创建token的
安装为:composer require firebase/php-jwt
使用时,需要先引入这个类来创建一个新类,一般会在项目的extend目录下新建一个”personal”的个人类文件夹,在其下创建一个JwtToken.php的类文件,在此类中对外提供两个方法:signToken($uid)和checkToken($token):

  1. namespace personal;
  2. use Firebase\JWT\JWT;
  3. use Firebase\JWT\Key;
  4. class JwtToken{
  5. // 加密
  6. public static function signToken($uid){
  7. $key = 'personal'; // 这里自定义秘钥,需要和解密是保持一致!
  8. $data['uid'] = $uid;
  9. $payload = array(
  10. "iss" => 'personal', //签发者 可以为空
  11. "aud" => 'spospone', //受众,面象的用户,可以为空
  12. "iat" => time(), //签发时间
  13. 'nbf' => time(), // 开始时间
  14. 'exp' => time() + 7*24*60*60, // 到期时间
  15. 'data' => $data // token的数据
  16. );
  17. $jwt = JWT::encode($payload, $key, 'HS256');
  18. return $jwt;
  19. }
  20. // 解密
  21. public static function checkToken($token){
  22. $key = 'personal'; //自定义的一个随机字串用户于加密中常用的 盐 salt
  23. $res['status'] = false;
  24. try {
  25. JWT::$leeway = 60;//当前时间减去60,把时间留点余地
  26. $decoded = JWT::decode($token, new Key($key, 'HS256')); //HS256方式,这里要和签发的时候对应
  27. $arr = (array)$decoded;
  28. $res['status'] = 0;
  29. $res['data'] =(array)$arr['data'];
  30. return $res;
  31. } catch(\Firebase\JWT\SignatureInvalidException $e) { //签名不正确
  32. $res['info'] = "签名不正确";
  33. $res['status'] = 1;
  34. return $res;
  35. }catch(\Firebase\JWT\BeforeValidException $e) { // 签名在某个时间点之后才能用
  36. $res['info'] = "token失效";
  37. $res['status'] = 1;
  38. return $res;
  39. }catch(\Firebase\JWT\ExpiredException $e) { // token过期
  40. $res['info'] = "token失效";
  41. $res['status'] = 1;
  42. return $res;
  43. }catch(Exception $e) { //其他错误
  44. $res['info'] = "未知错误";
  45. $res['status'] = 1;
  46. return $res;
  47. }
  48. }
  49. }

先这样子,今天发现了这个实用就先写这一个.

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学