您正在查看 "默认分类" 分类下的文章
2009-11-17 23:54
正如我们知道的,PHP的数据结构zval的zvalue_value 字段是一个只能存储long、double、string、HashTable、Object类型的共享体。但我们在扩展中,我们可能会使用许多种自定义数据类型,这些类型如何导入到PHP中呢?资源型变量是一个非常方便的解决方式。
下文会给出一个非常简单的例子,将一个自定义类型以及相关API包装入PHP。
万里长征第一步,我们开始制作一个dll吧!在这个dll中,我定义了一个结构体类型,并定义、导出4个操作它的函数。文件如下:
|
2009-11-03 11:58
出于业务的需要,和其它部门约定了一个非常复杂的Soap参数格式(多维数组)。他们提供的Soap是使用.Net写的,使用PHP,采用 SoapVar 和 SoapParam 无论如何都无法构建出和 .Net 给出的描述差不多的Soap请求(使用 __getLastRequest 得出)。
搞了一个多小时,郁闷了,看着 .Net 给出的调用说明,一股想Hack Soap的想法油然而生。NND,为什么不能设置请求体呢?要是能设置请求 |
2009-11-01 17:10
原文: http://devzone.zend.com/article/4486
很久之前,当我遇到这片文章的时候我就将其收藏了,这段时间停了下剑三,而且今天北京下雪,所以想将它翻译一下。不过本人因为换USB无线网卡的原因,Linux系统已经完全格掉了,现在是个纯粹的Windows流。Now,下面给出在Windows下的实践方法。
注,请不要将原文的源代码与本文的源代码混用,在有些地方可能不尽相同
阅读本文不需要参照原文,不需要使用原文中的前置步骤(其讲述的是在Linux下的构建步骤)
从cn.php.net |
2009-10-25 22:32
1、每天吃饭的时候,我们会去食堂拿餐具。然后很多人同时拿着餐具一起夹菜,呵呵这就是并发!但等等,你见过把菜夹到别人碗里去了的哥们么?为什么没有出现我说的情况?我想要点有如下几点:
a、每个人手里的餐具在这段时间内是专属与他一个人的
b、不管在夹什么菜的时候,他手里的餐具还是他自己的那个
这就是线程局部变量(Java文档中给出来的例子比较费解,这里给个简单的版本,没有做任何包装)。
|
2009-10-25 21:33
1、为什么要考虑并发?
请看如下命题,我有10个Worker对像,每个对象会发10次言,每次发言时首先会将自己的名字打印在发言内容之前,然后,紧接着会发表发言内容(内容是 10 个字符 g),发言完后换行。(代码请看下面的 并发.Worker 下的 say 方法)

执行结果如下:
Thread0Thread3gggggggggg
Thread3gggggggggg
Thread3gggggggggg
Thread3gggggggggg
Thread3ggg |
2009-10-25 15:33
一直以来,我很少写关于游戏的内容,虽然它现在是我工作之余的主要内容。
其实凭心而论,剑三现在做的也是相当不错的,即使刚开始游戏内容不怎么丰富,但游戏的平衡性还是值得赞赏的。
目前,论坛里各个门派都在叫嚣自己门派太弱,以删号为要挟,要求金山加强自己门派。实际上,估计这正是金山目前还没达到暴雪的一个明显例证。要是暴雪,早让玩家死心了!爱玩不玩,休想靠口水操纵平衡性。
只说说我对熟悉的门派的理解吧。
|
2009-10-25 12:19
一直以来我都有些话想说,今天,我就让天下所有PHP玩家鄙视吧。
曾经的时候,我也像各位一样,抱着一腔热血,坚信只要扩展就能救PHP。但是,大约一年前,我已经不这么认为了。当我提出一个性能问题的时候,总有人会提出用扩展解决,但实际上,我相信,给出这种建议的人估计是没有真正的使用过那个扩展或者是压根没有维护服务器的经验,不知道问题的根本在哪里,完全是意淫。
如果我一直这么说下去 |
2009-10-20 16:19
常常有需求制作一些小工具,无论是服务器端的还是客户端的。通常来说,我并不认为图形界面是必须的,但不得不承认,有时候有个图形界面确实还是蛮爽的。
上周,同事基于我之前编写的SQL Proxy制作了一个图形界面工具,其PHP的客户端代码翻译成C++、最爽的是,利用QT提供了一个明显比print_r优秀得多的显示效果。
很久没有编写过GUI的程序了。虽然QT看起来确实很舒服,但开发效率个人觉得还是不够高。这里,我还是想介绍怎么使用Java在一个小时内编写这种小工 |
2009-09-14 15:36
对PHP的Session不满很久了,一直以来都缺乏一个很好的Storage。默认的file,不看日志还好,一看总会吓一跳,毛毛多的session_start slow(机器负载很轻、IO也没有任何问题),google一下 session_start slow,抱怨的人还真不少。
存储到Memcache里去吧,Memcache的LRU(slab内LRU,即使Memcache还有空闲内存也会丢失数据)真是一个问题,常常发现Session还没超时,session就找不到需要重新登陆了 |
2009-09-12 12:42
离上次更新Blog确实已经比较久了,不过各位朋友请放心,偶还活着,正在剑侠的世界里行侠仗义,一心一意的做一个好铁匠...
公测后,我还是练了一个纯阳,不过这次是专心练的气纯。偶尔看看论坛,也会提到纯阳是最飘逸的一个门派,但在公测之前,我从来没觉得。现在,我终于领会了,飘逸是一个什么意思了。
纯阳的血 |
2009-08-06 23:38
自从Google app支持Java之后,就有若干发烧友采用越狱方案把自己的Web应用放到Google上。第一时间,我也试图在Google上放个博客,采用的方案就是Quercus(后来,因为发现写那玩意儿必须安装Eclipse,我的机器运行这玩意儿太凑合,于是就放弃了)。
几个月后的今天,作为PHPe的老会员偶尔回去看看,居然发现PHPe也在采用 Quercus 运行 PHPWind的方案了,惊奇啊!!!同时,同事现在也准备利用Java越狱Google,于是重新看了看Quercus。本人对 Q |
2009-07-31 21:51
2009-07-11 14:06
测试环境:
网上下载的版本均不能很好的满足我的要求(主要用于资料分析),重新改写了一下(和网上的开源版本已经没有任何关系了,即以下 IpSeeker类、该类线程安全、并在我的适用范围下更快速)
Intel 1.6G(奔腾双核),内存2G, Windows XP Sp2、Java SDK1.6
10线程生成、解析IP得到上述结果(从任务管理器上看,CPU利用率不高)
测试代码(IpEntry既是返回的IP信息,除了纯真的所有信息外,另带加工后的省份编码):
|
2009-06-12 11:00
function clean(o)
{
var oc = o.childNodes;
for(var i = 0; i < oc.length; ++ i )
{
o.removeChild(oc[i]);
}
}
是无效的,请用:
function clean(o)
{
while(o.childNodes[0 |
2009-06-04 15:09
因为游戏的需要,需要通过Oracle连接到MySQL下。
笔记如下:
先安装UnixODBC(http://www.unixodbc.org/),下载最新版源代码。解压缩,默认选项编译安装(--enable-gui=no, 因为都没有安装x或者gnome)。
安装MySQL(http://dev.mysql.com/downloads/mysql/5.0.html), 我还是喜欢 5.0 系列的,5.1 连INNODB都搞没了(需要自己装Plugin),下载源代码解压缩,指定路径编译安装(--without-server --enable-thread-safe-client) ,注意一定要线程安全的客户端,否则后面的 MySQL ODBC Connector 装不了。( |
|
|