
php
文章平均质量分 54
或非与
这个作者很懒,什么都没留下…
展开
-
工厂模式和单例模式
设计模式中的工厂模式和单例模式原创 2023-03-09 11:57:28 · 235 阅读 · 0 评论 -
php读取word文档,没找到合适的php读取word的包,然后找了个读取pdf文档,wps先把word转成pdf,然后php读取pdf里面的内容,过滤内容
php读取word文档,没找到合适的php读取word的包,然后找了个读取pdf文档,wps先把word转成pdf,然后php读取pdf里面的内容,过滤内容原创 2022-09-19 13:47:30 · 438 阅读 · 0 评论 -
冒泡排序原理,php冒泡排序,golang冒泡排序
要写出冒泡排序,首先要知道冒泡排序的原理,参考这边文章:http://c.biancheng.net/view/6506.html根据需要排序的数组,遍历这个数组的长度的同时比较前后两个数的值大小,交换这两个值的位置假设待排序序列为 (5,1,4,2,8),如果采用冒泡排序对其进行升序(由小到大)排序,则整个排序过程如下所示:1) 第一轮排序,此时整个序列中的元素都位于待排序序列,依次扫描每对相邻的元素,并对顺序不正确的元素对交换位置,整个过程如下图所示。从图 1 可以看到,经过第一轮冒泡排原创 2021-02-24 18:01:50 · 224 阅读 · 0 评论 -
php 二分发查找,golang二分法查找
要实现二分法查找数据,首先要明白什么是二分法1.首先这个数据必须是有序的,如果这个数组不是有序的,不用排了,根本不符合算法的要求2.二分法关键地方是中间数的查找,中间数的坐标 = (最左侧数的坐标+最右侧数的坐标) / 2然后取整,中间数在每次查找都会变化请看详细解析,认真看完就明白了什么是二分法查找了现在有数组:10,14,21,38,45,47,53,81,87,99,查找47这个数第一次查找:数组最左侧的坐标是0,最右侧的坐标是数组的(长度-1)=9 ,因为数组是从0开始的.原创 2021-02-24 13:39:00 · 230 阅读 · 0 评论 -
PHP版Stack Overflow 热度排序算法
背景最近在做评论排序的需求,之前都是按照评论的点赞数来倒排。但是用的很多其它的app并不是这么简单的排序方式,所以本次决定好好研究一下,就有了这几篇文章的转载。本文转载于阮一峰的网络日志http://www.ruanyifeng.com/blog/2012/02/ranking_algorithm_hacker_news.html正文上一篇文章,我介绍了Reddit的排名算法。它的特点是,用户可以投赞成票,也可以投反对票。也就是说,除了时间因素以外,只要考虑两个变量就够了。但是,还.转载 2021-02-22 18:09:18 · 543 阅读 · 0 评论 -
php 删除elasticsearch不存在的数据出错
php操作elasticsearch文档:https://www.elastic.co/guide/cn/elasticsearch/php/current/_getting_documents.html需要注意的地方:1、删除elasticsearch不存在的id的时候会抛出异常直接终端程序的运行2、根据id查找不到数据的时候官方的包都会抛出异常直接终端程序的运行Fatal error: Uncaught Elasticsearch\Common\Exceptions\Missi.原创 2020-11-20 15:21:49 · 602 阅读 · 0 评论 -
php session存放redis,session共享
其实关于php session存放redis和session共享,网上已经有非常多的例子,最近我们的项目刚好也要配置,那就记录一下流水账吧,别人的终究不是自己的,只有你真正实践过,才能算会吧,而且我写博客也是本着写笔记一样。不,我写博客就是在写笔记。关于跨域问题,我有写过一篇文章的,简单的举个例子:www.buruyouni.com和api.buruyouni.com,都是buruyouni.com的域名,但是他们是跨域的,ajax请求需要允许跨域,session和cookie默认情况下也是分开存放的。原创 2020-08-26 14:48:57 · 1296 阅读 · 0 评论 -
nginx根据域名解析多个php版本
背景:有些比较老的项目由于历史原因无法在只能在php5.6以下的环境上运行,新的项目需要在php7以上的版本运行,然后那就根据域名转发给不同的php版本。解决方法,让nginx根据域名解析多个php版本:安装两个不同的php版本,在nginx转发的时候指定fastcgi_pass我这个高版本的php监听在9999端口我的配置文件是:/usr/local/php/etc/php-fpm.d/www.conf 更改:listen = 127.0.0.1:9999location .原创 2020-08-04 15:18:29 · 766 阅读 · 0 评论 -
PHP执行git命令更新代码
背景:开发中我们想推送代码到git仓库的时候,在测试环境立马就能看到是什么样的,我们可以通过git仓库的webhook钩子配置的,在推送代码到git仓库的时候,仓库收到代码,然后可以访问一个url,然后你在这个url写段代码执行更新代码的命令。php 代码<?phpexec("cd /usr/local/nginx/html/yafcms && sudo g...原创 2020-01-02 10:32:58 · 2295 阅读 · 2 评论 -
php操作oracle类
温馨建议:oracle数据库的表名称和字段名称用大写,不然你要注意下面这些问题,小写的表名称一定要用双引号括起来,字段名称要用双引号括起来,字段的值用单引号括起来。php pdo 操作oracle类点击:php pdo oracle 类php插入数据到oracle,跟php插入数据到mysql有点不一样哦!php在insert数据到oracle必须严格遵守规则:表名,字段名必...原创 2019-12-05 09:59:57 · 1359 阅读 · 1 评论 -
完美解决windows下php本地curl超时问题解决
背景:windows下开发,api所在的项目跟后台的项目网址不一致,并且api需要请求,如果两个项目nginx处理php请求的端口在9000的话,那么则会出现请求超时,出现以上原因是因为windows下nginx+php的环境,不支持并发请求的原因。当同时访问多个域名,并且同时指向你本地服务的时候,就不支持并发了。(linux,mac没有这个问题)举个栗子:我本地有两个域名,local...原创 2019-01-07 20:16:10 · 4539 阅读 · 0 评论 -
git log怎么搜索关键字,git log怎么查找关键字,git log搜索提交注释
背景:开发中记得之前某个功能做过了,但是因为某些原因这个已经开发好了的功能屏蔽了,现在又要使用它,然而什么时候做的都忘记了,只记得做过这个功能,或者当时提交git log的关键字,那么就有了,这篇文章git log怎么搜索关键字了## 本文关于git log查找关键字就两个命令:git log --grep 隐藏 #检测关键字git log --grep...原创 2018-12-10 11:52:45 · 21265 阅读 · 0 评论 -
php返回json对象给前端
开发中经常碰到php返回json数据给前端的情况,直接echo json_encode('xxxx'); 这样子返回的话,默认:Content-Type:text/html; charset=UTF-8 是这样的,那么我们只需要改变header头为json的类型,那么就可以实现php返回的数据直接是json类型了。/** * ajax数据返回json数据成功 */functio...原创 2019-01-29 10:39:32 · 29407 阅读 · 4 评论 -
yaf cli模式执行控制器方法操作,yaf cli模式执行控制器方法可传递参数
网上看了很多例子关于yaf怎么在cli模式下执行模块、控制器、方法+参数的例子,也跟着搬了很多例子,大多的都不行。所以为了用yaf,或者想用yaf到实际项目的猿们,我决定把自己在yaf里面踩过的坑都跟大家分享出来,我用的yaf版本是3.0.7 思路: 默认情况下yaf在cli模式下是会跑到index模块,index方法,index控制器的(即application\contr...原创 2019-03-12 12:06:57 · 2241 阅读 · 0 评论 -
php7.3安装yaf扩展
目前pecl官网的yaf版本是3.0.7,php7.3版本无法安装哦,需要到鸟哥的github上面去编译安装3.0.8版本https://github.com/laruence/yaf/releases 直接pecl install yaf是3.0.7版本的,7.3版本的php是无法安装的哦,会报错误:/soft/yaf-3.0.7/yaf_session.c:97...原创 2019-03-12 17:08:56 · 3323 阅读 · 0 评论 -
php multi curl类
php multi curl 类,有需要用到的自己ctrl+c ctrl+v,以后要发几万条短信搞活动推送消息,发送邮件什么鬼的可以用php multi curl,不用一个一个的去curl,可以省不少时间。注意:php multi curl每次的数量不宜太大,实际返回的时间是按照最长的那条请求的时间计算的。<?phpclass Curl{ /** * http...原创 2019-03-18 17:54:38 · 1221 阅读 · 0 评论 -
syntax error, unexpected 'new' (T_NEW) in /usr/share/pear/PEAR/Frontend.php on line 91
pecl install swoole 报错unexpected 'new' (T_NEW) in /usr/share/pear/PEAR/ 这里报的错是pecl的原因造成的提示:syntax error, unexpected 'new' (T_NEW) in /usr/share/pear/PEAR/Frontend.php on line 91解决方法:1. php7 版...原创 2019-04-19 16:52:13 · 6626 阅读 · 0 评论 -
nginx传递变量给php
背景:开发中测试环境和线上环境配置文件不一样,可以通过nginx传递变量给php来区分是开发环境还是线上环境,只需要在nginx的server段增加如下内容就可以让php读取到nginx传递过来的变量了。location ~ .php(.*)$ { fastcgi_param DEVELOP 'develop'; root /mnt/h...原创 2019-04-24 18:58:51 · 1657 阅读 · 0 评论 -
修改AdminLTE左侧菜单展开延迟
AdminLTE左侧菜单展开会有半秒钟的延迟. 看起来会慢半拍. 可修改 admin/dist/js/app.min.js中的 animationSpeed值(默认为500)即把animationSpeed:500修改成: animationSpeed:50注意:不一定是admin/dist/js/app.min.js这个文件,如果你引入的是压缩后的版本,请找到你项目对应的!!! 笔主用的...转载 2019-05-15 16:12:50 · 1154 阅读 · 0 评论 -
亿级数据迁移实战方案,真实案例
背景: 公司某业务模块的用户通讯记录和通话记录的表,单表记录过亿了,mysql很坚挺好不好!!!! 其中某表是205773235 约2.0亿 另外某表是575213155 约5.7亿 用户数量 约100W 其中通讯录有的用户是有很多重复记录的,之前设计数据库的同事按条来存的,也就是说一个用户会有多条记录,还有重复的记录(没有去重),历史遗留问题那就不废话了,我们存在的意义就是把不合原创 2017-09-18 18:02:30 · 4626 阅读 · 0 评论 -
php导出word函数,php怎么导出word格式数据
php导出word函数,php怎么导出word格式数据,php生成word数据浏览器下载,php怎么保存word格式数据到硬盘,下面函数帮你把这些问题都解决掉!!!背景:运营同事需求,把后台的某些数据按照格式导出成word文档,按照博猪的码代码习惯是不喜欢用一个好牛逼的类来实现的,导出个excel,word之类的没必要去github找个功能十分齐全(性能会差点)的类来实现,废话不多说,直接上代码...原创 2018-11-26 09:56:36 · 1073 阅读 · 0 评论 -
laravel输出xml数据,php输出xml格式数据
背景:seo的同事要批量提交xml格式的数据到搜索引擎,目前项目用laravel框架开发的,所以就有了这篇文章的诞生了。网上有不少关于php输出xml格式的例子,小弟不才也搬过,只是在php文件上面测试是没问题的,把它搬到laravel框架里面,就有有坑了,主要原因是header头的问题。laravel框架怎么返回xml格式数据?如果用header(“Content-type: text/xm...原创 2018-10-25 14:30:11 · 4117 阅读 · 0 评论 -
php导出excel报表类
支持cli模式和http模式导表原创 2017-10-09 14:15:26 · 402 阅读 · 0 评论 -
关于多数据方法程序优化思路
例如有10W条多字段数据,一次性向数据库取回对数据库造成较大压力,如果一次取100条,取1000次,这样的效果会比一次取好很多具体实现操作步骤:1.先查出符合代扣条件的所有订单总数$total = select count(*) from xx where $where;$perPage = 100; //每次取出数目$pageSize = ceil($total/$perPag原创 2017-12-04 11:33:47 · 278 阅读 · 0 评论 -
CDN/智能DNS原理和应用
CDN ( Content Delivery Network 内容分发网络) 跟据用户访问的网络地址就近查找需要的资源,提高用户的访问网站的响应速度, CDN=更智能的镜像+缓存+流量导流 DNS (Domain Name System 域名系统) 域名和IP地址互相映射的分布式数据库,好处是用户不用直接记住IP CDN加速原理: 1.内容缓存,squid作为web服务,把源站的数据抓取原创 2017-11-28 21:03:37 · 2340 阅读 · 0 评论 -
关于SSH,FTP突然间登录问题排查全程
某日下午,公司的一台内部员工用的服务器,突然间ssh和ftp都无法登陆了,只能通过阿里云的终端登陆上去. 查看sshd的状态 /etc/init.d/sshd status 发现是关闭状态的 那就重启吧 /etc/init.d/sshd start然后出现以下 修改权限711: chmod -R 711 /var/empty/sshd 启动ssh : /etc/init.d/ss原创 2017-09-11 12:01:53 · 1077 阅读 · 0 评论 -
php操作redis全家桶
2016-12-15笔记$redis = new Redis(); $redis->connect('127.0.0.1', 6379);//serverip port$redis->auth('mypassword');//my redis password $redis ->set( "test" , "Hello World"); echo $redis ->get( "test原创 2017-09-08 15:20:25 · 1395 阅读 · 0 评论 -
PHP多进程之很简单很粗暴,shell配合PHP在CLI模式解决程序阻塞等待
说一下最近工作上碰到的问题,场景是这样的: 我们传递参数去访问对方的接口,数据通过异步回调的方式发送回来给我们的,时间30秒到90秒不定,在收到对方发回来的数据,我们要入库,然后从数据库里面获取相应的数据来作审核判断,也就是类似金融行业的风控自动审核吧,注册认证,然后等待金融机构根据你的信息来评定相关的贷款额度。 1.解决等待的问题我们目前是借助redis的list来解决的,举个栗子:原创 2017-08-21 20:10:19 · 3132 阅读 · 1 评论 -
二进制知识之位运算,
如果您不知道下面的运算结果的话认真理解这篇文章或许可以帮助到你echo '~-5=',~-5;echo '2&3=',2&3;echo '2|3=',2|3;echo '-3^3=',-3^3;echo '-11>>2=',-11>>2;echo '-17<<3',-17<<3;//-1#或非与的位运算笔记二进制,电子计算机的内部都是用二进制补码的方式运算(最高位0表正数,1为负数)原创 2017-07-02 23:22:13 · 641 阅读 · 0 评论 -
php日期对比date_create(),date_diff()函数的使用
<?php$time = time();/**注意事项:时间的比较会带(+-)符号,当然如果$interval->format('%a')这样的话就不带符号了,但是比较不出哪个时间早哪个时间晚比较规则是:data_diff($day2,$day1);后面的数减去前面的数,如果后面的数比前面的大就为正数,否则为负数*/#date_create的比较适合这种场景,相差1秒钟就差了一天$da原创 2017-06-28 12:00:54 · 8497 阅读 · 0 评论 -
我swoole爬坑记,swoole安装和小demo(1)
Date : 2017-09-08 安装前准备: php -v 如果php版本小于5.6的,请卸载 rpm -qa | grep php 删除掉 rpm -e php-cli-5.4.16-42.4.al7.x86_64 –nodeps rpm -e php-devel-5.4.16-42.4.al7.x86_64 –nodeps rpm -e php-common-5.4.16原创 2017-09-08 15:02:31 · 1400 阅读 · 0 评论 -
go语言随便玩玩(linux环境)
环境:linux 64位系统 go版本:1.9.2当前最新版本 安装:cd /usr/lcoal/ wget https://studygolang.com/dl/golang/go1.9.2.linux-amd64.tar.gztar -zxvf go1.9.2.linux-amd64.tar.gz然后就有个go的文件夹躺在/usr/local下了cd /usr/local/go/原创 2017-12-22 13:55:58 · 795 阅读 · 0 评论 -
ckeditor5 图片上传,tp5整合ckeditor5编辑器使用
声明:所发文章楼主亲测并在实际项目中使用的,引入编辑器的时候碰到了不少坑,为了记录一下,让自己以后再次使用可以直接ctrl+c ctrl+v而写,如果这篇文章对你有用就最好了 背景:在编辑器使用的时候最开始是用的wangeditor,主要原因是这货非常轻量,体积超级小,但是由于公司的同事经常添加内容都是在word文档直接复制粘贴的,有很多垃圾样式wangeditor无法过滤,这个问题搞得我好烦,...原创 2018-06-20 10:48:55 · 10287 阅读 · 1 评论 -
nginx伪静态规则配置
网上很多关于伪静态的配置,我只想说”楼主的是亲测”根据楼主的教程来不行的拿刀来砍我!!!!!!背景,http://www.abc.com/index.php/front/index/parse?name=yangxignyi&age=18 这样的url很难看吧,处女座程序猿怎么会容忍这样的事情发生的呢? http://www.abc.com/parse-yangxignyi-18原创 2018-01-10 18:35:27 · 43023 阅读 · 3 评论 -
easy swoole集成inotify.so实现服务热更新
本文绝逼是楼主自测通过的,自测都不通过的,是不会发上来害人的首先确认已经安装好swoole,没有安装好的同学可以参考:swoole安装下载easy swoole 随便进入一个目录就行了,创建目录并下载: make easy && cd easy && curl https://www.easyswoole.com/installer.php | php 启动框架 :php s原创 2018-01-10 15:15:18 · 2369 阅读 · 0 评论 -
php设计模式
Lesson 1 多态<?php/** * Lesson 1 多态 */class Human{ public function speak(){ echo "human can speak!"; }}class American extends Human{ public function speak(){ echo "speak原创 2018-01-06 18:05:42 · 328 阅读 · 0 评论 -
那些常问到的问题啰
1.apache或nginx,和php-fpm 再到php解析的过程,请描述一下。 答:我把web的响应流程说一下吧 1.用户在浏览器上面输入一个网址:https://application.duoduofenqi.com/demo/login/首先浏览器会在本地浏览器找这个域名有没有缓存在浏览器本地的dns 2. 如果没有,就到本地的Host文件查找有没有一个ip和a原创 2017-12-25 18:58:53 · 463 阅读 · 0 评论 -
openssl_sign() 语法+RSA公私钥加密解密,非对称加密算法详解
其实有时候觉得写博客好烦,就个函数就开篇博客。很小的意见事情而已,知道的人看来多取一举,或者说没什么必要,浪费时间,不知道的人就会很郁闷。技术就是这样的,懂的人觉得真的很简单啊,不知道的人真的好难。。。一般在跟第三方接口对接数据的时候,为了保证很多都使用的RSA签名,没性趣了解的同学只需要知道原理的同学,主需要知道“RSA非对称加/解密算法中最流行最牛逼的然后知道怎么使用它就足够了” 重点原创 2018-01-12 18:16:35 · 21728 阅读 · 2 评论 -
MySql 的group by having 优化案例
Background: 1.pay_award_log为一张审核表,表有重复的记录,数据约51W条 2.award_time字段有btree索引,operator字段没有索引,根据operator和award_time查询频率是一样的 3.operator为后台审核人,uid是用户字段,用户在一天内可能有多条记录,求175587这个后台人员一天内审核的用户数,需要根据uid排除重复的记录sel原创 2017-12-08 09:45:17 · 5347 阅读 · 0 评论 -
实用的才是王道
首先我们猜想下下面的代码会输出什么?switch (0) { case 'a1': echo 1; case 'a2': echo 2; case 'a3': echo 3; break;}打眼一看;如果你认为什么都不会输出;那么原创 2017-01-06 11:01:19 · 294 阅读 · 0 评论