手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:PHP

yiilog.com

YiiLog.com近日起即将启用。
之所以注册这个域名,是因为使用Yii来,用它开发了不少的东西,也积累了一些代码
有部分代码不能公开,也有收集、收藏了别人的一些代码(基于Yii的)。
嗯。也有一些API也会用YiiLog来发布。

api.YiiLog.com,将是用来对外发布服务的。(该服务将会使用SAE平台,因为速度会更快一点)
YiiLog.com主站还是会扔在这台VPS上。慢就慢一点,但毕竟是自己可控制的

Tags: yii

xcache 发布3.0版本

xcache也开始追求版本号了?
1.x的时候几年都没变。2.01刚发布3个月立刻就是3.0了?
虽然官网上说这是一个里程碑式的更新,但谁能说的清?

更新倒是不少:

API Changes
========
 * chg: proto array xcache_clear_cache(int type, [ int id = -1 ]). -1 means all cache splits
 * new: proto array xcache_enable_cache(int type, [ int id = -1, [ bool enable = true ] ])
 * new: proto array xcache_admin_namespace()
 * new: proto array xcache_set_namespace(string namespace)

Ini Settings Changes
========
 * new: xcache.disable_on_crash = Off
 * new: xcache.coverager_autostart = On
 * new: xcache.allocator = bestfit (no other option value yet)
 * new: xcache.var_allocator = bestfit (no other option value yet)

ChangeLog
========
 * closes #2: auto disable caching on crash
 * closes #73: warn for improper PHP_FCGI_CHILDREN setting fcgi mode (>=PHP_5_3)
 * closes #174: updates api to support "clear all cache"
 * closes #198: support for caching protocol url
 * closes #287: namespace support
 * fixes #39: ini_set never work for xcache.coverager setting. use API instead
 * code refactor
   * uses extension= to load XCache. loading via zend_extension= is unsupported
   * split XCache features into multiple sub modules
 * updates XCache admin page
 * adds an diagnosis module to give professional advise, accessable via htdocs pages
 * cache can be enabled/disabled manually

反正,他们自我评价挺高的:XCache 3.0.0 released. Lots of improvements, bug fixes. This is a big new milestone refactoring most XCache code.

在首页的下载里面还写着:
2.1.x, unstable, devel, features
结果,3.0都Release了。。。
这年头。。。还能怎么办?

Tags: xcache

针对品鉴网的一些URL路由设置

这篇文章又能当成开发文档,也能当成软文,所以,你们就将就着看吧。

yii框架中很早就支持路由功能了。所以,从那时候开始,很多人就开始将项目路由化,举例说明:
http://user.pinjian.net,访问用户中心
http://admin.pinjian.net 访问后台
http://xxxx.pinjian.net 访问Xxx
表面上这是一大堆 网站,其实很有可能是什么?只是一个控制器或者一个module罢了。
http://user.pinjian.net可能对应了什么?http://pinjian.net/user/index,很有可能就这样而已。
而对于yii来说,这个太简单了
在main.php(环境 变量设置中),针对urlManager的rules加入:

PHP代码
  1. 'urlManager' => array(  
  2.     'urlFormat' => 'path',  
  3.     'showScriptName'=>false,  
  4.     'rules' => array(  
  5.         'http://photo.pinjian.net/<action:\w+>'=>'image/<action>',  
  6.         '<controller:\w+>/<id:\d+>' => '<controller>/view',  
  7.         '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',  
  8.         '<controller:\w+>/<action:\w+>' => '<controller>/<action>',  
  9.     ),  
  10. ),  

看看高亮的那一行,是不是很简单?
之前,有一篇博客介绍过的:http://www.neatstudio.com/show-1550-1.shtml,还篇比较详细

Tags: yii

Unicode转换

其实只是一段很少的代码。

http://www.kalvin.cn/article/php-encrypt-decrypt-unicode-string-functions-and-escape/
  1. <?php    
  2. function uni_decode($s) {    
  3.     preg_match_all('/\&\#([0-9]{2,5})\;/'$s$html_uni);    
  4.     preg_match_all('/[\\\%]u([0-9a-f]{4})/ie'$s$js_uni);    
  5.     $source = array_merge($html_uni[0], $js_uni[0]);    
  6.     $js = array();    
  7.     for($i=0;$i<count($js_uni[1]);$i++) {    
  8.         $js[] = hexdec($js_uni[1][$i]);    
  9.     }    
  10.     $utf8 = array_merge($html_uni[1], $js);    
  11.     $code = $s;    
  12.     for($j=0;$j<count($utf8);$j++) {    
  13.         $code = str_replace($source[$j], unicode2utf8($utf8[$j]), $code);    
  14.     }    
  15.     return $code;//$s;//preg_replace('/\\\u([0-9a-f]{4})/ie', "chr(hexdec('\\1'))",  $s);    
  16. }    
  17.    
  18. function unicode2utf8($c) {    
  19.     $str="";    
  20.     if ($c < 0x80) {    
  21.          $str.=chr($c);    
  22.     } else if ($c < 0x800) {    
  23.          $str.=chr(0xc0 | $c>>6);    
  24.          $str.=chr(0x80 | $c & 0x3f);    
  25.     } else if ($c < 0x10000) {    
  26.          $str.=chr(0xe0 | $c>>12);    
  27.          $str.=chr(0x80 | $c>>6 & 0x3f);    
  28.          $str.=chr(0x80 | $c & 0x3f);    
  29.     } else if ($c < 0x200000) {    
  30.          $str.=chr(0xf0 | $c>>18);    
  31.          $str.=chr(0x80 | $c>>12 & 0x3f);    
  32.          $str.=chr(0x80 | $c>>6 & 0x3f);    
  33.          $str.=chr(0x80 | $c & 0x3f);    
  34.     }    
  35.     return $str;    
  36. }    
  37.    
  38. $str='%u5927%u5BB6%u597D%uFF0C我是孤魂!<br />\u8FD9\u662F\u6D4B\u8BD5\u6587\u672C\uFF01';    
  39. echo uni_decode($str); // 大家好,我是孤魂!这是测试文本!    
  40. ?>  

这段代码以前也写过,而且,其实用的地方挺多,比如json的字符串(有些只是json处理了一下,但并不能完全转换,总不能强制变成json格式再转换吧?)
其实黑的很方便,而且这段代码在PHP手册中的注释里也出现过,但一下子找不到了,于是看到后就做了个备份罢了

version_compare

在项目中遇到点小问题。。。
比如:1.4.0与1.4.1对比。还有1.2与1.21对比
在初期的时候,我都是直接使用version_compare来对比的,但这时候就出现了问题

在国人眼中,1.21其实是1.2的后续版本,它是比1.3小的一个版本。但。。。version_compare即不认的。它认为1.21>1.2,当然1.21也>1.3。。。
好纠结啊。。。

后面没办法,对于1.4.0这种用version_compare了。对于1.21的,直接浮点数来比较了。NND

以后对版本号还是需要有一个规划,不能乱写啊