摘要:
PHP 中的整数是 C 语言的中的long 类型,是有符号的,最大值是 2^31 。在 64 位平台上,long可以达到 2^63.这样的话,有些PHP 函数输出的结果在各个平台上就会不一致了。php -r "echo ip2long('255.255.255.255');" 在64位平台下是: 4294967295, 在32位平台下是 -1。还有比如 filesize 在 文件 大于 2G的时候... 阅读全文
摘要:
今天升级 vC++ 2005 到了 sp1 ,突然发现自己写的程序 无法在同事的机器上运行了。在博客园找了很多的资料,比如大智若愚的: http://www.cnblogs.com/riky/archive/2007/05/11/743310.html可是对于我,依然无效。 情况是这样的,以前的程序版本都是 用 vc 6.0 写的,我只是修改了其中的一个dll,这个dll 用 vC++ 2005 ... 阅读全文
摘要:
最近在雅虎的一个朋友和我说,以前用bash csh 写脚本, 它现在都在用PHP 写后台程序,觉得PHP的函数最全,而且很容易用 shell_exec 很容易调用系统内核。我和他交流了一下写后台程序的一些原则,归纳如下。 首先,要去掉以前写网页脚本的一些思维习惯。网页脚本运行一次以后,就马上释放内存。而daemon 程序不一样,它会一直运行一年,甚至几年。1. 作为一个好的习惯,一定要在while... 阅读全文
摘要:
PHP的扩展开发的确是一件很不容易的事情。我已经开发了好几个扩展了,可是每次都会遇到问题。很多问题,没有手册,根本就是让人束手无策。只有耐心的读它核心的代码,特别是出错部分的代码,才能找到一些端倪。 对于新手来说,首先要搞清楚里面的基本的概念。这点很重要。基本的概念有: PHP 程序的生存周期 thread safe unthread safe PHP 全局变量 PHP 预定义常量 zval 内... 阅读全文
摘要:
google的PageRank,虽然各大网站都能查询,但是,具体是从google 哪个数据源来的?幸运的是,google tool bar上有pagerank的值。Sniffer 会告诉你,大概是从:GET /search?client=navclient-auto&iqrn=-WM&orig=0BATi&ie=UTF-8&oe=UTF-8&features... 阅读全文
摘要:
Javascript 函数纷繁复杂,调用方式也是多种多样。但是,不是说其基本的规则就十分的复杂。当然,这些东西只是我个人的理解,用于帮助记忆。1. 原则1 : 函数名是只是变量,它的值表示一段代码。从C语言的角度来说,函数的名称只是一个地址指针。只是,这个指针式只读的。你完全可以定义自己的指针来调用函数。JavaScript 也是类似的。比如下面的代码: function alert(x) { d... 阅读全文
摘要:
C语言的内存分配,有很多的注意点。1. int 的大小问题。int 在不同的编译器下大小是不一样的。在tc下是2位,在 vc 下,和 long 一样,是4位。2. memset 不是用来分配内存的,而是设置某个区域的内存为某个值,这个内存区域必须是可以修改的, 而且是已经分配好了的。 这个函数的原型为: void *memset(void * _Dst, int _Val, size_t _Siz... 阅读全文
摘要:
今天写了一个js,保存成了 utf-8的格式,调用它的网页是gb2312的。结果,报了一大堆的错误。其中,这样格式的数组(var a = ["我", "是"])都报错 except [ .后来发现是 .js 里面有中文,解析的时候有乱码干扰了。 解决这个问题很简单:在加载 <script> 的时候,加个charset 属性 为 utf-8 就可以了。 阅读全文
摘要:
js 判断图片已经加载完成 是一个很常见的问题,网上也有很多的解决方案。但是运行后很多都不兼容,或者说,存在一些奇怪的问题。一种解决方案是都用onload。因为onload 在ie 下有同步方面的问题。所以,我用了 onreadystatechange 。 代码和 使用方法如下:[代码]这段代码可以实现 获取一个远程图片的宽度。 阅读全文
摘要:
[代码]看看上面的表达式,最后的结果是什么呢?其实,这个表达式看上去很奇怪,其实非常有用。很多时候,你要判断一个元素是否属于某个集合,一般先定义var set = ["a", "b", "c"];然后写个函数,inArray,判断是否在这个数组里面。现在你不需要这样了,就像上面一样,先建立一个对象{ tradition:"tradition", ie:"ie"}然后用数组下标的方式取对象的值obj... 阅读全文
摘要:
写软件,很多时候都让我感觉很矛盾,经常顾此失彼。写的太灵活了,项目时间不够,写的不灵活,客户一反馈,改的又很惨。以前想看看什么设计模式的,可是,看不太懂,感觉懂了,也不知道怎么用。复习复习了什么软件工程,什么瀑布模型,简直就不太搭边。最近写了一个中文分词系统,里面我懂了不少东西,希望和大家分享。 这个分词系统,和普通的分词系统差不多。就是一篇文章,用一定的算法把词切开了,还有可能要计算关键字,词频... 阅读全文
摘要:
如果说,C 语言比较有特色的东西是什么。我觉得就是,讲指针,数组,地址算数结合在了一起。当然,这也引起了一些问题,使得,C语言的程序非常的灵魂,有些时候,一些写法对初学者还比较的晦涩难懂。比如复制字符串,可以有下面的几种写法。[代码]反正个人感觉,要能很轻松看别人写的C代码,还是要花点功夫的。要真正理解这些东西,就必须对基本概念有所把握。1. 地址:每个变量,都在内存中有个地址,这个地址就是调用这... 阅读全文
摘要:
今天有个网友发信问我它开放了一个 php 的扩展,release 的版本是能运行的,但是这个debug的版本 不能运行。其实,基本原理很简单,PHP的内核 在 php5ts.dll,如果你是debug 版本的, 那么就要调用 php5ts_debug.dll 。这个dllphp 官方没有提供,不过你可以重新编译PHP得到。当然,重新编译PHP的话,在windows下是一项艰巨的任务。 还有,php... 阅读全文
摘要:
object 和 embed 一般结合起来 在网页 里面嵌入 flash。比如下面的代码:[代码]先不说这个写法的意义。先看看各自的用法和定义:<embed> 标签是 HTML 5 中的新标签,但是,现在大多数浏览器已经支持,它定义嵌入的内容,比如插件。<embed> 标签必须有 src 属性。 您无法在开始标签和结束标签之间写文本,来说明旧式的浏览器不支持该标签,就像 &... 阅读全文
摘要:
今天突然看到一年前写的 mysql 优化(一),感觉有些误人子弟。今天再补充一些东西。关于引擎选择,从理论上 和 实际上 可能会有差距,所以,对待mysql 要有实验精神。一般来说,MYisam 适合:1. 做很多count 的计算。2. 插入不平凡,查询非常频繁。3. 没有事务innordb 非常适合:1. 可靠性要求比较高,或者要求事务。2. 表更新和查询都相当的频繁,并且表锁定的机会比较大的... 阅读全文
摘要:
想和天下所有的女人说,请给男人面子。 阅读全文
摘要:
前一段时间一直做C++ 的开发,用惯了 Visual Studio 。今天用了 zend studio 6.12,非常的不习惯。调试的时候,经常卡死。写代码 Ctrl + s 也经常卡,非常无奈。上网搜索了一下,发现zend studio7.0 出来了,马上下载下来看看。安装了一下,在安装的时候,居然跳出了安装 Microsoft Visual C++ 2005 SP1 Redistributab... 阅读全文
摘要:
我翻遍了Google, 也没用找到一篇真正能运行的C++ 下面 开发 PHP 扩展的文章。于是,我又翻遍了pecl,看看有没有例子。
发现还是没有。唯一能看到的几个是:Linux 下面 开发 C++ 扩展的文章,一试,发现时 php 5.0 beta 时候的文章了,都已经
过时了。无奈只能自己摸索。 阅读全文
摘要:
根据2元统计语言模型,最优可能的一种划分s1,s2,..sn 满足下面的值最大:P(s) = max(p(s1) * p(s2|s1)* ... * p(sn|sn-1);一般两边取对数 lnp(s) = max(ln(p(s1)) + ln(p(s2|s1)) + ... + ln(p(sn|sn-1)))那么一条路径的长度为:wi = ln(p(si|si-1))但是,在中科院分词系统的源代码... 阅读全文
摘要:
Zend Studio For Eclipse 代码提示功能经常因为更改 系统的编码等一些问题而出问题。你重新编译,有些时候,重新加项目都不行。用下面的方法可以解决:在一个 你的 正确的项目中,拷贝下面几个文件:.cache.settings.project把.project ,里面的name 里面的内容 改成现在的项目的名字。刷新一下项目,就可以了。如果再不行,重启 Zend Studio Fo... 阅读全文