自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杨森源的博客

不要在最该奋斗的年纪选择安逸------一个热衷于PHP开发的95后

  • 博客(29)
  • 资源 (8)
  • 收藏
  • 关注

原创 PHP内核变量访问宏

使用"zval.type=IS_LONG" 方式可以设置一个变量的类型,不过这样做不是很合适,因为不能预测PHP以后的版本会发生什么变化,有可能在以后的版本中type成员变量的名字歌城type_gc或者其他的名字,那么之前写好的扩展就不能适应这些版本了。为了解决这个问题,PHP内核中提供了一个访问和设置变量类型的方法,具体如下:Z_TYPE(zval) 对应zval结构体的实体Z_TYPE_P(&

2016-10-31 11:20:55 3227

原创 PHP变量在内核中的存储方式

PHP是弱类型语言,也就是说一个PHP变量可以保存任何的数据类型。但是PHP是使用C语言编写的,而C语言是强类型的语言,每个变量都有固定类型,不能随意改变变量的类型(可以通过强类型转换改变,不过有可能出现问题),在Zend引擎中是怎么做到一个变量保存任何的数据类型呢?打开Zend/zend.h文件,会发现以下一些结构体:typedef union _zvalue_value { long l

2016-10-28 19:30:23 4196

转载 如何快速转载CSDN中的博客

对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙o⊙)… 也对。。实现  因为我自己当初想转载的时候却不知道该怎么转载,所以学会了之后就把方法写出来,帮助那些想转载却不知道该怎么转载的人(大神勿笑)。

2016-10-27 20:20:12 1968

转载 如何利用github打造博客专属域名

转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/51319147; 本文出自:【张鸿洋的博客】一、概述哈,本篇博客不属于Android技术类的文章,但却有非常高的实用性。如果你心细的话,你会发现现在访问zhanghongyang.com或者guolin.tech你会发现最终跳转的是我们的csdn博客的列表目录。 有

2016-10-27 19:50:17 1863

原创 正则表达式的常用模式

正则表达式的常用模式模式(Pattern Modifiers)就是可以改变表达行为的字符,用来关闭或打开模式(Pattern Modifiers)就是可以改变表达行为的字符,用来关闭或打开,下面介绍一些基本修饰符及常用模式。1.忽略大小写模式(i)在此模式下,正则匹配将不区分待匹配内容的大小写,这在HTML里常用。由于HTML本身的容错性很好,对大小写混用有很好的兼容处理能力,也就经常会出现无论是标

2016-10-26 13:14:24 3279

原创 正则表达式的运算符优先级

运算符优先级正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。下表说明了各种正则表达式运算符的优先级顺序,其中优先级从上到下、由高到低排列。字符的优先级比替换运算符高,替换运算符允许m|food与m或food匹配。要匹配mood或food,使用括号创建子表达式,从而产生如下表达式:(m|f)ood

2016-10-25 20:11:20 3977

原创 正则表达式的逻辑关系

在构造和理解正则表达式的过程中,通常都是由简到繁的过程,如果理解正则表达式内部间的关系,就可以把比较复杂的正则表达式拆分成几个小块来理解,从而帮助消化。正则表达式的逻辑关系正则表达式之间的逻辑关系可以简单地用与、或、非来描述,如表所示。通常来说,正则表达式可以看做这三种逻辑关系的组合。下面分析这三种逻辑。1.与“与” 是正则表达式中最普遍的逻辑关系。一般来说,如果正则表达式中的元素没有任何量词(比如

2016-10-25 20:08:22 34547 2

原创 正则表达式匹配规则

前面已经讲过"*","-","?" 等元字符,它们都有各自的特殊含义。如果想匹配没有预定义元字符的字符集合,或者表达式和已知定义相反,或者存在多种匹配情况,应该怎么办?字符组查找数字、字母、空白很简单,因为已经有了对应这些字符集合的元字符,但是如果想匹配没有预定义元字符的字符集合(比如元音字母a、e、i、o、u),方法很简单,只需要在方括号里列出它们。例如[aeiou] 匹配任何一个英文元音字母,[

2016-10-24 18:41:12 7913 4

原创 正则表达式中的元字符

假设要在一篇文章里查找”he”,可以使用正则表达式”he”。这几乎是最简单的正则表达式,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是”h”,后一个是”e”。通常,处理正则表达式的工具会提供一个忽略大小写的选项,如果选中这个选项,它可以匹配”he”、”HE”、”He”、”hE”这四种情况中的任意一种。但是很多单词里包含”he”这两个连续的字符,比如”her”、”heet”等。用”he”来查

2016-10-23 16:23:13 5550 5

原创 认识正则表达式

正则表达式起源于科学家对人类神经系统工作原理的早期研究。美国新泽西州的Warren McCulloch和出生在美国底特律的Walter Pitts这两位神经生理方面的科学家,研究出一种用数学方式来描述神经网络的新方法,他们创新地将神经系统中的神经元描述成小而简单的自动控制元,从而做出一项伟大的工作革新。后来,数学科学家Stephen Kleene在Warren McCulloch和Walter Pi

2016-10-23 15:04:33 2171

原创 PHP 修改和删除XML内容的原理和方法

例如:example.xml<?xml version="1.0" encoding="utf-8"?><root> <book id="1"> <title>title1</title> </book> <book id="2"> <title>title2</title> </book> <book id="3">

2016-10-22 15:24:05 4191

原创 PHP DOM创建生成一个XML文件

XML标签内容介绍PHP DOM生成XML方法介绍实例实例1<?php$doc = new DOMDocument('1.0','utf-8');$doc -> formatOutput = true;//格式化输出格式$root = $doc -> createElement('root');//创建一个标签$book = $doc -> createElement('book');//创建一

2016-10-21 20:14:29 6481

原创 PHP XML的DOMDocument读取功能

XML常识XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是标准的同用标记语言。Xml是Internet环境中跨平台的,依赖于内容的技术。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML及其简单易于掌握和使用。XML与HTML的设计区别

2016-10-21 20:09:06 3839

原创 HTTP协议简述

前言HTTP协议是整个Web的基础,是客户端和服务器端协同工作的基石,要想了解Web的工作原理、优化Web应用,就要完全理解HTTP协议。简单来说,HTTP就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范——HTTP协议。HTTP协议从WWW服务器传送超文本到本地浏览器,可以使浏览器更加高效。HTTP协议不仅保证计算机正确快速地传输超文本文档,还能确定传输文档中的哪一部分,以及哪部

2016-10-18 20:11:28 5672

原创 Memcache线上常见问题(缓存雪崩、缓存无底洞、永久数据被踢)

缓存雪崩现象一般是由于某个节点失效,导致其它节点的缓存命中率下降,缓存中缺失的数据直接去数据库查询,短时间内造成数据库服务器崩溃。或者是由于缓存周期性失效,比如设置每隔6个小时失效一次,那么每6个小时将会有一个请求峰值,严重的话,也会导致数据库崩溃。重启DB后,短期内又被压垮,但缓存又会恢复一点,DB反复重启多次,直至缓存重建完毕,才能恢复稳定。如果小网站,平时访问量不大的情况下,数据缓存的时间不同

2016-10-15 11:51:00 6827

原创 Memcached分布式布置方案--一致性Hash分布机制及其改进

一致性Hash分布简介在服务器数量不发生改变时,普通的Hash分布可以很好地运作。当服务器的数量发生改变时,问题就出来了,试想,增加一台服务器时,同一个key经过Hash之后,与服务器取模的结果跟没增加服务器之前的结果会不一样,这就导致之前保存的数据丢失。为了把丢失的数据减少到最少,可以采用一致性hash算法。一致性hash算法分为6个步骤:步骤1:将一个32位整数0~2^32 -1想象成一个环,将

2016-10-14 12:42:40 3269 1

原创 Memcached分布式布置方案--普通Hash分布(余数分布法/取模分布法)

普通Hash分布简介普通Hash分布比较简单,Hash函数大致如下:function mHash($key){ $md5 = substr(md5($key),0,8); $seed = 31; $hash = 0; for($i = 0; $i < 8; $i++){ $hash = $hash*$seed + ord(md5($i));

2016-10-12 19:59:20 2835

原创 Memcached--数据的过期和删除机制

删除过期Item  Memcached为每个item设置一个过期时间,但不是到期就把item从内存删除,而是访问item时,如果到了有效期,才把item从内存中删除。item *do_item_get_notedeleted(const char*key,const size_t nkey,bool *delete_locked){ item *it = assoc_fin

2016-10-12 18:02:38 8147

原创 Memcached实战之简单留言板

MyPdo.php<?phpclass MyPdo{ private $pdo; function __construct() { $this->pdo = $this->getPdo(); } /** * CreatePDO * * @return PDO */ public function ge

2016-10-11 21:03:38 2039

原创 Memcached的常用操作

Memcached系统类添加memcached服务器并查看服务器的运行状态<?php$m = new Memcached();/*添加memcached服务器,参数为ip和端口号*/$m->addServer('127.0.0.1',11211);/*也可以用如下方式一次性添加多台服务器*//*$array = array( array('127.0.0.1',112

2016-10-11 13:28:33 2650

原创 php浅析memcache和memcached模块比较以及安装方法

1.目前大多数php环境里使用的都是不带d的memcache版本,这个版本出的比较早,是一个原生版本,完全在php框架内开发的。与之对应的带d的memcached是建立在libmemcached的基础上,所以相对来说,memcached版本的功能更全一些。 2.Memcache是原生实现的,支持OO和非OO两套接口并存。而memcached是使用libmemcached,只支持OO接口。 3.mem

2016-10-10 20:04:45 3475

原创 Memcached简介与安装

什么是Memcached?Memcached是高性能的分布式内存缓存服务器,可以通过缓存数据库的查询结果,减少数据库访问次数,以提高动态web应用的速度和可扩展性。为什么要用Memcached?随着互联网的发展,传统的关系型数据库(如MySQL,Oracle)开始出现瓶颈,很多方面不能满足我们的要求。例如:1:对数据库的高并发读写。关系型数据库本身就是个庞然大物,处理过程非常复杂和耗时(如解析SQL

2016-10-09 19:16:36 1922

原创 PHP中Redis替代文件存储Session

PHP默认使用文件存储session,如果并发量大,效率非常低。而Redis对高并发的支持非常好,所以,可以使用redis替代文件存储session。这里,介绍下php的session_set_save_handler 函数的作用和使用方法。该函数定义用户级session保存函数(如打开、关闭、写入等)。原型如下:bool session_set_save_hanler(callback open,

2016-10-08 20:16:34 6208

原创 面向对象的原则之依赖倒置原则

依赖倒置原则  什么是依赖倒置呢?简单地讲就是将依赖关系倒置为依赖接口,具体概念如下:上层模块不应该依赖于下层模块,它们共同依赖于一个抽象(父类不能依赖子类,它们都要依赖抽象类)。抽象不能依赖于具体,具体应该要依赖于抽象。  注意,这里的接口不是狭义的接口。  为什么要依赖接口?因为接口体现对问题的抽象,同时由于抽象一般是相对稳定的或者是相对变化不频繁的,而具体是易变的。因此,依赖抽象是实现代码

2016-10-04 17:29:40 2862

原创 phpredis实战--简单实现注册,删除,编辑,分页,登录,关注等功能

主要界面连接redisredis.php<?php //实例化 $redis = new Redis(); //连接服务器 $a=$redis->connect("localhost",6379); //var_dump($a); //授权 $redis->auth("107lab");注册界面add.php<form action="reg.

2016-10-04 10:31:42 4589

原创 CentOS下如何安装phpredis扩展

1.到redis的官网找到redis客户端下载,选择php安装Redis的PHP扩展 2.1 安装phpizeyum install php-devel 2.2 下载扩展源码包,直接用wget wget下载github上的文件 wget https://github.com/nicolasff/phpredis/archive/master.zip 2.3 如果没装unzip,需要先安装u

2016-10-04 09:18:30 6045

原创 redis--持久化机制

持久化机制redis是一个支持持久化的内存数据库,也就是说redis需要经常来将内存中的数据同步到硬盘来保证持久化。redis支持两种持久化方式:snapshotting(快照)也是默认方式。Append-only file(缩写是aof)的方式。snapshotting方式快照是默认的持久化方式。这种方式是将内存中的数据以快照的方式写入一个二进制文件中,默认的文件名为dump.rdb。可以通

2016-10-04 09:08:25 1963

原创 redis--事务处理与乐观锁

redis对事务的处理目前还比较简单。redis只能保证一个client发起的事务中的命令可以连续执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中的所有命令。127.0.0.1:6379> get age"30"127

2016-10-03 23:04:57 4207

原创 redis--主从复制

Redis主从复制配置和使用都非常简单。通过主从复制可以允许多个slave server拥有和master server相同的数据库副本。redis主从复制特点:master可以拥有多个slave多个slave可以连接同一个master外,还可以连接到其他slave主从复制不会阻塞master,在同步数据时,master可以继续处理client请求提高系统的伸缩性redis主从复制的过程

2016-10-02 09:20:00 2138

自定义滚动条插件

mCustomScrollbar插件,支持自定义滚动条,功能丰富,例子多,简单易用

2017-05-19

Learning PHP设计模式

Learning PHP设计模式---William Sanders 著,中国电力出版社

2017-02-17

Memcache图形化管理工具

直接在php开发环境下,通过浏览器访问即可,注意修改里面前几行的配置,包括ip,端口,用户名,密码

2016-12-21

js支持base64加密

JavaScript的base64位加密插件

2016-12-04

屏幕录制成gif动画

可以录制屏幕,保存成gif格式的图片,支持帧的添加删除和,图片大小处理,添加滤镜等。

2016-12-04

canvas炫酷动画飞爆效果

canvas炫酷动画飞爆效果

2016-11-01

C++ vs 2012扩展包

安装Apache时,显示,缺少MSVCR110.dll

2016-11-01

jpgraph-4.0.0

jpgraph-4.0.0,以及Examples实例,PHP5,PHP7

2014-03-20

空空如也

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

TA关注的人

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