随笔分类 -  php

摘要:介绍 WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。 以前网站为了实现即时通讯,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每隔1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最 阅读全文
posted @ 2017-08-15 10:12 tianye_guazi 阅读(1869) 评论(0) 推荐(0)
摘要:Redis在很多方面与其他数据库解决方案不同:它使用内存提供主存储支持,而仅使用硬盘做持久性的存储;它的数据模型非常独特,用的是单线程。另一个大区别在于,你可以在开发环境中使用Redis的功能,但却不需要转到Redis。转向Redis当然也是可取的,许多开发者从一开始就把Redis作为首选数据库;但 阅读全文
posted @ 2016-12-24 10:30 tianye_guazi 阅读(113) 评论(0) 推荐(0)
摘要:1 MySQL+Memcached架构的问题 Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端Library可以用任何语言实现. Memcached服务器使用基于Slab的内存管理方式,有利于减少内存碎片和频繁分配销毁内存所带来的开 阅读全文
posted @ 2016-12-19 22:26 tianye_guazi 阅读(161) 评论(0) 推荐(0)
摘要:关于程序并发是老生常谈的话题了,工作中也经常去碰到,有必要来总结一下,其实并发与之关联的解决办法就是锁,加锁会消耗程序的性能和一些资源这是肯定的,当然如果能利用本身的原子性操作(指令的完整执行,在执行期间并不会被其他线程去中断,也不会存在上下文的切换),实现无锁编程是最好的。 1.防止重复请求 最近 阅读全文
posted @ 2016-12-11 17:19 tianye_guazi 阅读(302) 评论(0) 推荐(0)
摘要:class Capture { private static $callback; public static function register($callback) { self::$callback = $callback; set_error_handler([__CLASS__, 'errorHandle'], E_ALL ^ ... 阅读全文
posted @ 2016-12-04 17:33 tianye_guazi 阅读(393) 评论(0) 推荐(0)
摘要:单核,多核CPU的原子操作 一. 何谓"原子操作":原子操作就是: 不可中断的一个或者一系列操作, 也就是不会被线程调度机制打断的操作, 运行期间不会有任何的上下文切换(context switch). 二. 为什么关注原子操作?1. 如果确定某个操作是原子的, 就不用为了去保护这个操作而加上会耗费 阅读全文
posted @ 2016-12-03 22:30 tianye_guazi 阅读(1721) 评论(0) 推荐(0)
摘要:一.PHP5.3 1.支持命名空间 2.增加goto语句 3.新增两个魔术方法__callStatic() 调用不存在的或者是私有的静态方法时启用,当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用。 4.添加NowDoc语法的支持 二 php5.4 1.新增trait 2 阅读全文
posted @ 2016-11-14 00:19 tianye_guazi 阅读(257) 评论(0) 推荐(0)
摘要:1.字符编码的问题 程序代码使用utf-8码,而strlen函数是计算字符串的字节数而不是字符数? $str = “您好hello”; echo strlen($str); 结果:ANSI=9 而utf-8=11,utf-8中文字符编码是3个字节。要获取字符数,使用mb_strlen(). 2.ph 阅读全文
posted @ 2016-11-12 16:27 tianye_guazi 阅读(133) 评论(0) 推荐(0)
摘要:1.关于远程库git remote 可以查看指定版本库的详细信息git remote show <版本库名> git remote add命令用于添加远程版本库git remote add <版本库名> <网址> git remote rm命令用于删除远程版本库 阅读全文
posted @ 2016-10-26 13:33 tianye_guazi 阅读(166) 评论(0) 推荐(0)
摘要:今天在公司碰到了一个bug,就是以前一直用curl下载的MP3录音文件为空了,但是浏览器去get请求是有文件的,并且大小还不是0kb,但是我用curl下载下来就是0K,百思不得其解。终于功夫不负有心人,得到了方法,原来我一直要去第三方的接口拿到录音数据,但是今天的录音数据中地址跳转了,也就是第一次请 阅读全文
posted @ 2016-10-25 22:51 tianye_guazi 阅读(3228) 评论(0) 推荐(0)
摘要:checkdate()函数,检查是否是有效的日期 getDate()函数,得到年月日时分秒,月份星期的英文表示,今天是星期几,一年中的第多少天。 阅读全文
posted @ 2016-10-24 18:08 tianye_guazi 阅读(132) 评论(0) 推荐(0)
摘要:单例模式:一个对象只负责一个特定的任务。 单例类的特征: 1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化; 2、拥有一个保存类的实例的静态成员变量 3、拥有一个访问这个实例的公共的静态方法(常用getInstan 阅读全文
posted @ 2016-10-13 12:38 tianye_guazi 阅读(212) 评论(0) 推荐(0)
摘要:这几天了解到了得好好学习下PHP的设计模式,所以找了些资料来标记,每天进步一小步哈! 1.工厂模式 工厂模式最大的优点在于创建对象,有点适配器的感觉,大体上是根据不同的参数,工厂去实现不同的对象,返回给调用者,工厂把实例对象的过程封装起来。 减少代码进行复制粘帖,耦合关系重,牵一发动其他部分代码。 阅读全文
posted @ 2016-10-12 16:13 tianye_guazi 阅读(196) 评论(0) 推荐(0)
摘要:今天无意中看到了公司面试的一道题,即斐波那契数列,也叫黄金分割数列,就自己想想做了下。 因为这种数列有个很明显的特征,即当前项值等于前一项和前前一项的和,直观印象肯定是递归。 1.递归 但是递归虽然非常简单,但是耗费的资源太大,时间太长。而且递归和迭代可以互相转化,所以试试迭代,性能明显提高。 2. 阅读全文
posted @ 2016-10-11 17:30 tianye_guazi 阅读(155) 评论(0) 推荐(0)
摘要:PHP程序的错误发生一般归属于下列三个领域。 语法错误 语法错误最常见,并且最容易修复。例如,遗漏了一个分号,就会显示错误信息。这类错误会阻止脚本执行。通常发生在程序开发时,可以通过错误报告进行修复,再重新运行。 Ø 运行时错误 这种错误一般不会阻止PHP脚本的运行,但是会阻止脚本做希望它所做的任何 阅读全文
posted @ 2016-10-11 14:16 tianye_guazi 阅读(281) 评论(0) 推荐(0)
摘要:工作需要去调用华为的接口,通过CURL,信息在响应头中。 1.从CURL中获取响应头 2.从curl中获取请求头 阅读全文
posted @ 2016-10-09 16:03 tianye_guazi 阅读(62929) 评论(1) 推荐(0)
摘要:自己当然没有涉及到大量的高并发场景,摘抄一下,扩充知识。 高并发经常发生在有大量的活跃的用户,用户高聚集的业务场景中,像秒杀,抢红包等。为了流畅的运行业务和好的用户体验,我们需要预估达到的并发量,来涉及场景。 1.服务器架构 服务器从业务发展的初期的相对单一到集群,再到分布式服务,高并发的场景肯定少 阅读全文
posted @ 2016-10-09 15:31 tianye_guazi 阅读(258) 评论(0) 推荐(0)
摘要:PSR,即系列推荐标准,目前通过的规范有psr-0,psr-1,psr-2,psr-3,psr-4,它并不是PHP官方的标准,而是从zend,Symfony2等知名的项目里提炼的标准,制定该标准的组织是PHP-FIG(PHP标准组)。 PSR-0,即类的自动加载规范,但是从2014-10-21起,该 阅读全文
posted @ 2016-10-09 14:10 tianye_guazi 阅读(293) 评论(0) 推荐(0)
摘要:话不多说,为了确保web内容的安全,这里有一些常规的安全标准准则: 1.不相信表单 攻击表单其实很简单,如果有人在他们的浏览器去关闭了JS功能,你的客户端验证就失败了。 用户在很大程度上都是通过表单和后台进行交互,因此表单是最大的安全风险,围绕着表单产生的攻击很多,像mysql注入攻击,XSS等,我 阅读全文
posted @ 2016-10-07 21:11 tianye_guazi 阅读(203) 评论(0) 推荐(0)