自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 Windows下安装的redis、MongoDB及其php扩展和PHP安装的redis、MongoDB扩展,php -m可以看到,但是phpinfo()看不到,清缓存,重启服务都没用!

链接: https://pan.baidu.com/s/1DvDPilG63k58geR2DGWlww 提取码: 5j7m

2021-01-09 13:45:16 233

原创 Nginx配置

#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connections 1024;}http { include mime.types; defaul...

2021-01-06 09:23:55 132 1

原创 GROUP_CONCAT的正确使用

一:GROUP_CONCAT(distinct )我在解决join连表查询时发现了一对多的问题,这时一个product_id对应一个tag_id,这个tag_id又对应一个title;下面就用到了GROUP_CONCAT()的这个方法;对某个字段分组处理;处理之后数据是我想到的了;不对,这里面出现了一种情况,什么呢?我需要的这个字段出现了重复的现象,why?我在排查的时候发现我在逻辑里面做了for循环处理,不怕!还是有解决办法的,GROUP_CONCAT(distinct tag.ti.

2020-09-16 21:01:07 679

原创 企业微信群发消息提醒

一: 企业微信官方文档:https://work.weixin.qq.com/api/doc/90000/90136/91770 data数据:$url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?'; //创建群机器人自动分配的url地址$data = array( 'msgtype'=> 'text', 'text' =>array( 'content' => "this i.

2020-08-27 18:45:54 1136

原创 phpexcel导出csv文件乱码的解决办法

一:PHPExcel插件是非常好用的,平时也一直用它导出xlsx文件,一直也用的很顺手,接口调试的时候已是正常的,能够输出csv文件的,但是接口嵌入到程序中,按钮触发没反应。一点点的排查,发现输出了一些个蝌蚪文,乱码!首先,想到的是header的问题,如下,这里是处理过乱码的问题了,但是没有效果;//弹窗式保存ob_end_clean();//清除缓冲区,避免乱码header("Pragma: public");header("Expires: 0");header("Cache-Cont

2020-06-27 10:30:47 752

原创 Paypal退款踩过的坑

一:先看官方文档,注意提交方式和右边的提交格式,capture_id这个值实际就是支付id二:首先是header头,Access-Token的获取1.先获取用户全部信息:2.整个用户信息传入获取tokenpublic function get_ppinfo($data,$t=0){ if($t == 1){ $this->_ppinfo = $data; }else{ $a_model = M("accounts",'pp_')

2020-06-19 10:06:11 1493

原创 Navicat 快捷键

常规 键 动作 CTRL+SHIFT+#(# 代表 1 至 9) 添加到收藏夹 F8 Navicat 主窗口或对象选项卡 CTRL+TAB 或 SHIFT+CTRL+TAB 下一个窗口或选项卡 CTRL+Q 新建查询 F1 帮助 Navicat 主窗口

2020-06-04 18:51:26 195

原创 查看3306端口被谁占用

今天安装mysql一直有问题,怀疑3306被谁占用了,排查开始:一:使用命令符netstat命令查看netstat -a -n显示各个端口占用:netstat -ano显示各个端口占用和进程PID:二:使用netstat -aon|findstr "3306"命令查找"3306"端口信息三:使用tasklist|findstr "pid"命令查看这个pid被哪个程序占用,举例3306端口,tasklist|findstr '12936'...

2020-06-04 13:56:22 2492

原创 wampserver配置

业精于勤荒于嬉。wampserver这个东西很久不用了,今天在配置虚拟主机的时候竟然花费了半个小时时间!一:安装wampserver,下载安装包一般就是傻瓜式安装,除非端口号被占用了。另外还要注意32位和64位二:安装成功后,默认路径在www文件下,我一般喜欢自定义路径,那么就需要修改http.conf文件。1.找到文件中的“DocumentRoot”位置,对documentroot路径进行修改,如下:这里路径就被指定了,这个文件还有一个地方要修改,我今天就在这里花费了时间,

2020-06-03 19:09:26 175

原创 程序员前世今生之在大学的那些日子

目录第一部分谁也不是生下来就是程序员第一章上大学前的生活第二章在大学的那些日子第三章在部队里的事第二部分我选择了程序员,程序选择了我第四章从听说编程到初次接触编程第五章自学编程的那些艰苦卓绝日子第六章边实习边给人打下手的委屈生活第七章独当一面的美滋滋日子第八章第一次为涨工资跳槽第九章程序人生的高光时刻第十章第一次职业倦怠期和迷茫期第十一章第...

2020-05-30 20:31:53 270

原创 程序员前世今生,从门外汉到菜鸟,再到独当一面,再到思变转行

程序员前世今生程序员的选择和抉择目录第一部分 谁也不是生下来就是程序员上大学前的生活 在大学的那些日子 在部队里的事第二部分 我选择了程序员,程序选择了我从听说编程到初次接触编程 自学编程的那些艰苦卓绝日子 边实习边给人打下手的委屈生活 独当一面的美滋滋日子 第一次为涨工资跳槽 程序人生的高光时刻 第一次职业倦怠期和迷茫期 第二次跳槽 再一次职业倦怠和思考第三部分 改变第十三章 卖鞋(赔)第十四章 卖酒精(赚)...

2020-05-19 16:16:26 400

原创 触发器那些事

一:触发器报错:“Not allowed to return a result set from a trigger”。创建触发器语句如下:CREATE TRIGGERnewproductAFTER INSERT ONproductsFOR EACH ROWSELECT 'Product added' ;此时报错:Not allowed to return a...

2020-03-25 18:01:57 154

转载 PHP自我修炼之路

一、平静的心态和所有程序员一样,要写一手好的程序,没有好的心态是不行的。遇事不可急躁,不可轻言放弃。在程序开发过程中,尤其是初中级程序员,写出的程序或架构会遇到很多问题,其中一些问题比较弱智,而有些问题根本没有碰到过,于是不可太过急躁,应该逐个排查问题的最初源泉,将其干掉。急躁的心态去开发系统是对项目的一种不负责。急躁会让人学会将就,让人学会逃避。而我个人北京两年的简单生活,给我其中一...

2020-03-18 17:02:44 194

转载 Laravel 加载执行文件流程

一、 laravel结构 |– app 包含Controller、Model、路由等在内的应用目录,大部分业务将在该目录下进行 |  |– Console 命令行程序目录 |  |  |– Commands 包含了用于命令行执行的类,可在该目录下自定义类 |  |  |– Kernel.php 命令调用内核文件,包含commands变量(命令清单,自定义的命令需...

2020-03-16 17:18:26 1407

转载 「PSR 规范」PSR-2 编码风格规范

编码风格指南本篇规范是 PSR-1 基本代码规范的继承与扩展。本规范希望通过制定一系列规范化 PHP 代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。当多名程序员在多个项目中合作时,就需要一个共同的编码规范,而本文中的风格规范源自于多个不同项目代码风格的共同特性,因此,本规范的价值在于我们都遵循这个编码风格,而不是在于它本身。关于「能愿动词」的使用为了避免...

2020-03-16 11:18:06 242

原创 phpstorm添加代码编写规范PHP_CodeSniffer自动检查代码

通过composer 安装PHP_CodeSniffer :squizlabs/PHP_CodeSniffer gihub地址 composer global require "squizlabs/php_codesniffer=*"配置phpStorm 找到phpcs.bat的路径之后valiedate 验证一下用上一个路径可以,下面一个会报错:insp...

2020-03-16 11:14:14 312

原创 Composer杂谈

Composer 的使用要使用 Composer,我们需要先在项目的目录下创建一个 composer.json 文件,文件描述了项目的依赖关系。文件格式如下:{ "require": { "monolog/monolog": "1.2.*" }}以上文件说明我们需要下载从 1.2 开始的任何版本的 monolog。接下来只要运...

2020-03-09 11:24:11 98

转载 致命的composer update

问题说明我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的:composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害。因为 composer update 的逻辑是按照 composer.json 指定的扩展包版本规则,把所有扩展包更新到最新版本,注意,是 所有扩展包,举个例子,你在项目一开始的时候使用了 monolo...

2020-02-25 11:47:10 76

转载 Laravel框架中phpunit和dusk自动化测试的使用

简介我们前面介绍的单元测试和功能测试都是基于 PHPUnit 的,PHPUnit 作为一个 PHP 测试框架功能很强大,但是只能用于测试后端接口和功能,无法模拟浏览器端行为测试基于 JavaScript 的前端应用。为此,Laravel 为浏览器测试提供了一个官方扩展包 —— Laravel Dusk,该特性是在 Laravel 5.4 引入的,之前版本使用的是 Symfony Browse...

2020-02-21 15:11:42 403

转载 PHP底层的运行机制与原理

PHP是一种适用于web开发的动态语言。具体点说,就是一个用C语言实现包含大量组件模块的软件框架。是一个强大的UI框架。简言之;PHP动态语言执行过程:拿到一段代码后,经过词法解析、语法解析等阶段后,源程序会被翻译成一个个指令(opcodes),然后ZEND虚拟机顺次执行这些指令完成操作。PHP本身是用C实现的,因此最终调用的也是C的函数,实际上,我们可以把PHP看做一个C开发的软件。一....

2020-01-13 19:02:11 190

转载 PHP底层原理

SAPI,即服务器应用编程接口,实质上就是定义了一个统一的接口,它的核心就是一个结构体sapi_module_struct。SAPI提供给了外部应用跟php通信的管道,这个外部应用包括不限于Apache,httpd,liunx终端等,sapi通俗的讲就是php-cgi,php-cli,mod_php等,php就是php内核。参考链接:SAPI:https://blog.csdn.net/g...

2020-01-13 18:23:35 149

转载 php-fpm优化方法详解

php-fpm优化方法php-fpm存在两种方式,一种是直接开启指定数量的php-fpm进程,不再增加或者减少;另一种则是开始时开启一定数量的php-fpm进程,当请求量变大时,动态的增加php-fpm进程数到上限,当空闲时自动释放空闲的进程数到一个下限。这两种不同的执行方式,可以根据服务器的实际需求来进行调整。要用到的一些参数,分别是pm、pm.max_children、pm.sta...

2020-01-13 18:20:47 149

转载 Nginx和php-fpm是怎么通信的

FastCGI原理 FastCGI是一个运用于HttpServer和动态脚本语言间通信的接口,多数流行的Http Server都支持FastCGI,包括Apache、Nginx和lighttpd等。同时,FastCGI也被许多脚本语言支持,其中就有PHP。 FastCGI接口方式采用C/S结构,可以将HttP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析...

2020-01-13 18:15:33 187

转载 Nginx解析PHP的原理 | CGI、FastCGI及php-fpm的关系

Nginx解析PHP的原理,CGI/FastCGI以及PHP-Fpm的关系.一、PHP+Nginx应运而生的场景.随着互联网的发展,用户对此接受面广,数据流的增大使得Web端的运行承载压力日益增大,野蛮生长在大数据时代里的WEB语言PHP也找到了比老搭档更优越的活力搭档Nginx,说到Nginx咱就一起唠一唠这其中的奥妙.从以下几个维度来剖析一下Nginx的活力所在,当然是和解析PHP的...

2020-01-13 18:14:35 98

转载 软件架构入门

一、分层架构分层架构(layered architecture)是最常见的软件架构,也是事实上的标准架构。如果你不知道要用什么架构,那就用它。这种架构将软件分成若干个水平层,每一层都有清晰的角色和分工,不需要知道其他层的细节。层与层之间通过接口通信。虽然没有明确约定,软件一定要分成多少层,但是四层的结构最常见。表现层(presentation):用户界面,负责视觉和用户互动...

2020-01-13 14:37:19 124 1

原创 PHP爬虫遇到incapsula

最近爬取一个国外的网站,一开始就各种不顺。。。。。。“Request unsuccessful”,这个请求没有成功......;我注意到返回的这个HTML的头文件中有一个<meta>属性中出现了robots的字样以前没有见过这个属性,因此觉得问题的突破口可能就是这个,上网百度之后发现,NAME=ROBOTS和content=“noidex,nofollow”这两个a...

2020-01-13 10:23:01 1738

原创 绕过CDN找到真实IP

cdn隐藏真实ip,很多时候我们在滲透时需要找到其真实IP,现在很多云waf是基于CDN建立的,如果我们能找到目标的真实IP那么云waf就没有用,这也是绕过waf的一种方法。一、判断是否有CDN1.一般的方法是用很多地址去ping一个站,如果响应多个IP那么肯定用了CDN多地ping的网站有:http://ping.chinaz.com/http://ping.aizhan.c...

2020-01-13 10:12:48 396

转载 我的nmap

一、nmap是什么nmap是一款网络扫描和主机检测的非常有用的工具,不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统。Nmap是一款非常强大的实用工具,可用于:作用:- 检测活在网络上的主机(主机发现)- 检测主机上开放的端口(端口发现或枚举)- 检测到相应的端口(服务发现)的软件和版本- 检测操作系统,...

2020-01-13 10:02:29 312

原创 正则表达式

一:校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$正数、负数、和小数:^(\-|...

2019-12-19 14:15:21 71

原创 mysql5.7以上运行sql日期类型默认值'0000-00-00',报错

mysql从旧库中导入新库有部分日期类型默认值为 0000-00-00运行时报错,是因为新库版本为5.7,mysql 5.7版本以上默认不允许0000-00-00的时间,解决办法:在 MySQL 的配置文件 [mysqld] 区域添加sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_...

2019-12-13 10:57:36 198

原创 VC9、VC11、VC14、VC15是啥?

一:先看个关系对应vs发布版本与vc版本对应关系如下所示:Visual Studio 6 : vc6Visual Studio 2003 : vc7Visual Studio 2005 : vc8Visual Studio 2008 : vc9Visual Studio 2010 : vc10Visual Studio 2012 : vc11Visual Studi...

2019-12-07 15:23:17 18439 1

原创 laravel 出现unserialize(): Error at offset 0 of 40 bytes解决办法

You have to set a news Key Generate becausephp artisan key:generateAfter that test again to run the Laravel Applicationphp artisan serve原因是你本来的项目是并没有.env文件或者你是刚添加的.env文件,系统需要重新生成一个key。...

2019-12-06 16:19:29 1040

原创 使用empty()判断对象是否为空,不行

一:判断一个对象是否为空,首先想到的是empty(),但是结果不是自己想要的二:问题来了,打印调试,代码只进入了if,咿,什么情况?(自己百度)三:用了count(),问题解决四:还有一种方法使用__get()魔术方法. ...

2019-11-08 14:14:20 1018

原创 我的Linux系统是32位还是64位

一:用 getconf WORD_BIT产看是32在写脚本(如:lnmp)时,经常需要判断linux操作系统是64bit还是32bit,如果是64bit执行这个命令(ln -s/usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la),如果是32bit则执行另一个命令(ln-s /usr/local/lib/libmcrypt.l...

2019-10-18 14:32:08 69

原创 php的反爬虫

一:先上图,在我爬取别人网站的时候遇到了它--cloudflare二:看几个截图经过使用Chrome调试工具审查Network过程后我们可以发现,在未设置cookie:__cfduid=d9ac18a887df11ae935a86b66752742d91570587396;时,访问将无法进行。首次访问返回503其后通过访问chk_jschi后触发302跳转至main并成...

2019-10-14 10:27:52 1415

原创 我的php爬虫

一:通过culr抓取网站,产品列表url并且入库<?phpnamespace App\Console\Commands\Cacuqecig;use Illuminate\Console\Command;use App\Models\Cacuqecig\Cacuqecig;class Product extends Command { /** * The...

2019-08-29 10:53:49 137

原创 wampserver升级到PHP版本到7+

windows系统下,目前wampserver的最高版本为3.0.6,其中的PHP最高版本为7.0.10,博主想要安装laravel5.6最新版本,却看到需要PHP版本>=7.1.3,无奈之下,只能想办法升级wamp的PHP版本到7.1.30以上。其实很简单。1. 下载要安装的PHP版本https://www.php.net/downloads.php,这里要注意一下x64和x86...

2019-06-03 17:11:37 3815 1

原创 PHPMailer群发邮件

PHP使用 foreach 循环发送邮件时,会产生如下错误:$emails = [ '123@qq.com', '456@qq.com', '789@qq.com',];// $Email 为邮件发送类foreach ($emails as $email) { $Email->send($email, 'subject', 'test');}...

2019-05-15 10:47:32 1114

原创 快捷导出 excel 表

//导出excel格式表public function exportData($filename, $title, $data){ header("Content-type: application/vnd.ms-excel"); header("Content-disposition: attachment; filename=" . $filename . ".xls"...

2019-05-08 11:28:46 184

原创 phpexcel导出excel

一:引入phpoffice/phpexceluse PHPExcel;use PHPExcel_Reader_Excel5;二:代码protected function excel($filename, $data, $cost_total, $subtotal_total, $subtoals_total){ $objPHPExcel = new PHPExcel()...

2019-05-08 11:24:32 100

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除