Blogger Information
Blog 12
fans 0
comment 0
visits 7744
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
TP6项目最基本comporser包(未完成)
屈世明
Original
647 people have browsed it

本方介绍几个最基础的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. }

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

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post