摘要: php中 http_build_query会将array中boolean中true值转化成1,false转化成0.http://www.php.net/manual/zh/function.http-build-query.php解决办法是将该数组中的boolean值true或者false转化成字符串,举例如下: $params = array(); $params['with_offical_account'] = 1; $params['forcelogin'] = 'true'; $link = http_build_query($... 阅读全文
posted @ 2013-03-06 15:10 风之子_2012 阅读(852) 评论(0) 推荐(0) 编辑
摘要: 近来遇到一个需求,是要在两地机房间进行缓存的同步实现方案如下:在两地机房cache在本地执行后,插入本地的维护两个不同方向的队列,利用http将队列中的数据打包传送到异地,解包后处理。完成同步。1. 为避免大流量的缓存同步请求造成队列拥堵,对缓存的写操作进行分类,在cache基类里封装是否同步的开关,避免不需要同步的cache进入队列造成数据异常。2. 队列需要的是顺序执行,要求有较快的插入,弹出以及取长度(便于计算同步效率)效率,对排序和随机插入没有要求,但是对数据要求要有持久性,便于同步脚本出问题或者机器网络故障进行数据恢复。因此选择了redis的List作为队列存储。3. 原本最先考虑的 阅读全文
posted @ 2013-02-21 23:54 风之子_2012 阅读(1765) 评论(0) 推荐(0) 编辑
摘要: 今天遇到了一个将长链接转化成短链接的问题,苦思没有得到较好的无重复url的方案,遂到网上查了一个。算法大致如下:1)将长网址md5生成32位签名串,分为4段, 每段8个字节;2)对这四段循环处理, 取8个字节, 将他看成16进制串与0x3fffffff(30位1)与操作, 即超过30位的忽略处理;3)这30位分成6段, 每5位的数字作为字母表的索引取得特定字符, 依次进行获得6位字符串;4)总的md5串可以获得4个6位串; 取里面的任意一个就可作为这个长url的短url地址;实现如下:1. 正则表达式匹配url,验证该长链接是否为正常url,最初写了一个preg_match pattern, 阅读全文
posted @ 2012-11-17 23:55 风之子_2012 阅读(2931) 评论(0) 推荐(0) 编辑
摘要: 在一个项目中,由于错误使用了list()这个函数,导致了数据错误发生。参考php.net, 对list介绍如下:list — 把数组中的值赋给一些变量。 像 array() 一样,这不是真正的函数,而是语言结构。 list() 用一步操作给一组变量进行赋值。Note:list() 仅能用于数字索引的数组并假定数字索引从 0 开始。<?php$info = array('coffee', 'brown', 'caffeine');list($a[0], $a[1], $a[2]) = $info;var_dump($a);?>这个$a的 阅读全文
posted @ 2012-10-25 17:41 风之子_2012 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 个人安装php开发环境心得——nginx安装篇1. 安装wget为了使用wget下载nginx 先安装wget,在configure时需要加上ssl参数,如下:./configure --with-ssl=openssl否则会报错,configure: error: –with-ssl was given, but GNUTLS is not available.2. 下载nginxnginx最初下载的是1.2.4版。安装nginx前需要安装pcre,下载pcre 8.20,安装后开始./configure nginx, 在make阶段曝出如下错误:objs/ngx_modules.o \-l 阅读全文
posted @ 2012-10-17 17:32 风之子_2012 阅读(1206) 评论(0) 推荐(0) 编辑