
PHP
理论+实战让你进一步了解php编程,了解框架技术
西虹市大陆
博主有点懒,但干货满满~~。
展开
-
laravel记录接口执行的所有sql到日志文件(排查慢sql)
在开发过程中,我们的接口会出现响应速度慢的问题,可能引起的原因是网络IO慢,服务器CPU处理速度慢,硬盘IO慢,代码复杂度高,数据库慢sql等原因引起,需要先排除清楚原因。在排查慢sql的过程中,需要记录sql的执行条数,执行的秒速,sql的复杂度进行分析,下面是laravel框架记录每次接口请求的所有sql记录。原创 2022-10-13 11:10:10 · 1457 阅读 · 1 评论 -
剖析php数组对比函数(避坑篇)
两个数组的比对在日常编码过程中是最常用到的,稍微复杂点的业务需求都需要用到array_diff_assoc原创 2022-06-17 14:38:02 · 516 阅读 · 2 评论 -
mac php使用pecl安装imagick扩展
由于多次踩坑,现记录下。原因很简单,pecl工具安装其它扩展基本是不用依赖其它东西的,但imagick扩展需要mac先安装imagemagick,它需要依赖这个东西。原创 2022-04-12 11:22:58 · 1719 阅读 · 1 评论 -
php获取近n周的开始、结束时间,每周开始、结束日期、年周列表。
php获取近n周的开始、结束时间,每周开始、结束日期、年月列表。 /** * 获取近n周开始、结束时间,每周开始、结束日期、年月列表。 * @param int $n * @return array|bool */ public static function getLastNWeeks(int $n){ if($n <= 0){ return false; } $n++;原创 2022-04-07 11:45:57 · 1014 阅读 · 0 评论 -
php获取时间日期大全
php获取时间日期大全,php获取本周一以及本周任意一天的时间戳原创 2022-04-06 18:48:49 · 6109 阅读 · 0 评论 -
php switch case 两个条件,多个条件同一个case
介绍多个case值执行相同的逻辑时,希望写在同一个case下,例如case ‘a’||‘b’:,但实际不能正确运行解决方案第一个条件后,不要写breck终端,他会自动执行下一个条件下语句原理switch 语句开始时没有代码被执行。仅当一个 case 语句中的值和 switch 表达式的值匹配时才开始执行case下语句,直到 switch 遇 break 语句才会推出执行。如果case 后不写上,PHP 将继续执行下一个 case 中的语句根据switch case规则:每一种case结束的时转载 2021-12-08 14:33:57 · 8277 阅读 · 0 评论 -
php打包多个文件下载zip(包含云文件)
laravel打包多个文件下载zip(包含云文件)把云服务器文件下载到服务器打包成zip文件,然后下载。下载后对服务器文件进行删除。原创 2021-11-11 20:58:44 · 1395 阅读 · 0 评论 -
guzzlehttp/guzzle 包设置超时
GuzzleHttp\Client 在readme.txt文件没有详细说明它的配置参数,需要配置http请求超时的进。原创 2021-11-09 17:35:25 · 2810 阅读 · 0 评论 -
Laravel 查询 多个or或者and条件
在查询数据的时候经常会遇到相对复杂一些的查询条件,甚至是嵌套很多层的情况。Laravel框架的模型操作也是比较灵活,当我们遇到多个条件or,多个条件and等组合条件时,如何操作?原创 2021-10-12 18:55:36 · 3186 阅读 · 2 评论 -
使用phpexcel在excel文件中插入新的数据
使用phpexcel在excel文件中插入新的数据摘要:在开发中,我们经常需要读写excel表格。今天开发了一下读excel表格,然后使用 insertNewRowBefore 方法插入新行,生成新的表格。代码如下,亲测好用:/** * 在已有excel表中插入数据例子 */ public function readyExcel($filename){...原创 2019-02-21 16:22:12 · 4532 阅读 · 0 评论 -
如何实现Rabbitmq延迟队列
设计延迟队列由于Rabbitmq默认没有支持延迟队列,需要使用官方的TTL和死信队列来实现我们的延迟队列功能.实现原理:1、rabbitmq 可以针对 Queue和Message 设置 x-message-ttl 来控制消息的生存时间,如果超时,消息变为 dead letter2、rabbitmq 的queue 可以配置 x-dead-letter-exchange 和 x-dead-letter-routing(可选) 两个参数,来控制队列出现 dead letter 的时候,重新发送消息的目的转载 2020-09-16 12:55:57 · 756 阅读 · 1 评论 -
PHP 7.0+新特性
php7.0至php7.3的新特性和一些变化PHP7.0PHP7.0新特性1. 组合比较符 (<=>)组合比较符号用于比较两个表达式。当$a小于、等于或大于$b时它分别返回-1、0或1,比较规则延续常规比较规则。对象不能进行比较var_dump('PHP' <=> 'Node'); // int(1)var_dump(123 <=> 456); // int(-1)var_dump(['a', 'b'] <=> ['a', 'b'])转载 2021-06-24 17:25:15 · 435 阅读 · 0 评论 -
不要掉进PHP数组合并的坑。(初学者须知道)
PHP提供的两种合并数组方式:1、两个数组直接相加:$arr = $arr1+$arr2;注:但两个数组key相同时,会保留arr1的值,而抛弃arr2的值2、使用array_merge函数:$arr = array_merge($arr1,$arr2);两者区别:当下标为数值时,array_merge()不会覆盖掉原来的值,但arr1+arr2合并数组则会把最先值arr1的值作为最终结果返回,而把arr2数组拥有相同键名的那些值“抛弃”掉,而不是覆盖当下标为字符时,arr1+arr2原创 2021-06-19 14:50:12 · 273 阅读 · 2 评论 -
Laravel & Lumen RESTFul API 扩展包:Dingo API(三) —— Response(响应)
一个API的功能主要是获取请求并返回响应给客户端,响应的格式是多样的,比如JSON,返回响应的方式也是多样的,这取决于当前构建的API的复杂度以及对未来的考量。返回响应最简单的方式是直接从控制器返回数组或对象,但不是每个响应对象都能保证格式正确,所以你要确保它们实现了ArrayObject或者Illuminate\Support\Contracts\ArrayableInterface接口:class UserController{ public function index() ...转载 2021-03-30 14:26:58 · 1506 阅读 · 0 评论 -
PHP 按数组指定key的值进行升序或降序排序
在实际业务中,我们常常会用到排序,比如升序、降序,今天遇到了需要通过数据的key值进行排序,通过实际例子分享。原创 2021-03-27 11:56:41 · 3887 阅读 · 0 评论 -
laravel输出执行的原生sql语句进行调试
laravel输出执行的原生sql,调试sql神器。DB::connection()->enableQueryLog();(---这块是你的数据库查询操作---)$log = DB::getQueryLog();print_r($log);实例:DB::connection()->enableQueryLog();$users = DB::table('users')->get();$log = DB::getQueryLog();print_r($log);..原创 2021-01-04 16:53:51 · 963 阅读 · 0 评论 -
laravel框架php artisan make命令自定义目录路径
我们用laravel框架时可以通过php artisan make命令进行文件创建,但是通常文档中不会告诉你如何改变目录路径。下面是本人实践后的成果原创 2020-12-01 18:35:15 · 1545 阅读 · 0 评论 -
TP5查询数据库字段不为空
数据库查询字段不为空比较特别,所以在此记录一下原创 2020-03-27 19:18:30 · 6406 阅读 · 0 评论 -
PHP 文字生成透明图片之路
PHP 文字生成透明图片之路摘要:在现在的开发中会经常运用到生成图片的功能,常用的验证码生成等。PHP语言生成图片需要用到GD2功能模块,所以基本的图片,图形处理都是没什么压力滴。准备:1、打开GD2模块,在php.ini文件中把GD2打开即可。2、准备一个适合在linux以及windows适用的字体文件代码:$text = "我爱中国";//显示的文字$size=16;//字体大...原创 2019-06-27 18:11:25 · 1644 阅读 · 0 评论