以前用PHP做数据缓存的时候一直是将数据序列化(serialize)后存入文件,取出时再反序列化(unserialize),这样做除了效率低点没有其他问题。读取文件再解析,当然不如直接include来的快,这时候就要求缓存是以PHP代码的形式存储的,这里可以用到PHP的 var_export 函数,其返回的代码可以直接存储。这个方法貌似不错,但问题也来了:
Fatal error: Call to undefined method stdClass::__set_state() in xxx
__set_state()是PHP 5.1引入的一个魔术函数,接受一个数组作为参数,主要用在var_export的时候进行递归处理。可是使用的前提是得先定义啊~
我习惯的数据存储方式都是用的stdClass,ezSQL默认从数据库取出来的数据结构也是以stdClass形式进行存储的……这下麻烦大了,stdClass本身是不存在__set_state()这个静态方法的……没辙了……只好改为数组……唉……
今天的牢骚没有结论,导出对象有除了序列化有没有更理想的方法呢?还是我真的就只能做数组的缓存了?
ps:有人已经向PHP提出申请了,哈哈~
http://aspn.activestate.com/ASPN/Mail/Message/php-dev/3713102
很多朋友问我WordPress标题转换成图片的插件是什么,其实我用的根本就不是WordPress,所以我也不知道上哪去找这个插件。我将标题转换成图片的目的只有一个,就是让标题的中英文混合排版看起来更美观。另外的话,字体也不是微软雅黑,而是LINUX下面的一款开源字体。
终于开始加班了,时间不多,上海的天气也格外热。我不是商人,对自己的产品总是处在犹豫不决之中,一改再改,看来要推出某样东西真不容易,哪怕是一个小小的脚本。
现在晒晒我的Blog后台,开发完成到现在已经蛮久了,没有怎么动过,后台风格借鉴WordPress,设计思路还是蛮中文化的。看到的朋友请拍砖。
控制面板
.jpg)
阅读全文 »
1、工作&上班
工作算是稳定下来了,上班已经将近一个月。每天又开始定闹钟,挤公交,虽然上班时还是呵欠接连不断……失业太久,还真有点缓不过来。
招人进去的主管让我谈谈什么是“积极主动”,呵呵,其实嘛,工作只是副业,最重要的还是我自己的理想和追去。所以呢,谈不上积极主动,也不求上进和升职,只是自己的技术绝对不能退步。
2、同学&朋友
同学从河南赶过来上海看演唱会,居然还是站票,对摇滚的热情近似我对电脑的热情,实在是佩服……有激情可真好。人问我,一个住着会不会有特别空虚寂寞的时候,想想,其实我呢,倒是希望安静,有网线就行,一个人躲在安静的角落里敲着键盘,偶尔看看连续剧,这样的生活挺好。
我大概有点疯了。
3、渴望&追求
我也渴望成功,只是我对自己代码的进度不甚满意,加上涉及美工一方面的东西就更是烦恼了。唉,似乎真的没有目标了。
代码维护是个很大的问题,没有免费的SVN服务器,Google Project Hosting实在太慢,而且只是提供给开源项目,所以就一直自己折腾。相当麻烦。
现在所在公司的代码也不咋的,顺便鄙视下。
1、编译Subversion遇到的问题
configure: error: APR-UTIL was installed independently, it wont be
possible to use the specified Berkeley DB: /usr/local/BerkeleyDB.4.4
网上的说法很多,费劲一番周折还是没有解决,最终解决办法,使用SVN自带的依赖包,即同时下载这两个文件:
-rw-r--r-- 1 leerais leerais 6604640 2008-07-05 18:20 subversion-1.5.0.tar.gz
-rw-r--r-- 1 leerais leerais 3257964 2008-07-05 19:11 subversion-deps-1.5.0.tar.gz
然后解压到一块就行了,至于编译选项,就不要舍近而求远了,不用指定 arp、arp-util等选项,直接编译就行。屡试不爽啊!
SVN源文件链接:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&expandFolder=74
2、MySQL远程连接遇到的问题
leerais@debian:~$ mysql -h 192.168.2.2 -u leerais -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
具体原因我没找着,知其然而不知其所以然,解决办法是在你的MySQL配置文件,一般是 /etc/my.cnf 里面加入下面这一行:
skip-name-resolve
以下是我的部分配置文件:
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
skip-name-resolve
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M