
php高级
不惧前行
平凡而简单的人一个,无权无势也无牵无挂。一路厮杀,只进不退,死而后已,岂不爽哉!
收起对“车”日行千里的羡慕;收起对“马”左右逢缘的感叹;
目标记在心里面,向前进。一次一步,一步一脚印,跬步千里。
这个角色用于劝勉现在的我。
展开
-
百度ueditor编辑器上传图片到图床
功能需求: 因为ueditor默认上传到本地, 如果图片单独部署到一台服务器上, 需要修改原有代码先看看百度官方怎么操作: http://fex.baidu.com/ueditor/#dev-crossdomain直接上代码:(提示:若看不懂本文章, 可积极留言, 本人看到后会第一时间回复)1: 搭建完ueditor环境, ueditor可以基本使用后, 复制一份ueditor/php原创 2018-01-13 11:45:35 · 1146 阅读 · 0 评论 -
[php扩展开发] -- 添加类
原文地址: http://www.djhull.com/categories.html1.需要实现的细节实现一个person类实现一个doing方法和saying方法2.第一个扩展2.1创建类的扩展:[root@bogon ext]# cd /usr/local/src/php-7.0.3/ext[root@bogon ext]# ./ext转载 2017-05-09 09:43:50 · 350 阅读 · 0 评论 -
[php扩展开发] -- 添加函数
目标:便携php扩展 要求实现 输出hello word首先用的是php7.0.3 centos7.1或者centos6.+1.1 RPM安装PHPrpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmyum install php70wphp -v 看一下 7.0.3php -m 看一下 ph转载 2017-05-09 09:40:16 · 845 阅读 · 0 评论 -
利用 PHPStorm + Xdebug 断点调试PHP
视频地址: http://blog.crarun.com/article-30.html 放大浏览器看转载 2017-04-26 15:42:30 · 373 阅读 · 0 评论 -
深入理解PHP Opcode缓存原理
什么是opcode缓存?当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。Opcode cache的目地是避免重复编译,减少CPU和内存开销。如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁盘I/O开销,那么opcode cache的性能提升是非常有限的。但是既然opcode cac转载 2017-05-26 15:34:11 · 349 阅读 · 0 评论 -
PHP框架开发一(首言)
原文地址:http://blog.youkuaiyun.com/tomyjohn/article/details/7791782现在大多数PHP框架都是统一入口设计的,类于TP这种。首先,重复造轮子并不是一件坏事,反而在一定程度上能让我们对一项技术,一种架构有一定的了解。个人并不反对重造轮子。不过在开发过程中,毕竟还是这些成熟的框架要来得快得多,而且BUG量少和安全性相对于我们的框架要好得转载 2017-04-22 15:42:14 · 390 阅读 · 0 评论 -
php开发一个守护进程
原文地址: http://blog.patpig.com/2014/04/06/developing-a-daemon-in-php/php除了编写WEB服务程序以外,也可以编写一些后台脚本程序来处理后台任务,利用crontab来定时调用执行。但是如果需要一些相对实时的任务处理,就不适合用crontab了。本文主要讲下使用php来开发守护进程。为什么使用php?个人认为主要是方便,丰富的工具库支持...转载 2017-05-12 15:14:05 · 428 阅读 · 0 评论 -
[DI] -- php写一个轻量级的容器
原文地址: https://my.oschina.net/cxz001/blog/227482摘要: 理解什么是Di/IoC,依赖注入/控制反转。两者说的是一个东西,是当下流行的一种设计模式。大致的意思就是,准备一个盒子(容器),事先将项目中可能用到的类扔进去,在项目中直接从容器中拿,也就是避免了直接在项目中到处new,造成大量耦合。取而代之的是在项目类里面增设 setDi()和g转载 2017-05-11 17:02:31 · 2985 阅读 · 0 评论 -
[composer] -- composer简单使用
简介现在软件规模越来越大,PHP项目的开发模式和许多年前已经有了很大变化。记得初学PHP那会儿,boblog是一个很好的例子,几乎可以代表PHP项目的开发模式。当时PHP 5.x以上的版本刚开始流行,仍然有大量的生产环境使用PHP4.x。由于历史遗留的问题,OOP思想在PHP项目中还不是那么广泛流行。随着PHP5.3的发布,PHP项目规模的扩大,在其他语言领域大展身手的OOP开发模式也在P转载 2017-04-21 16:45:39 · 354 阅读 · 0 评论 -
[反射类] -- PHP动态实例化对象并向构造函数传递参数
原文地址: https://blog.unlink.link/php/php_runtime_instance_class_and_pass_parameters.html/comment-page-1在框架开发,模块化开发等场合,我们可能有一种需求,那就是在PHP运行时动态实例化对象。什么是动态实例化对象呢?我们先来看一下PHP有一种变量函数(可变函数)的概念,例如如转载 2017-05-12 10:46:47 · 5422 阅读 · 0 评论 -
PHP高效率写法(详解原因)
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。 当然了,这个测试方法需要在十万级以上次执行,效果才明显。 其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占转载 2017-04-20 09:07:36 · 336 阅读 · 0 评论 -
[php扩展开发] -- 类构造函数传参
原文地址: http://www.djhull.com/categories.html1.需要实现的细节实现一个person类 ,实现一个doing方法和saying方法在构造方法中传递一个数组,在doing中打印此数组saying方法中,构建一个空数组,返回,不需要传参。2.class扩展2.1创建类的扩展:[root@bogon ext]转载 2017-05-09 09:46:19 · 758 阅读 · 0 评论 -
php数组式访问借口ArrayAccess
定义:ArrayAccess 是PHP标准库(SPL)提供的一个接口,这意味着我们可以直接调用,该接口使得对对象的访问像数组一样。接口的形式大概类似于如下:interface ArrayAccess{ //判断元素是否存在 function offsetExists($offset); //获取元素 function offsetGet($原创 2017-05-09 10:47:00 · 368 阅读 · 0 评论 -
[深入理解PHP] -- PHP变量在内存中的存储方式
原文地址: http://www.phppan.com/tag/refcount/PHP是弱语言,其变量处理的过程是不可见的。你是否曾经很想知道在变量拷贝的时候,PHP引擎做了什么?你是否曾经很想知道一个函数是如何以引用的方式返回一个变量?如果是这样,请您接着向下看。每门计算机语言都需要一些容器来保存变量数据。在一些语言当中,变量都有特定的类型,转载 2017-04-27 15:24:45 · 1220 阅读 · 0 评论 -
PHP7革新与性能优化
有幸参与2015年的PHP技术峰会(PHPCON),听了鸟哥(惠新宸)的关于PHP7的新特性和性能优化的分享,一切都令人感到激动。鸟哥是国内最权威的PHP专家,他的分享有很多非常有价值的东西,我通过整理分享的PPT和收集相关资料,整理为这篇解读性质的技术文章,希望能给做PHP开发的同学一些帮助。PHP已经走过了20年的历史,直到今天,PHP7都发布了RC版,据说,PHP7正式版应该会在20转载 2017-12-19 15:33:27 · 329 阅读 · 0 评论 -
CAS实现单点登录SSO执行原理探究(终于明白了)
一、不落俗套的开始1、背景介绍单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS框架:CAS(Central Authentication Service)是实现SSO单点登录的框架。2、盗一张学习CAS绝大多都看过的图以及执行部分分析注:已分不清原创,此处就不给出地址了转载 2017-12-06 19:44:59 · 9620 阅读 · 3 评论 -
websocket的应用场景
没有其他技术能够像WebSocket一样提供真正的双向通信,许多web开发者仍然是依赖于ajax的长轮询来实现。(注:我认为长轮询是富于创造性和多功能性的,虽然这只是一个不太完美的解决办法(hack))对Websocket缺少热情,也许是因为多年前他的安全性的脆弱,抑或者是缺少浏览器的支持,不管怎样,这两个问题都已经被解决了。决定手头的工作是否需要使用WebSocket技术的方法很简单:转载 2017-11-14 13:10:24 · 568 阅读 · 0 评论 -
实现延迟队列
了解DelayQueueDelayQueue是什么?DelayQueue是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期时间最长。注意:不能将null元素放置到这种队列中。 DelayQueue能做什么?在我们的业务中通常会有一些需求是这样的: 淘宝订单业务:下单之后如果转载 2017-11-18 15:42:47 · 868 阅读 · 0 评论 -
使用消息队列的10个理由
1. 解耦在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。2. 冗余有时在处理数据的时候处理过程会失败。除非数据被持久化,否则将永远丢失。消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险转载 2017-10-19 11:29:21 · 290 阅读 · 0 评论 -
HTTP协议简介
原文地址: https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832653051fd44e44e4f9e4ed08f3e5a5ab550358d000在Web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。而浏览转载 2017-09-19 10:27:35 · 419 阅读 · 0 评论 -
进程和线程
原文地址: https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868322563729e03f6905ea94f0195528e3647887415000很多同学都听说过,现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是转载 2017-09-19 10:06:59 · 476 阅读 · 0 评论 -
IO编程
原文地址: https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832151866c052395d62814708a14c4fa1c933d85e000IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由C转载 2017-09-19 09:58:15 · 342 阅读 · 0 评论 -
php xhprof使用
PHP性能追踪及分析工具xhprof的安装与使用: http://www.cnblogs.com/maxincai/p/6001459.htmlPHP 性能分析第一篇: Xhprof & Xhgui 介绍: http://blog.oneapm.com/apm-tech/235.htmlPHP 性能分析第二篇: Xhgui In-Depth: http://bl原创 2017-05-27 15:59:52 · 283 阅读 · 0 评论 -
PHP Closure类(闭包)详解
原文地址: http://blog.youkuaiyun.com/wuxing26jiayou/article/details/51067190PHP Closure 类是用于代表匿名函数的类,匿名函数(在 PHP 5.3 中被引入)会产生这个类型的对象,Closure类摘要如下:[php] view plain copyClosur转载 2017-05-10 16:12:08 · 524 阅读 · 0 评论 -
PHP中PSR-[0-4]代码规范
原文地址: http://www.cnblogs.com/52php/p/5852572.htmlPHP-FIG在说啥是PSR-[0-4]规范的之前,我觉得我们有必要说下它的发明者和规范者:PHP-FIG,它的网站是:www.php-fig.org。就是这个联盟组织发明和创造了PSR-[0-4]规范,膜拜吧,屌丝们!FIG 是 Framework In原创 2017-06-25 15:12:48 · 1032 阅读 · 0 评论 -
PHP伪静态4种实现方式
原文地址: http://www.cnblogs.com/painsOnline/p/5127524.html说起伪静态的实现方案,你是不是很爽快的回答"简单,配置下apache的重写规则就行了嘛"但是你有没有发现这种情况,你最近弄了很多新功能,每天上几个新功能,每天都有好多伪静态配置,才开始两天运维同学还乐意配合,过两天运维同学就要骂了。你麻痹,脑残为什么不一次搞完,转载 2017-04-19 15:25:47 · 4904 阅读 · 0 评论 -
[排序] -- 二维数组排序 array_multisort
原文地址: http://blog.youkuaiyun.com/fujiafeihudui/article/details/38583331对2维数组或者多维数组排序是常见的问题,在PHP中我们有个专门的多维数组排序函数,下面简单介绍下:array_multisort(array1,sorting order, sorting type,array2,array3..)是对多个数转载 2017-01-12 13:43:09 · 1119 阅读 · 0 评论 -
反垃圾云服务技术和基于二进制高效的对象序列化类库 - MessagePack
今天这篇文章给大家推荐两个实用的技术。极速智能的反垃圾云服务 - 网易易盾基于二进制高效的对象序列化类库 - MessagePack极速智能的反垃圾云服务。首先解释一个互联网术语 - UGC。UGC 全称 User Generated Content,也就是用户生成内容的意思。常用网站分类比如:好友社交网络、视频分享网络、社区论坛、微博等等。当我们在开发这些项目转载 2016-12-09 16:28:23 · 494 阅读 · 0 评论 -
[加密]--PHP 使用非对称加密算法(RSA)
解释 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。使用场景 PHP 为客户端(Android,转载 2016-12-09 16:24:49 · 3872 阅读 · 0 评论 -
33个超级有用必须要收藏的PHP代码样例
<?php/** * 时间:2015-8-6 * 作者:River * 超级有用、必须收藏的PHP代码样例 */class Helper { /** * 友好显示var_dump */ static public function dump($var, $echo = true, $label = null, $strict = true) {转载 2016-12-09 16:22:55 · 507 阅读 · 0 评论 -
PHP将长文章分页
原文地址: http://www.helloweba.com/view-blog-346.html当文章内容特长时,为了方便阅读和页面展示我们一般将内容分页来显示。而一般分页处理是在后台发布文章的时候就将提交的内容生成多个分页后的静态文件。本文我们结合实例来讲解采用PHP动态将长文章内容进行分页处理。查看演示 下载源码如何分页手动分页:一般在编辑内容转载 2017-04-11 09:49:53 · 400 阅读 · 0 评论 -
[安全] -- 使用AES加密算法进行数据加密和解密
原文地址: http://www.helloweba.com/view-blog-407.htmlAES加密是一种高级加密标准,AES加密采用对称分组密码体制,AES加密数据块分组长度必须为128比特,密钥长度可以是128比特、192比特、256比特中的任意一个(如果数据块及密钥长度不足时,会补齐)。查看演示 下载源码项目中用到了AES加密和解密数据,主要用转载 2017-04-11 09:41:26 · 709 阅读 · 0 评论 -
PHP单元测试利器:PHPUNIT初探(一)
你是否在程序开发的过程中遇到以下的情况:当你花了很长的时间开发一个应用后,你认为应该是大功告成了,可惜在调试的时候,老是不断的发现bug,而且最可怕的是,这些bug是重复出现的,你可能发现这些bug之间会有关联,但却老是找不到问题的所在。 当你遇到以上这些令你沮丧的情况时,你一定会想能有什么更好的办法去解决呢?办法当然是有的!这就是使用单元测试。单元测试不但可以在一定程度上解决上述头疼的转载 2017-04-10 16:00:48 · 624 阅读 · 0 评论 -
PHP单元测试利器:PHPUNIT深入用法(二)
在上一篇PHP单元测试利器:PHPUNIT初探文章中,我们对phpunit有了一个初步的认识,在本文中将继续深入讲解下phpunit中的一些用法。 1、markTestSkipped和markTestIncomplete 在phpunit中,有两个有用的方法markTestSkipped和markTestIncomplete。它们能允许你编写的单元测试中不单是只有通过和失败两种转载 2017-04-10 15:59:11 · 1431 阅读 · 0 评论 -
PHP错误调试
导读2012年至今做到哪个项目都带上这个调试函数,为我带来了不少的调试便利性基础版我见过封装几次这样封装的函数:function debug($data){ echo ''; print_r($data); echo '';}挺好,挺好!其实未见到这个函数之前我自己也做过这样的函数只是我比他多想了一步:需要停止运行时,能不能增加一个参数来控制?于是转载 2017-03-09 14:41:47 · 330 阅读 · 0 评论 -
参数用一个数组还是分开几个
要点速读就算定义成一个$params参数,函数增加了新key的处理,那调用的地方传的参数没新key也是要编写新key的赋值代码不定义成一个$params的话除了调整函数的处理,还要调整传参的代码,也是要改两处该不该将参数定义成数组,要看这些参数是不是同一个类型的集合,是的话就从概念上将它定义为一个整体,就用数组,不能参与到这个整体中的就单独定义问题的起源转载 2017-03-08 16:35:55 · 558 阅读 · 0 评论 -
开发后台项目的套路是什么?
需求评估产品经理、开发工程师、测试工程师,组织需求评审会议,讲解本次的开发功能。开发需分析:是否涉及到其他开发部门?是否需要创建数据库/数据表?本次需要做多少页面?有多少功能点,哪些是功能难点?根据以上,给出开发工期(X/人/天)。跨部门沟通沟通确定后,沟通结果以邮件的形式确认抄送相关Leader。创建/更改 数据库根据公司要求规范操作数据表转载 2016-12-09 16:30:21 · 652 阅读 · 0 评论 -
[经验] -- PHP团队开发中遇到的那些坑,看我是如何解决的?
坑一 : 团队开发中,每个人都有自己擅长的集成环境,比如WAMP、AppServ、XAMPP,正是因为这些环境不统一,完成任务提交代码后,每当测试出BUG的时候,都会有 “代码在我机子上运行没有问题” 的说辞。那么问题来了,如何解决这个问题?如何统一开发环境?我为大家推荐一个工具,Vagrant。Vagrant 是一款用来构建虚拟开发环境的工具,我们可以通过 Vagrant 封转载 2016-12-09 16:33:57 · 1005 阅读 · 0 评论 -
[排序] -- 插入排序
插入排序的逻辑:假设Array A为已经排序好的数组,此时需要从Array B中抽取最靠前的元素插入到Array A中,且需要按顺序插入。变形:如果只有Array A,而不存在Array B。现在对Array A自己进行插入排序。可以默认认为Array A中的前半段为已排序好的数组,后半段为未排序数组,而元素K为目前正要进行排序的元素。此时前半段可以表示为A[0-(k-1)],后半段为转载 2016-12-09 16:39:01 · 224 阅读 · 0 评论 -
[session] -- session多服务器共享的方案梳理
session的存储了解以前是怎么做的,搞清楚了来龙去脉,才会明白进行共享背后的思想和出发点。我喜欢按照这样的方式来问(或者去搞清楚):为什么要session要进行共享,不共享会什么问题呢? php中session的原理,以前做了一下总结,可以参考:http://www.cnblogs.com/wangtao_20/archive/2011/02/16/1955659.html转载 2017-02-08 11:21:22 · 245 阅读 · 0 评论