shell
1 | echo -e "hell\bo" |
redis批量删除key
1 | 从2.8.0以后redis提供scan来遍历key,而且这个过程是非阻塞,不会影响线上生产环境。最终经过修改的方案是用scan遍历要删除的key,然后调用del删除 |
centos7安装redis3.2
1 | wget http://download.redis.io/releases/redis-3.2.4.tar.gz |
firewall
1 | # systemctl start firewalld # 启动, |
nginx反向代理解决跨域问题
1 | 有2个站点,front.aaa.com和api.aaa.com。假设这里我们2个站点都用nginx搭建,front.aaa.com的nginx配置文件为front.conf,api.aaa.com的nginx的配置文件为api.conf。当front站点的页面ajax访问api站点的时候就会起因这个跨域问题。我们在front站点配置1个针对api的反向代理,配置如下: |
数据结构算法
1 | //https://laravel-china.org/topics/21967 |
PHP 攻击短信验证码
1 | https://laravel-china.org/articles/22051 |
get_object_vars
1 | array get_object_vars ( object $obj ) 返回由 obj指定的对象中定义的属性组成的关联数组。 |
进制转换
1 | # 十进制转二进制的方法:除2取余,逆序排列, https://blog.csdn.net/shirley_sweet/article/details/73896279 |
计算当前时间最近的 5 或 10 分钟
1 | //https://ourcodeworld.com/articles/read/756/how-to-round-up-down-to-nearest-10-or-5-minutes-of-datetime-in-php |
基于 swoole 协程的 MySQL 连接池
1 | <?php |
laravel 事件指定队列
1 | https://laravel-china.org/articles/15338/laravel50-event-specifies-queue-names |
记录guzzle
1 | <?php |
记录Redis
1 | <?php |
监控redis对应队列消息
1 | https://laravel-china.org/articles/4479/analysis-of-laravel-queue-usage |
使用写库读数据
1 | $user = DB::selectFromWriteConnection('select * from users where id=42111'); |
Excel 导出
1 | class ExcelExport |
使用Guzzle进行API测试
1 | //https://www.jianshu.com/p/3de203392ec4 |
guzzle并发
1 | use GuzzleHttp\Client; |
ab 登录
1 | 先用账户和密码登录 |
查看16进制
1 | echo 'welcome' > file1 |
消息队列
1 |
|
将一组数字组合出一个最大值
1 | //https://www.raymondwu.net/2018/08/24/%E5%B0%86%E4%B8%80%E7%BB%84%E6%95%B0%E5%AD%97%E7%BB%84%E5%90%88%E5%87%BA%E4%B8%80%E4%B8%AA%E6%9C%80%E5%A4%A7%E5%80%BC/ |
Nginx 部署 MySQL 负载均衡
1 | stream { |
php artisan
1 | php artisan list |
Laravel Eloquent 提示和技巧
1 |
|
判断图片
1 | 使用getimagesize()函数,如果不能访问 filename 指定的图像或者其不是有效的图像,getimagesize() 将返回 FALSE 并产生一条 E_WARNING 级的错误。 |
位运算
1 | class LightControl |
CURL 发送文件
1 | <form action="/testFile" method="post" enctype="multipart/form-data"> |
验证图片安全
1 | /** |
shell
1 | 1、查看当天有多少个IP访问: |
守护进程
1 | class Deamon |
laravel获取记录的原始属性
1 | $user = App\User::first(); |
获取重复值
1 | // 获取去掉重复数据的数组 |
表限制
1 | 表数据限制: |
带索引检查计算数组的差集
1 | $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); |
过滤xss
1 | $ composer require "mews/purifier:~2.0" |
laravel事件队列
1 | <?php |
guzzle上传图片
1 | $client = new \GuzzleHttp\Client(); |
guzzle
1 | //https://media.readthedocs.org/pdf/guzzle/5.3/guzzle.pdf |
基于 GD 库生成圆形头像
1 | /** |
Laravel 分组获取最新记录
1 | //https://learnku.com/articles/20626 |
打包exe
1 | package main |
laravel读主
1 | 在Model里面加上下面这句,强制读主(写)库数据库,解决主从延迟问题。 |
PHP使用Memcached存储Session
1 | session.save_handler = memcached |
单元测试
1 | composer global require "phpunit/phpunit=5.5.*" |
lumen 事务
1 | use Illuminate\Database\Eloquent\ModelNotFoundException; |
lumen sql
1 | DB::statement('drop table users'); |
xml2array
1 | //https://learnku.com/articles/22936#f411d0 一个类只做一件事 |
导出Excel
1 | //导出说明:因为EXCEL单表只能显示104W数据,同时使用PHPEXCEL容易因为数据量太大而导致占用内存过大,https://blog.csdn.net/Tim_phper/article/details/86636608 |
Lumen 使用 throttle 限制接口访问频率
1 | https://juejin.im/post/5c41bea8f265da61171cfecf |
db有多个连接
1 | 门面模式下,laravel会用默认的连接(例如:defaultdb)而不是你认为的mydb。 |
闭包基本用法
1 | PHP 中传递对象时,默认是以引用传递所以在闭包内操作 use 传递的对象时需要特别注意https://www.0php.net/posts/PHP-Clourse-%E9%97%AD%E5%8C%85%E7%B1%BB-%E6%B5%85%E6%9E%90.html |
nginx 配置文件
1 | # 指定运行 nginx 的用户 |
try catch
1 | function foo() |
忽略 include 的输出
1 | ob_start(); |
中间件
1 | $allMiddleware = function () { |
php数组函数
1 | //composer require zane/utils dev-master |
浮点数精确度
1 | 4.35-4.34等于0.0099999999999998 |
windows换行符转换
1 | sed -i 's/\r//' build.sh && bash build.sh |
控制字符检测
1 | $strings = array('string1' => "\n\r\t", 'string2' => 'arf12'); |
匿名函数
1 | class Order |
Laravel 辅助函数
1 | composer.json的autoload下加 |
go结构体自定义排序
1 | package main |
api签名
1 | //https://github.com/larvacent/laravel-auth-signature-guard/blob/master/src/SignatureGuard.php |
PHP数组扁平化
1 | $data = [ |
ffmpeg
1 | yum install ffmpeg |
1752年9月2日的后面竟然是14日
1 | [root@su ~]# cal 9 1752 |
批量转换文件编码
1 |
|
crontab 任务误删恢复
1 | cat /var/log/cron* | grep CMD | awk -F'CMD' '{print $2}' | awk -F'[(|)]' '{print $2}' | sort -u |
php yield
1 | function getValues() { |
Redis技巧:Sorted Set使用
1 | 127.0.0.1:6379> ZADD mid_test 70 "Li Lei" |
字符串算术表达式计算
1 | $aa = "{1}*{2}-{3}"; |
jwt 用户身份认证
1 | class JwtBase { |
PHP 读取超大文件
1 | https://www.itcodemonkey.com/article/11835.html |
下载超大数据量的Excel文件
1 | /** |
判断一个图像的类型
1 | if (exif_imagetype("image.gif") != IMAGETYPE_GIF) { |
给定任意数,计算是2的几次方
1 | function power($number){ |
CURL 发送文件
1 |
|
流的方法导出 Excel
1 | public function export($params) |
laravel orm
1 | 取出一组热门作者及他们最近发表的3篇文章 |
curl时设置Expect
1 | 在不设置 Expect 头信息使用 curl 发送 POST 请求时,如果 POST 数据大于 1kb,curl 默认行为 如下: |
身份证的编码规则
1 | const ID_15_PREG = '/^[1-9]\d{7}(0[1-9]|1[0-2])([0-2][1-9]|[1-2]0|31)\d{3}$/'; |
定时脚本
1 | 在不增加脚本文件可执行权限的情况,可以直接使用sh命令解决。 |
PHP文件锁机制
1 | //获取指针 |
关闭错误日志
1 | ,通过 error_log off 并不能关闭错误日志记录,而它只是表示将日志文件写入一个文件名为 off 的文件中。 |
php实现多进程
1 | producer.php |
反射机制实现
1 | <?php |
cron
1 | 设定每个脚本最多执行时间位 200秒,超过 200秒 就自动死掉。https://learnku.com/articles/25177 |
分割数组
1 | //源数据 |
json_encode()如何转化一个对象
1 | //https://blog.yiranzai.cn/posts/26855/ |
断点续传
1 | class FileDownload{ // class start |
字节处理函数pack unpack
1 | 将数据打包成二进制字符串https://learnku.com/articles/25414#topnav |
文件yield
1 | /** |
队列
1 | 队列是一种特殊的线性表(链表),特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作(FIFO),和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 |
PhpSpreadsheet 实现读取写入 Execl
1 | composer require phpoffice/phpspreadsheet |
重试机制
1 | $retry = 2;//http://liuxiaochun.cn/2018/08/10/php-mongoclient-no-candidate-servers-found-%E5%88%86%E6%9E%90/ |
laravel first 更新不成功
1 | $user =user::where('id',2)->first(['name','age']); |
Laravel 关联查询限制条数
1 | select `u`.`id`,`u`.`name`,`num` from `users` as `u` left join (select `user_id`,count(*) as `num` from books group by `user_id`) as `b` on `u`.id = `b`.user_id |
laravel MassAssignmentException
1 | >>> $s= Stock::where(['uid'=>3230498441,'readtime'=>0 ])->first() |
1234567890 转换成 1,234,567,890
1 | $str='1234567890'; |
curl cookie
1 | mycurl('xxx',3,3,$_COOKIE) |
创建 Zip 压缩文件并提供下载
1 | $zip_file = 'invoices.zip'; // 要下载的压缩包的名称 https://learnku.com/laravel/t/26087 |
php email
1 | <?php |