PHP @ 24 July 2008, “7 Comments”

PHPE好久没更新了”

每每听到热心的网友们和我说类似的话,心里就很不是滋味。

一直有想把 PHPE 重新发展的计划,也一直在给自己找借口。当时 PHPE 创建的时候,动机是那么的简单,现在条件比之前充足的多,却一直在逃避。昨天难得能静下心来思考。个人的能力是有限的,每个人有每个人的梦想,小团队有小团队的梦想。

希望国内所有 PHP 爱好者,所有关注过 PHPE 的朋友们,能一起为了梦想,加入我们的建设,为国内的 PHP 发展出份力量。

目标:尽可能的使用开源工具(我知道大家时间都很有限,花在该花的地方吧),搭建新的PHP学习、协作、讨论平台及线下交流平台

延续梦想,请关注 PHPE 重建计划,期待电脑前你的意见~ 🙂

讨论请移步http://club.phpe.net/index.php?s=&act=ST&f=7&t=13501&st=0

Tags:
IT, PHP @ 19 July 2008, “No Comments”

中国股市:http://apps.facebook.com/china-stock/

欢迎试用,并提出宝贵意见。 🙂

几个月前就有开发这个应用的想法了,不过一直没动手,这周差不多花了三个晚上的空余时间才搞定。很久没写过代码,手有点生了,还有就是在 FBML 的熟悉过程中花了太多的时间,稍候会再总结一下开发方面的经验。

Facebook 已经推出中文版了,什么时候开发者 wiki 也能中文化就好了, 目前上面中文的应用还很少,还需要国内的开发者一起努力。

Tags: ,
PHP, Programming @ 10 October 2007, “3 Comments”

插件说明
PressLine 用来根据你的 blog 内容生成一个时间线的图表出来,可以通过鼠标拖动查看,效果就像 GoogleMap 那样。点击这里 看本站的演示。

安装步骤

  1. 解压插件安装包,把整个 `pressline` 目录上传到你的 `/wp-content/plugins/` 目录下;
  2. 更改刚才上传的 `pressline` 目录权限为 777(Windows服务器用户可以跳过这步);
  3. 进入你的 Blog 后台,在 Plugins 菜单下激活 `PressLine` 插件;
  4. 上传插件包中的 `pressline.tpl.php` 文件到你目前在用的模板目录下;
  5. 建立一个新页面,命名为 `PressLine`,页面模板选择 `PressLine`,内容保持为空,发布该页面;
  6. 完成,在前台点击你新建立的 PressLine 页面即可看到效果。

Download:

Description:
A simple plugin used to display your blog entries on a ajax timeline. Just like the googlemaps.

Feature List:

  • This plugins base on the time line library called <TimeLine> at http://simile.mit.edu/timeline/
  • Support for WordPress 1.5, 2.0, 2.1, 2.2 and 2.3
  • Caches the output

read more »

先是看了 桑林志 上的介绍,第一眼就被这个效果吸引了,再看到 mulberry 希望有人做成 wordpress 插件的形式,于是偶的第一个 woredpress 插件就这样诞生了~ hoho~

效果可以 点这里 看到,在发布文章和更新文章的时候,数据文件会被自动更新,是在 mulberry 的代码基础上进行修改的。没啥技术含量。

经过 mulberry 的同意,可以让我继续用 PressLine 这个名称,喜欢的朋友可以 点击这里 进入下载页面。

稍候我会为这个插件专门做了一个页面(页面见此)。 使用过程中有什么意见请在这里留言,我会及时更新的。:)

== Feature List ==
* This plugins base on the time line library called <TimeLine> at http://simile.mit.edu/timeline/
* Support for WordPress 1.5, 2.0, 2.1, 2.2 and 2.3
* Caches the output

Database, PHP @ 17 August 2007, “2 Comments”

公司的数据库一直在用 mysql.4.0.x 的版本,用了几年了,不过现在连 mysql 官方都停止对 4.0.x 版本的支持了,升级看起来是大势所趋。搜索了一些这方面的文章,大家的作法不一,网上的文章也有很多错误的地方。

总结了一下,由于 mysql 4.0.x 的库都是 latin1 编码的,所以主要问题还是出现在编码转换上。

废话少说,下面是经测试可用的转换步骤,测试版本为

mysql4.0.26->mysql5.0.45-community

1.latin1->latin1 原来是 latin1 字符集的数据库,升级后保留 latin1 编码;
个人不推荐这种方式,如果数据库中有包含中文字符的话,还是换成gbk或者utf8编码比较好。

这种方式下,可以直接把 datadir copy 到新的mysql 的data 目录即可,如果数据库中有包含中文,可能用 phpmyadmin 会看不到正常的结果,不用担心,用其它客户端连接的时候,都是可以正常输入和输出的,注意在用 php 连的时候,不需要加 set names xxx 字样;

2.latin1->gbk 原来是 latin1,升级后是 gbk
两种方法:
1) 修改 my.cnf,在 [mysqld] 中加入

default-character-set=gbk

