您正在查看 "Php" 分类下的文章
2009-10-09 23:09
因为一些原因,花了一天时间将原来的基于XML-RPC的调用改为直接通过TCP协议完成,不再走HTTP协议(不再使用繁重的XML通讯,采用 phpserializer 传输)。服务基于MINA,实现特定的Codec也不困难,但最麻烦的事情在于:在Linux下,读取一个socket中的内容,无论是采用 fread($sock, 4096) 还是 stream_socket_recvfrom($sock, 4096) 在Linux (Windows没问题)下都不能保证正确的读出指定长度(4096byte)。也就是说:
|
2009-08-24 18:22
一直在Oracle中写存储过程,直到发现反恐居然也使用MySQL写存储过程。
编写MySQL的存储过程很容易。例如,创建表结构:
CREATE TABLE IF NOT EXISTS `ooo` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`sex` char(1) CHARACTER SET gb2312 NOT NULL,
`age` smallint(3) unsigned NOT NULL,
`money` float NOT NULL,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk
编写存储过程创建测试 |
2008-11-07 14:17
在邮件列表的帮助下,终于成功的定义了一个类
(方法声明、宏)
类方法入口表:

类定义:
|
2008-06-02 21:50
偶尔上pecl看了看(很久不上了),居然发现llvm在pecl上居然已经放了占位符了,期待啊,真让人激动,所以又到其他的地方看了看,居然发现了一个怪胎。vld,pecl上的介绍是
The Vulcan Logic Disassembler hooks into the Zend Engine and dumps all the opcodes (execution units) of a script.(这个玩意儿可以深入Zend Engine将所有的opcodes(代码的执行单元)弄出来给你看看)
|
2008-03-24 15:08
我一直不认为自己是个老鸟,也一直避免给新人以意见,这段时间忙于找工作,也很少光顾论坛了。偶尔回学校论坛,看到有人转帖了一个关于PHP文件上传的文章,文章很旧,应该是 PHP3 时代的例子了,于是本人写了这篇文章,有点小题大作,还望见谅。
【为什么分离逻辑和视图】
很多人讨厌使用模板,讨厌Smarty,虽然我觉得Smarty是我见过的最好的设计之一,但我尊重他们的意见,不强求使用模板解释引擎。但是在如下例子中,我将讲述一下分离逻辑和视图的好处。
例子还是这个:PHP文件上传。
场景1:不分 |
2008-02-14 11:19
2008-02-13 17:37
2008-01-02 16:05
看见agxle blog中有篇C#目录遍历的文章,想想PHP这方面的还真的很少,多数都是函数递归直接echo的。
缺少这方面的文章主要是技术含量太低吧,这里给出两种方法遍历目录:
函数dir_iterator($path) 递归遍历目录,并将 目录下所有文件路径作为一个数组返回
第二种方法,不使用递归,采用for循环遍历目录(这里采用了类,您可以使用 Dir_Iterator::getFiles() 以及 Dir_terator |
2007-12-17 11:04
早先问过BleakWind,他认为,给别人做的话MySQL内存表做会话比较好一些,因为MySQL内存表做Session更容易维护(可以制作安装脚本)。这个周末,我进行了一些测试,测试MySQL MyISAM表做会话(对时间给不给索引)、内存表做会话、MemCache做会话的效率比较。
定义会话Session类:
定义会话处理器接 |
2007-12-11 18:48
这次的项目要求六种语言。我还是采用了老行头、仍然是 Zend_Framework(虽然上个中 Code Ignitor给我的影响实在是太好了,不过毕竟不太容易扩展,扩展多了容易乱) + Smarty。
语言翻译使用 Zend Translate ,不过要将 Zend_Translate 直接整合到 Smarty 的模板中去则不是一件容易事(register_object 之类的写起来太过麻烦)。
好消息是 Smarty 是一个高扩展性的模板引擎,可以自己创建一个种标签表示其中的东西需要被Translate,然后创建一个 prefilter ,注册进去,在 Smarty 的模板编译之前将我们自创的Transla |
2007-11-21 17:18
多数时候简单的pack ,unpack 基本上不会出现问题。例如下面的代码也运行良好:
<?php
$pack = pack('a10', 'wps2000') . pack('a3', '男') . pack('S', 23);
$unpack = unpack('a10name/a3sex/Sage', $pack);
echo 'Name is ' . $unpack['name'] . ' and sex is ' . $unpack['sex'] . ' and age is ' . $unpack['age'] . '
';
echo strlen($unpack['name']);
=================================================================
运行结果 strlen得到正确的 7 而非 10.
|
2007-11-21 16:56
这几天在论坛上看见某人发了篇PHP设置只读属性的文章,其实就是翻译的手册。下面trooman说,使用Reflection获取比较拽!
试了一下,利用反射获取对象的private属性果然还是搞不通滴(PHP还是想到了,防止有人会绕弯)。Every Thing Is Ok!(要不通过反射可以setValue ,天下足以大乱了)
<?php
class A
{
private $_a = 10;
private $_b = 20;
public $_d = 13;
}
$a = new A();
$reflector = new ReflectionObject($a);
$methods = arr |
2007-11-20 11:26
我们公司做了个使用Flash做视频聊天的项目,Flash是外包的,amfphp的服务还得我自己写。我比较讨厌amfphp低版本的mathod申明,所以采用了纯PHP5的1.92,毕竟是Beta版本,Bug还是蛮多的
一个月前就发现了,这次做外包的那位老大再次遇到这个问题(是别人的项目了):
amfphp1.92 传递给他的参数,如果是字符串的话,起始的字符串是一定不能以数字开头的,否则貌似他自动会int一次,然后除了最前面的数字被保留了外,其他的全部为被抹掉。
恰好我们公司的密码等信息是mcrypt加密之后(二进制)然后我unpack为 |
2007-10-18 12:15
看了看我的博客上的访问列表,有个aicom(实际智能)的网友,于是进到他的博客去看了看。其中有一片 PHP递归 的帖子,代码写的比较含糊,貌似是求菲波拉契数列的,不过与题目却没什么关系,根本没有用到递归:
原文您可以到他的博客上去看,不过在这里我想说的是,递归效率实在是太低了。低到无法忍受的地步了。
aicom原文中的代码(循环做的)执行效率(show(45))(使用 gettimeofday(true) 环绕 echo show((in |
2007-10-17 12:46
我对这个不是太感冒,可能跟我一向没有做过太大负载的网站有关吧。根据我的经验,MySQL比我们想象的要强一些,很快。PHP + MySQL已经够快了,没必要追求那点人根本感觉不到的速度差异而丧失实时性。
但是貌似这个世界上抱有和我一样想法的人不是太多。还是有很多人在对这个发帖、回帖。
这里,我提供另外一种思路,不需要对原有的程序做多大更改实现页面的Cache。
库:
LibCache.php
|
|
|