php-生成文件流,-不生成本地文件
$string = "I tried, honestly! 中文"; $stream = fopen('data://text/plain,' . $string,'r'); //file_put_contents('./a.txt', $stream); //echo stream_get_contents($stream); echo $stream; $string = 'Some bad-ass string'; $stream = fopen('php://memory','r+'); fwrite($stream, $string); rewind($stream); echo stream_get_contents($stream); 参考自: Creating streams from strings in PHP类的-static-及-self
使用 self:: 或者 CLASS 对当前类的静态引用,指向 定义当前方法所在的类. 使用 static 对当前类的静态引用,指向 使用当前方法所在的类. 参见php.net 后期静态绑定csrf-跨站请求伪造
CSRF(Cross-site request forgery)跨站请求伪造, 定义: 攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。 利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。 一个典型的CSRF攻击有着如下的流程: 受害者登录a.com,并保留了登录凭证(Cookie)。 攻击者引诱受害者访问了b.com。 b.com 向 a.com 发送了一个请求:a.com/act=xx。浏览器会默认携带a.com的Cookie。 a.com接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求。 a.com以受害者的名义执行了act=xx。 攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让a.com执行了自己定义的操作。 前后端分离时, 不使用 cookie, 则不会有 csrf 危险php-的-session-文件
由于 http 无状态性, 一般 MVC 可以使用session 用于存储用户信息. <?php session_start(); // 开启 session, 将会生成一个 session_id, 通过 http 响应头返回给浏览器, 浏览器存储到本地的 cookie 中, 下次 http 请示会自动携带给服务端; // 同时会在服务端生成一个文件 如 sess_2rh6hq44kjbtagri2r88dj16b1 (后面一串为 session_id), 当前会话(通过 id保持) 的数据, 会保存在该文件中, 如 session('name', 'test') session_unset(); // 注销当前会话下的 session 变量, 但不会删除当前 sess_xxxx... 文件, 而是清空文件里的内容(key: value)laravel-composer-dump-autoload-失败
报 class xxx not found // 1. 执行 php artisan config:clear // 2. 再不行就执行 php artisan clear-compiled // 3. 再不行就把 vendor/composer/ 文件夹里 autoload_ 开头的文件删除composer-version-constraint
Tilde ~2.1, means 2.1.0 <= version < 3.0.0 ~2.1.1, means 2.1.1 <= version < 2.2.0 Caret // - ^2.1, means 2.1.0 <= version < 3.0.0 ^2.1.1, means 2.1.0 <= version < 3.0.0 Wildcard 2.1.*, means 2.1.0 <= version < 2.2.0 reference: composer查询字段是否含有中文
SELECT col FROM table WHERE length(col)!=char_length(col) 通过查询长度和字符个数是否相等, 相等则不包含中文, 不相等则包含中文 原文见cnbloglaravel-多对多关联时,-会出现-pivot-字段,-如何删除
$user->roles->makeHidden('pivot'); // 或者在 model 中 protect $hidden = ['pivot'];laravel-wechat-公众号更换url时报-token-验证失败
VerifyCsrfToken 中间件, 排除 微信相关的 路由, 见文档 是否开启了 debugbar, 关闭之, 见githubgolang-删除-slice-中的部分元素
golang 对 slice 的操作全在 [:] 中 和 append // 删除切片的第三个元素 sslice := []int{0,1,2,3,4} sslice = append(sslice[:2], sslice[3:]...) Notice sslice[A:B], 包涵 A, 不包括 B; 若 A = B,包涵 A append 第一个参数为 切片, 第二(三,四)个参数为 元素, 若为 切片, 可以使用 … 分解 (析构) 为元素
Recent Posts
Tags
- apache 4
- axios 1
- benchmark 1
- c 1
- canvas 1
- centos 3
- channel 1
- crontab 1
- css 2
- docker 4
- fail2ban 1
- frp 1
- gin 1
- github 1
- go 26
- goaccess 1
- goroutine 1
- http 1
- https 1
- jetbrains 1
- jquery 1
- js 2
- linux 20
- mermaid 1
- mysql 10
- nginx 3
- node 1
- php 43
- prisma 1
- react 8
- server 1
- ssh 2
- tarojs 1
- tcp/ip 1
- token 1
- ubuntu 1
- ufw 1
- unit-test 1
- vmware 1
- vscode 1
- vue 12
- yum 1
- 域名 3
- 安全 2
- 微信 3
- 算法 3