后重启 mysql 服务,然后就可以直接把 datadir copy 过来了,前提是整个库中都是 gbk 编码的库的时候才建议这样,而且copy 过来后,my.cnf中的那行 default-character-set 不能再动了;
2) 手工在新服务器上建立需要的库,字符集选择 gbk,然后在旧服务器上先用 mysqldump 导出为 sql 文件,在导出的 sql 文件的起始位置添加 set names gbk; 在服务器上用以下语句导入:

mysql -u xxx [database] < xxx.sql

这种方式转换后,php 连接数据库后需要先执行 set names gbk;

3.latin1->utf8 原来是 latin1,升级后是 utf8

手工在新服务器上建立需要的库,字符集选择 utf8_bin,然后在旧服务器上先用 mysqldump 导出为 sql 文件,在导出的 sql 文件的起始位置添加 set names gbk; 在服务器上用下面的语句导入:

mysql --default-character-set=utf8 -u xxx [database] < xxx.sql

这种方式转换后,php 连接数据库后需要先执行 set names utf8;

另外有一点要注意的,4.1 版本开始,mysql 的用户密码算法有改变,php5 才支持这种新的验证方式,如果你还是使用 php4,可以在 my.cnf 的 [mysqld] 中多加一句:

old_password = 1

IT, PHP @ 25 January 2007, “4 Comments”

公司的发布系统要升级,之前一直用的是ftp发布,现在计划用直接写到远程目录的方式来发布,本来想当然的认为肯定会比ftp发布速度要快的多,多亏 Alge r提醒我要测试一下再下结论,不测不知道,一测下一跳:

  • 测试对象:6000个文本文件
  • 通过 php 的 copy 函数 copy 到已经映射到本地的目录中,用了 350 秒;
  • 通过 php 的 copy 函数 copy 到本地磁盘的另一个目录中,用了 80 秒;
  • 通过 php 的 ftp 函数,连接另一台服务器的内网IP,上传,用了 25 秒。

实在想不通为什么会是这样的结果,FTP协议难道是经过了某种优化的吗?再怎么优化也是远程操作啊,怎么会比本地操作快呢?

要么就是 PHP copy 函数有问题……

Tags: ,
PHP @ 07 December 2006, “1 Comment”

本期主要是围绕 PHP/MySQL/Apache 的加速、优化文章。
目录如下:

* PHP & Memcached (Nio)
* 使用 memcached 实现对象的自动缓存 (cid73)
* XCache: 加速你的 PHP (Static)
* 扩展 PHP (Ben)
* MySQL 集群技术简介 (叶金荣)
* LAMP 系统优化实例分析 (Dalamar)
* Subversion PHP Binding (sirtoozee)

点击此处下载!

PHP&MORE vol7

Tags: ,
LooPo, PHP @ 03 July 2006, “4 Comments”

乐铺的服务器不支持 apache url rewrite,所以之前的网址都很“丑陋”,比如:

http://www.loopo.cn/items.php/110
http://www.loopo.cn/forum.php/1/100

因为这个原因,被几个朋友BS了几次……

今天在 DB 的时候,忽然想到一个办法:乐铺的服务器是支持自定义 404 页面的,这样的话,就可以把所有的请求定位到这个 404 页来处理了,即所有的页面“都是 404”,然后再统一由 404.php 来处理重定向。

read more »

Tags: , , ,
Life, PHP @ 22 June 2006, “No Comments”

2006.6.26 UPDATE:

开始预定:预定页面 http://t.phpmore.com

以下图片可点击放大。预计7月1号之前接受预定。
感谢vicki的热心和Nio的美工。

黑色正面

read more »

LooPo, PHP @ 27 April 2006, “6 Comments”

在解决乐铺的 tag 排序的问题上,碰到一点麻烦。原因出在乐铺的所有 tag 列表页:http://www.loopo.cn/tags/

刚开始是按照 tag 数量的多少排序的,这样最简单,不过缺点就是没有“公平对待”每一个 tag,特别是用了 tag 云状显示结构以后,最大的 tag 在前面,最小的在后面,看起来很不舒服。

后台改成了按 tag 的 name 排序,在数据库中是直接 ORDER BY tagname 操作的,这里又体现出来了汉字的“优点”,英文里面,只要 order by 一下就会按 a-z 的顺序列出来了,汉字可不行,这样做顺序是打乱了,显示的效果也好一些了,不过缺点也显而易见:没有规律性。想找一个特定的tag比较困难。

再后台想到了按汉字的拼音排序的想法,搜索了一下,之前有收藏过一个函数可以把汉字转换为拼音的,原理是通过判断区位码的方法来实现简单的拼音转换的。在本地简单测试了一下,正要往上用的时候,又有麻烦了,原来这个转换是从gb2312到拼音的,乐铺上的用的编码是utf8格式的,死活转不过去。还好服务器有支持iconv函数,又通过 iconv 转换了一次,这才正常。

使用过程中发现存在的几点问题:

  • 1.有很多生僻字都不能正确转换,好像只有国标里的汉字才可以;
  • 2.多音字处理不好,有时候转换出来的拼音莫名其妙。

上面两点问题在应用中用其它办法弥补一下就可以了,等有更好的解决办法再说吧。嘿嘿!

补充:后来在PHPCLASS发现了一个更强大的类,Chinese Text Conversion,乐铺现在用的就是这个类。有兴趣的朋友可以下来研究一下。

Tags: , ,