
PHP
zpfnevergiveup
纸上得来终觉浅 绝知此事要躬行,永远不要停止成长
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用yii 自定义错误显示遇到的问题
使用yii 自定义错误显示返回前端json信息想要实现的需求:描述出现的问题:分析过程总结想要实现的需求:我们使用Yii2.0框架做一个前后端分离的项目,其中使用了中间件(借鉴了Laravel的思想是使用了Yii2.0中的behaviors进行实现,具体实现还没有来得及看,后面看过可以给大家分享一下)判断用户携带了的token是否正确,我们项目中使用了JWT来进行用户判断,当jwt认证失败或...原创 2019-04-03 15:58:53 · 1244 阅读 · 0 评论 -
前后端联调接入第三方接口之302游戏大作战的故事
业务背景: 接入第三方接口,获取用户名,实现用户登陆接口采用Java编写,我们的平台前端业务使用React.js 后端采用PHP实现数据接口业务流程: 前端向后端发请求,后端调用第三方接口,第三方接口实现跳转并跳转到登陆页面,登陆页面里面有一个回调地址,也就是登陆成功以后返回到调用该接口的地址。目标是返回到前端首页,并显示用户名。302游戏大作战 关卡1 :由于r原创 2017-11-07 15:59:30 · 1872 阅读 · 0 评论 -
由数组未初始化引起PHP脚本出现内存不足 PHP Fatal error: Allowed memory size of
项目中遇到需要统计周粒度数据,随着时间越来越长,请求的数据会越来越多,超过nginx fastcgi_read_timeout 10的限制,所以出现504 Gateway Time out,我把数据放到一个中间数据表中,当前端需要请求数据的时候从 中间数据表中获取数据,但是,发现Http状态码变成了500,看了一下日志报错出现PHP Fatal error: Allowed memo原创 2017-10-12 12:22:36 · 438 阅读 · 0 评论 -
PHP程序员的技术成长规划
PHP程序员的技术成长规划作者:黑夜路人(2014/10/15) 按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标。 本文按照目前主流技术做了一个基本的梳理,整个是假设PHP程序员不转载 2017-09-27 09:39:50 · 396 阅读 · 0 评论 -
ab压测工具学习与使用
在学习ab工具之前,我们需了解几个关于压力测试的概念吞吐率(Requests per second)概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。计算公式:总请求数 / 处理完成这些请求数所花费的时间,即Request per second = Compl转载 2017-09-25 15:37:43 · 486 阅读 · 0 评论 -
PHP生成csv文件
PHP生成csv文件原创 2017-09-06 21:10:27 · 670 阅读 · 0 评论 -
PHP获取两个时间之间的年和月份及间隔天数 PHP两个日期之间的所有日期
[php] view plain copy $time1 = strtotime('2014-02-04'); // 自动为00:00:00 时分秒 两个时间之间的年和月份 $time2 = strtotime('2015-02-06'); $monarr = array(); $monarr[] = '2014-02'; // 当前月;转载 2017-09-05 20:14:06 · 463 阅读 · 0 评论 -
PHP实现二分查找(Easy said than done)
二分查找思想大家都知道,但是今天我再纸上面写二分查找的时候,发现写不出来,大致逻辑可以写出来,但是上机运行就通不过了,说明还是没有真正理解二分查找,同时说明自己的基础太差了!多多练习手写代码吧,锻炼自己的思维能力<?php //while循环实现二分查找 function binarySearch($arr, $find) { $low = 0; $high = count原创 2017-08-25 17:52:40 · 558 阅读 · 0 评论 -
判断PHP的exec函数是否执行成功
判断PHP的exec函数是否执行成功做一个代码发布的系统,需要用到PHP的exec函数来执行Linux下的命令和git,svn命令,如何判断PHP的exec函数是否执行成功呢?写个PHP文件来做实验:exec函数第一个参数是执行的命令,第二个参数是执行的结果,第三个参数是执行的状态。转载 2017-07-23 20:47:17 · 4075 阅读 · 0 评论 -
Redis安装php扩展
1.首先下载源码包进入redis官网https://redis.io/ 点击Cilents进入页面,页面里面有很多语言的扩展,点击PHP进入php的扩展下面,扩展里面有一个phpredis的扩展点击进去github下载页面2、第一步也就是进去地址:https://github.com/phpredis/phpredis ,点击clone or download下面有一个Download原创 2017-04-19 08:57:04 · 466 阅读 · 0 评论 -
PHP使用数字作为SESSION的Key一刷新页面,Session就消失了
首先我想要实现的效果是通过SESSION变量限制并统计文章的浏览量,具体想法:每个文章都有一个ID号,进入文章页面通过SESSION,为该变量建立对应的SESSION值,例:ID为9号的文章,$_SESSION['9']=9;然后通过判断是否存在对应ID为9的$_SESSION,如果不存在对应的文章浏览量加1,存在的话文章浏览量不变,具体实现如下使用thinkphp实现: $ses原创 2016-12-12 18:01:46 · 3243 阅读 · 0 评论 -
获取字符串中最长的连续数字字符串或最长的非数字字符串
主要思路: 分析的时候可以用来两个指针来进行分析解决,首指针指向头部,如果当前位置为数字的话,第二个指针从当前位置下一个位置开始寻找,如果是数字记录下来,如果不是数字,把该位置的下标+1也就是下一个位置作为下一次寻找的起始位置,继续需找,如果长度大于当前最长长度,进行替换,否则继续寻找获取字符串中最长的数字字符串<?php $str = 'abcd12345ed125ss123原创 2017-10-16 16:10:48 · 1112 阅读 · 0 评论 -
php接受post/get变量进行校验和判断
相信一开始大家都做过留言板类似的功能,主要就是接受变量,然后对变量进行处理,然后写入到数据库当中!但是如果是真是的线上的类似留言板的功能,我们需要对用户输入的参数进行过滤和校验,这个过程中,一开始的我们都会使用if进行判断,当然中间还需要考虑sql注入、xss攻击这些,sql注入的话我们可以使用pdo进行参数绑定然后进行过滤处理,xss攻击的话最简单的我们选择php htmlspecialchar原创 2018-01-14 11:44:23 · 3865 阅读 · 0 评论 -
php继承父类,子类和父类中都有同名方法,实例化子类,在父类中调用这个方法,调用的是子类的
php继承父类,子类和父类中都有同名方法,实例化子类,在父类中使用$this->function() 调用子类和父类中都有的方法的时候,这个时候真正调用的是子类中的方法,我们容易看到$this 然后以为是调用父类中的方法,这点是我们看代码的时候容易出错的地方,特别是代码多的时候,特别容易出错。需要我们看代码的时候仔细一点。实例如下:<?php class a { public fun原创 2018-01-05 09:22:17 · 5677 阅读 · 1 评论 -
从框架看PHP的五种境界及各自的薪资待遇
在撰写此文前首先必须申明的是本人不鄙视任何一种框架,也无意于挑起PHP框架间的战争,更没有贬低某个框架使用者的用意,本文纯粹个人的看法。你可以认为我无知也好,或者装逼也好,请不要试着在任何情况下,随便发起言语的攻击,这只是我个人的一些经验而已,你可以选择赞成或不赞成,也可以选择看与不看。还有本人基本对这些框架中的大部分都用的时间比较长,绝对不是随便出个Hello World!就在这里评论,曾任...转载 2019-03-27 10:57:09 · 774 阅读 · 0 评论 -
Yii user组件使用与初看
想要实现的需求(从哪里来?)目的:Yii使用Yii::$app->user->id获取用户的user_id,它是从session中或者cookie中获取的,因为我们现在使用的是JWT的验证方式,也就是我们获取用户的user_id和相关信息是从客户端传过来的JWT的token中获取的,所以我们就需要修改Yii2.0User组件中的代码来实现我们的需求。分析那么Yii使用us...原创 2019-04-04 18:02:23 · 1337 阅读 · 0 评论 -
php对二维数组中按照某个键进行排序
/** *@desc 给定二维数组按照指定的键进行排序 *@param array *@return array **/ function array_sort($arr, $keys, $stype='asc'){ $keysvalue = $new_array = array(); foreach(...原创 2018-07-25 17:19:23 · 730 阅读 · 0 评论 -
缓存设计与更新
业务场景: 我们需要有有一个留言板,可以进行发帖,用户登录以后可以对帖子进行回复。用户可以对帖子和留言进行点赞。由于我们有并发量,如果直接对数据库,有可能出现问题,所以我们需要对数据列表进行缓存处理。处理方案: 将数据存储到NoSql中,当进行数据读取的时候直接从NoSql中读取数据,我们可以选择的Nosql有Memcache和Redis,两者之间的区别和使用,我...原创 2018-07-12 22:38:02 · 426 阅读 · 0 评论 -
do while 相关
do { break; }while(false) 相等于goto 大家可以网上查一下$count =0;do { //进行相关操作} while ($this->result() !=0 $count<3) 可以进行重试机制,当函数result的结果不为0,进行do while循环中的内容,也就是当函数结果没有执行成功的时候可以进行循环代码中的代码,也即重试机...原创 2018-07-05 19:47:11 · 270 阅读 · 0 评论 -
array_multisort(): Argument #2 is expected to be an array or a sort flag
今天使用array_multisort() 的时候出现 array_multisort(): Argument #2 is expected to be an array or a sort flag是因为参数中的第二个参数是常量SORT_DESC,SORT_ASC, 代码中写成了'SORT_DESC' 然后就出现了上面的错误。使用方法的时候还是要仔细看手册...原创 2018-07-11 16:34:06 · 7570 阅读 · 0 评论 -
Laravel 使用passport 验证api的时候出现Route login not defined
在使用Laravel写api的时候,因为是前后端分离所以我们需要使用Laravel的API Authentication 所以我们需要首先使用composer 安装 passport 然后才能使用,我安装Laravel官方文档上面配置完成后使用浏览器范文路由一直出现Route login not defined,查了很久没有发现为什么不行,后来问同事,原来它的Accept需要设置成为applica...原创 2018-05-15 21:46:22 · 5332 阅读 · 1 评论 -
当下我的小迷茫
临近毕业的我发现还有很多东西不会,很多东西仅仅是知道会用,但是没有搞清楚它为什么是这样?(有点难受) 接下来慢慢应该搞懂的东西: 路由: 浏览器发送一个请求,php是如何接受这个请求,然后进行路由? 请求: 路由是如何分发的?分发完成后如何发送到每个Controller里面的呢? 数据库处理: 使用pdo操作数据库,这个过程中mysql 是如...原创 2018-05-19 14:27:39 · 295 阅读 · 0 评论 -
PHP7源码安装
1、下载php源码 wget http://am1.php.net/get/php-7.2.4.tar.gz/from/this/mirror 重命名: mv mirror php-7.2.4.tar.gz 使用 tar zxvf php-7.2.4.tar.gz 解压 如果解压重命名后发现 使用tar命令出错如下: Child returned status 1 ...原创 2018-04-18 16:31:55 · 1610 阅读 · 0 评论 -
开发中遇到的小细节问题(url路由中的&和?号 与 == 判断变量是否相等)
1、今天从浏览器使用url请求的时候使用如下请求地址: http://192.168.33.10:18086/x/sign/list&sid=95e781c23e472fd6df4a4f5be2abc168大家看出有什么问题了吗?我其实第一眼看过去也没有什么问题,但是页面上面上面一直报404,如下报错:{code: -404,message: "Not Found",data: [ ]}n...原创 2018-04-03 19:36:08 · 440 阅读 · 0 评论 -
PHP实现无限级分类分析
最近在写一个博客,由于博主栏目比较多,所以二级栏目已经满足不了,所以需要实现三级菜单,下面我们就一点点的来分析。这是我最后实现的效果图:由于需要实现无限级分类,所以我们需要知道它的子栏目有什么?最后实现的数组是这样的形式:Array( [0] => Array ( [category_id] => 1原创 2016-12-01 19:31:37 · 4083 阅读 · 0 评论 -
使用strpos函数时,在本地测试没有问题,但是上传到服务器没有反应(变量类型)
今天我使用strpos函数时,在本地wamp测试完全没有问题,但是上传到服务器上没有反应。但是在微信开发的时候,没有办法使用var_dump查看变量类型,在类里面定义的数据成员,测试了好久都没有发现问题,最后在服务器上测试,把变量换成字符串,然后就可以了。然后我就使用(string)把变量 $this->变量名强制转化为(string)类型,通过这个小问题,我明白了使用PHP函数的时候也需要注意变原创 2016-09-06 21:44:22 · 789 阅读 · 0 评论 -
去掉使用百度编辑器生成的p标签及生成的实体符号
帮同学写的一个博客用的thinkphp,写完以后,使用百度编辑器,存入数据库中的符号都转换为实体了,而且数据都带有标签,这样是很安全的,但是输出以后,很不美观,百度了很久,上面都说要改百度编辑器的配置文件,试了好久,都没有成功,后来我试着把数据库中的实体转化为字符,然后就OK了, 具体实现如下、使用html_entity_decode函数原创 2016-08-18 19:10:45 · 5034 阅读 · 2 评论 -
微信多客服开发
微信多客服开发,微信开发原创 2015-11-29 14:20:23 · 1523 阅读 · 0 评论 -
微信多客服开发
众所周知,微信公众平台做的最好的是招行,所以它才会被放在公众开发文档中作为案例。招行的公众号咨询主要采用“关键词库自动回答”+“人工客服”。而据说人工客服只有1名,不知道是真是假,但至少强大的关键词库对于服务类公众号今后的发展是必不可少的。 传送门:数据库实现关键词回复 好,今天我们也要赶上招行的步伐! 一、 首先,假如用户咨询问题,但自动回复的回答没有解决客户问题,他要求“人工服转载 2015-11-29 14:09:11 · 1669 阅读 · 2 评论 -
PHP的魔术方法
1.__get(){ } get方法,拦截对象调用权限不足的变量时,可以进行提醒操作2.__set(){}set方法,当给无权赋值的对象进行赋值的时候,会调用set()方法,需要传进去两个参数,属性和属性值3.__isset(){}判断对象的不可见属性是否存在,但是不一定是真的,(return 1)4.__unset(){} 销毁对象不可见的属性时,会调用__unse原创 2015-10-12 13:52:36 · 368 阅读 · 0 评论 -
小小<p>标签引发引入百度编辑器出错的"血案"
引入百度编辑器一直出错 ,如果把scrpt 换成 可以引入 但是内容没有在编辑器内部,准备用input 的隐藏域 然后用js 显示出来 但是JS 找了很久,不会,终于原来是一个标签惹的祸 内容 内容原创 2015-06-14 12:31:26 · 1056 阅读 · 0 评论 -
从服务器获时间只显示年月日
echo date('Y-m-d',strtotime($row['news_time'])原创 2015-06-13 08:50:09 · 453 阅读 · 0 评论 -
百度引入编辑器
如果是 360浏览器不能引入百度编辑器如果改成 的话 360浏览器就可以引入百度编辑器了原创 2015-06-10 13:46:29 · 385 阅读 · 0 评论 -
探讨PHP页面跳转几种实现技巧
PHP被许多程序员用来开发WEB的首选语言。在实际开发中,网站的各项功能都可以通过PHP语言的编写来满足,比如PHP页面跳转这一方法。 Web系统中,从一个网页跳转到另一个网页,是LAMP项目中最常用的技术之一。页面跳转可能是由于用户单击链接、按钮等引发的,也可能是系统自动产生的。 此处介绍PHP中常用的实现页面自动跳转的方法。 PHP页转载 2015-06-06 11:58:30 · 398 阅读 · 0 评论 -
PHP 变量类型中的一些问题
1:整形:echo 027==??23?为什么因为027是八进制数2: 0.3-0.2==0.1吗?不等于 为什么?因为:浮点数的精度有限。尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致的最大相对误差为 1.11e-16。非基本数学运算可能会给出更大误差,并且要考虑到进行复合运算时的误差传递。此外,以十进制能够精确表示的有理数如 0.原创 2015-06-04 18:26:03 · 384 阅读 · 0 评论 -
php关于变量(二)
1:php中的动态变量 $age=1;$1=xingming;$xingming=2;$$age=$ $age=xingming;$$$age=$ $ $age=2;2:变量的检测 isset() isnull() isint()gettype($c) gettype 直接获取一个变量类型3:销毁变量 unset()为什么销毁变量,因为内原创 2015-06-04 20:03:14 · 376 阅读 · 0 评论 -
php中的传值赋值,引用赋值
1:$a=3;$b=5;$b=$a这一步发生了什么,把$a的值拿出来,放到$b的空间里就是把$a的值传递给$b,叫做传值赋值echo $b; //32:引用赋值$a=3;$b=5;$a=&$b;echo $a,'~'$b; //5 5为什么是 5 5 发生了什么 过程是 把$a的指向指向了$b的地址空间,即$a,$b指向同一个地址,两把钥匙,指原创 2015-06-05 09:57:24 · 3167 阅读 · 0 评论 -
一个空格引起的调试 warning: rename
warning: rename(D:/wamp/www/shop/0103/frame0.2/data/log/ curr.log,D:/wamp/www/shop/0103/frame0.2/data/log/16010319908.bak): in D:\wamp\www\shop\0103\frame0.2\include\log.class.php on line 44原创 2016-01-03 11:35:57 · 1230 阅读 · 0 评论 -
thinkphp url重写规则及wamp配置
一开始从一个用thinkphp写的上线网站拷到本地wamp下,但是打开从本地Localhost上进入,发现找不到网站目录,经过百度,发现是wamp的Apache的配置问题,以下为转载内容,希望对你有所帮助thinkphp url重写规则及wamp配置thinkphp的案例中有一个.htaccess文件,里面配置了URL的一些重写规则,如: RewriteEngine转载 2016-02-23 11:30:01 · 662 阅读 · 0 评论 -
使用thinkphp时因为一个’/‘造成页面一直跳转
form表单如下,">id">用户名性别:男 女模型如下: public function modify(){ $m=M('User'); $data['id']=$_POST['id']; $data['username']=$_POST['username']; $data['sex']=$_POST['sex']; $count=$m->原创 2016-03-13 20:17:29 · 1454 阅读 · 0 评论