摘要: php 提供的字符串压缩方法有1.gzcompress — Compress a stringThis function compress the given string using the ZLIB data format.2.gzencode — Create a gzip compressed stringThis function returns a compressed version of the input data compatible with the output of the gzip program3.gzdeflate — Deflate a stringThis 阅读全文
posted @ 2014-01-16 21:01 傲雪星枫 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 基本概念• 字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等;• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给字符’A'赋予数值0,给字符’B'赋予数值1,则0就是字符’A'的编码;• 给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set)。例如,给定字符列表为{‘A’,'B’}时,{‘A’=>0, ‘B’=>1}就是一个字符集;• 字符序(Collation)是指在同一字符集内字符 阅读全文
posted @ 2014-01-12 11:36 傲雪星枫 阅读(156) 评论(0) 推荐(0) 编辑
摘要: MemcacheQ 是一个基于 MemcacheDB 的消息队列服务器。官网地址:http://memcachedb.org/memcacheq/特点:1.简单易用。2.处理速度快。3.可创建多条队列。4.并发性能高。5.与memcache协议兼容。MemcacheQ 依赖 Berkeley DB 和 libevent(1.4 或更高)。Berkeley DB用于持久化存储队列数据,避免当MemcacheQ崩溃或服务器死机时发生数据丢失。1.安装Berkeley DB下载地址:http://www.oracle.com/technetwork/database/database-technol 阅读全文
posted @ 2014-01-07 00:43 傲雪星枫 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 服务器生成缩略图的时机一般分为两种:1.上传文件时生成优点:上传时就已经生成需要的缩略图,读取时不需要再判断,减少cpu运算。缺点:当缩略图尺寸变化时或新增尺寸时,需要重新生成所有的缩略图。2.访问时生成优点:1.当有用户访问时才需要生成,没有访问的不用生成,节省空间。 2.当修改缩略图尺寸时,只需要修改设置,无需重新生成所有缩略图。缺点:当缩略图不存在需要生成时,高并发访问会非常耗服务器资源。虽然访问时生成会有高并发问题,但其他优点都比第一种方法好,因此只要解决高并发问题就可以。关于如何根据url自动生成缩略图的原理及实现,可以参考我之前写的《php 根据url自动生成缩略图》。高并... 阅读全文
posted @ 2014-01-05 01:02 傲雪星枫 阅读(1933) 评论(0) 推荐(0) 编辑
摘要: php 异步调用方法客户端与服务器端是通过HTTP协议进行连接通讯,客户端发起请求,服务器端接收到请求后执行处理,并返回处理结果。有时服务器需要执行很耗时的操作,这个操作的结果并不需要返回给客户端。但因为php是同步执行的,所以客户端需要等待服务处理完才可以进行下一步。因此对于耗时的操作适合异步执行,服务器接收到请求后,处理完客户端需要的数据就返回,再异步在服务器执行耗时的操作。1.使用Ajax 与 img 标记原理,服务器返回的html中插入Ajax 代码或 img 标记,img的src为需要执行的程序。优点:实现简单,服务端无需执行任何调用缺点:在执行期间,浏览器会一直处于loading状 阅读全文
posted @ 2014-01-01 17:39 傲雪星枫 阅读(233) 评论(0) 推荐(0) 编辑
摘要: main 与 iframe 相互通讯类之前写过一篇《iframe与主框架跨域相互访问方法》,介绍了main与iframe相互通讯的原理,不了解原理的可以先看看。今天把main与iframe相互通讯的方法封装成类,主要有两个文件,JS:FrameMessage.js 实现调用方法的接口,如跨域则创建临时iframe,调用同域执行者。PHP:FrameMessage.class.php 实现接收到跨域请求时,根据参数返回执行方法的JS code。功能如下:1.支持同域与跨域通讯2.传递的方法参数支持字符串,JSON,数组等。FrameMessage.exec('http://127.0.0 阅读全文
posted @ 2013-12-30 01:06 傲雪星枫 阅读(315) 评论(0) 推荐(0) 编辑
摘要: iframe 与主框架相互访问方法1.同域相互访问假设A.html 与 b.htmldomain都是localhost (同域)A.html中iframe 嵌入 B.html,name=myframeA.html有js function fMain()B.html有js function fIframe()需要实现 A.html 调用 B.html 的 fIframe(),B.html 调用 A.html 的 fMain()A.html main window A.html main B.html iframe window B.html i... 阅读全文
posted @ 2013-12-27 23:11 傲雪星枫 阅读(260) 评论(0) 推荐(0) 编辑
摘要: php 密码生成类功能:1.可设定密码长度。2.可设定要生成的密码个数,批量生成。3.可以指定密码的规则,字母,数字,特殊字符等。GeneratePassword.class.php 1, 'number' => 1, 'special' => 1 ); private $_length = 8; // 密码长度 private $_num = 1; // 密码数... 阅读全文
posted @ 2013-12-24 00:41 傲雪星枫 阅读(228) 评论(0) 推荐(0) 编辑
摘要: Cookies 操作类功能:1.保存,读取,更新,清除cookies数据。2.可设置前缀。3.强制超时控制。4.cookies数据可以是字符串,数组,对象等。Cookies.class.php_prefix = $prefix; } if(is_numeric($expire) && $expire>0){ $this->_expire = $expire; } if(is_string($securekey) && $securekey!=''){ $this->_securekey = $s... 阅读全文
posted @ 2013-12-22 20:02 傲雪星枫 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 安装 sysv-rc-confsudo apt-get install sysv-rc-conf安装完成后输入命令,可以管理开机程序。sudo sysv-rc-conf带 X 的都是开机启动,移动到要修改的位置,按空格可以取消/加上 X,修改完后按Esc,再按q 退出。 阅读全文
posted @ 2013-12-10 21:42 傲雪星枫 阅读(136) 评论(0) 推荐(0) 编辑
摘要: MessagePack 是一种有效的二进制序列化格式。与JSON一样可以在多语言中转换数据,但对比JSON,速度更快,转换后数据更小。安装1.下载msgpack,下载地址:点击下载2.编译安装/usr/bin/phpize (phpize的路径)./configuremake && make install3.在php.ini 中加入extension = "msgpack.so"例子:encode 与 decode'fdipzone','gender'=>'man');$msg = msgpack_pa 阅读全文
posted @ 2013-12-04 02:01 傲雪星枫 阅读(837) 评论(0) 推荐(1) 编辑
摘要: 原理:1.使用FileReader 读取图片2.使用canvas 的 getImageData 获取图片像素信息3.将像素信息转换为CSS3 box-shadow代码: 获取图片像素颜色,转换为css3 box-shadow 获取图片像素颜色,转换为CSS3 box-shadow 请选择图片(小于120K) 阅读全文
posted @ 2013-12-01 01:20 傲雪星枫 阅读(296) 评论(0) 推荐(0) 编辑
摘要: mysql 打开 general log 后,所有的查询语句都会记录在 general log 文件,文件为只读方式,但这样general log文件会非常大,所以默认是关闭的。但有时需要查错等原因,暂时需要打开general log。打开方法:show global variable like '%general%';set gloabl general_log = on; // 打开set global general_log = off; // 关闭general log 默认是记录到文本文件,不过可以通过修改log_output='TABLE' 更改记录 阅读全文
posted @ 2013-11-28 00:18 傲雪星枫 阅读(319) 评论(0) 推荐(0) 编辑
摘要: php 对象复制,是复制对象的引用地址,因此使用 $objA = $objB 这种写法时,$objA与$objB会指向相同的内存地址。当$objA 发生变化时,$objB也会受到影响。如果我们要$objA对象复制为$objB对象,复制之后,$objA有什么变化,都不会影响$objB。即$objA与$objB是两个独立的对象,但$objB的初始值是由$objA创建的,比较高效的做法是使用clone()方法。$objB = clone $objA;$objB的值是在$objA基础加$objA事例对象里clone()方法改变后的实例。当对象被复制后,所有的属性中的引用保持不变,指向原来的变量,如果定 阅读全文
posted @ 2013-11-24 18:29 傲雪星枫 阅读(166) 评论(0) 推荐(0) 编辑
摘要: PHP扩展开发报错解决[error: ‘PHP_FE_END’ undeclared here (not in a function)] .解决方法:进到php包的目录sed -i 's|PHP_FE_END|{NULL,NULL,NULL}|' ./ext/**/*.csed -i 's|ZEND_MOD_END|{NULL,NULL,NULL}|' ./ext/**/*.c例如:sed -i 's|PHP_FE_END|{NULL,NULL,NULL}|' ./ext/pcntl/*.csed -i 's|ZEND_MOD_END|{ 阅读全文
posted @ 2013-11-22 00:22 傲雪星枫 阅读(1141) 评论(0) 推荐(0) 编辑
摘要: PHP中,所有的变量都存储在"符号表"的HastTable结构中,符号的作用域是与活动符号表相关联的。因此,同一时间,只有一个活动符号表。我们要获取到当前活动符号表可以通过 get_defined_vars 方法来获取。get_defined_vars // 返回所有已定义的变量所组成的数组根据变量的值查找变量名字,但要注意,有可能有相同值的变量存在。因此先将当前变量的值保存到一个临时变量中,然后再对原变量赋唯一值,以便查找出变量的名字,找到名字后,将临时变量的值重新赋值到原变量。例子1:例子2:获取function里面定义的变量名字 阅读全文
posted @ 2013-11-09 13:50 傲雪星枫 阅读(457) 评论(0) 推荐(0) 编辑
摘要: php 使用异或(XOR)加密/解密文件原理:将文件每一个字节与key作位异或运算(XOR),解密则再执行一次异或运算。代码如下:source:';echo '';echo '';file_encrypt($source, $encrypt_file, $key); // encryptecho 'encrypt file:';echo '';echo '';file_encrypt($encrypt_file, $decrypt_file, $key); // decryptecho 'decry 阅读全文
posted @ 2013-11-02 01:17 傲雪星枫 阅读(631) 评论(0) 推荐(0) 编辑
摘要: 1.月份显示/** 月份顯示* @param int $m 1-12* @param int $type 0:long 1:short(default) 2:chinese* @return String*/function format_month($m, $type=0){ $month = array( array('', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'A 阅读全文
posted @ 2013-11-02 00:32 傲雪星枫 阅读(221) 评论(0) 推荐(0) 编辑
摘要: onunload,onbeforeunload 在页面刷新或关闭时调用,区别在于:onbeforeunload 是在页面刷新或关闭前触发,这时浏览器并未请求服务器读取新页面,因此onbeforeunload是可以阻止页面更新或关闭的。onunload 也是在页面刷新或关闭时触发,不过这时浏览器已经向服务器请求读取新页面,因此onunload是无法阻止页面更新或关闭的。1. onbeforeunload 事件事件触发时会弹出一个有确定和取消的对话框,确定后才会执行后续事件,否则继续留在本页。触发于:关闭浏览器窗口通过地址栏或收藏夹前往其他页面的时候点击返回,前进,刷新,主页其中一个的时候点击 一 阅读全文
posted @ 2013-10-26 10:27 傲雪星枫 阅读(454) 评论(0) 推荐(0) 编辑
摘要: mysql 的 insert 语句语法insert into `table`(`field1`,`field2`) values('value1','value2');提高insert 性能的方法1.一条sql语句插入多条数据INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_0', 'content_0', 0);INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ( 阅读全文
posted @ 2013-10-24 23:56 傲雪星枫 阅读(639) 评论(0) 推荐(0) 编辑