HOOK的发展

非常遗憾,HOOK的发展史不是那么清晰可见。事实上,HOOK到底是什么,很多人的说法都不一样。 最早是在操作系统中出现的HOOK概念。在Unix/Linux/Windows中都有类似概念。当时提出的目的在于,允许用户在系统调用过程中,插入自己的代码处理特殊事情。典型的HOOK就是用自己的功能替换原有的函数点,在处理完成之后,又恢复原有的函数点。(这里“点”就是表示一个可以使用HOOK勾住的位置)。 下面是《关于钩子》中,描述的Windows是中的钩子: 在Windows中,钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。[……]

继续阅读 »

WordPress MU 更新分类名字时分类ID也发生变化 问题解决

在使用WordPress MU作为CMS二次开发一个多用户多站点的网站,遇到了一个问题:在修改文章分类(category)名字的时候,这个名字对应的分类ID(cat_id)也会发生变化,这样就没有办法建立一个统一的网站分类框架,也就没办法批量操作。 为了解决这个问题,开始从后台修改分类的页面查起,逐渐找到问题所在,路径如下: wp-admin/category.php在category.php页面查看源文件找到修改分类的表单action指向category.php,同时传递了名为action值为editedcat的隐藏表单变量;于是查看category.php源码,找到关键词editedcat,发现处理传入的POST表单变量是被wp_update_category()这个函数处理的;在wp-admin/includes/taxonomy.php文件里找到这个函数的定义,这个函数又调用了wp_insert_category()函数。函数wp_insert_category()首先判断是更新(updating)还是新增(creating),如果是update,则调用函数wp_updat[……]

继续阅读 »

Limesurvey 1.85+ 统计模块pChart中文乱码问题解决

由于Jpgraph是收费的,并且需要自己安装,Limesurvey在1.8的某个小版本上抛弃了Jpgraph,改用开源的pChart,并且内置在程序内。这类PHP画图的库默认对中文的支持都不完美,Jpgraph默认中文也会乱码。 针对pChart乱码问题,网上一般的解决方法就是说需要选择一个支持中文的字体,有一篇文章提供了较多的经验: 另外需要注意的是中文支持 1.如果有中文需要配置一个ttf的中文字体,否则会乱码; 2.数据,php,显示页面编码都设置成统一的编码,否则也会乱码,我统一用UTF8. 然后在/admin/statistics.php里设置字体,不起作用;按照编码的思路检查数据库编码、页面显示编码以及php编码,都是清一色的UTF-8 无奈了,突然想到既然pChart被集成进去,Limesurvey的设置文件是不是有关于pChart的设置,找了一下config.php,没有,原来在config-default.php里,在这里设置了字体,然后删除/tmp里的png图片缓存,刷新刷新刷新,不起作用 过了一会儿再试一下 好了。。。 总结一下,设置[……]

继续阅读 »

php中搜集了几个常用函数

文件读取函数    //文件读取函数    function PHP_Read($file_name) {    $fd=fopen($file_name,r);    while($bufline=fgets($fd, 4096)){    $buf.=$bufline;     }    fclose($fd);    return $buf;     }    ?> 文件写入函数    //文件写入函数    function PHP_Write($file_name,$data,$method="w") {    $filenum=@fopen($file_name,$method);  &#1[……]

继续阅读 »

extract compact函数~

很好用的两个php函数,一个将数组元素解压出来,一个是将元素压缩到数组里,与WinRAR之类的压缩解压程序神似哈~

compact() 函数创建一个由参数所带变量组成的数组。如果参数中存在数组,该数组中变量的值也会被获取。
本函数返回的数组是一个关联数组,键名为函数的参数,键值为参数中变量的值。

本函数执行的行为与 extract() 正好相反。
<?php
$firstname = “Peter”;
$lastname = “Griffin”;
$age = “38”;
$result = compact(“firstname”, “lastname”, “age”);
print_r($result);
?>[……]

继续阅读 »

SecureCRT 中文字体解决方案

利用SecureCRT远程访问Linux主机,经常会出现中文内容乱码的情况,经过综合搜索解决了这个问题: 1.在“会话选项”的“终端->仿真”里面选“Linux”或者x-term,如果需要显示颜色的话需要把“ANSI颜色”选上 2.在“外观->字体”中选择喜欢的字体,但这里对字体是有要求的,只有等宽字体才行。如果要正常显示中文的话,所选择的字体还必须包含中文字符。编程最合适的字体之一,也是我最喜欢的字体Monaco不行的,这个字体显示英文非常好,但是不含中文字体;有网友做了修改,著名的YaHei.Consolas就是其中的一个,但是我在SecureCRT测试并不能选择中文字符集;又找到一个叫做“Yahei Mono”的网友修改版,非常好用 在字体设置页面可以选择GB2312的中文字符集 简单的说这部分需要注意两点:a.选择一个支持中文的字体 b.这个中文字体必须支持GB2312的字符集 3.会话选项->终端->外观->字符编码 一般选择UTF-8,如果不确定可以在远程linux主机上,用echo $LANG看一下系统默认编码 一般是zh_CN[……]

继续阅读 »

分区丢失 显示未格式化或者为空的解决办法

        昨天某客户扛着ASUS F3SR找上门来,进入PE之后,发现磁盘最后一个分区变成了空白可用空间。         首先请出Winhex(下载地址:http://www.newhua.com/soft/1509.htm),这位强大的十六进制编辑器。点击“工具→打开磁盘”打开硬盘,发现丢失的分区。不过分区DBR全部丢失,欲通过修改主引导记录修复没能成功。         客户比较担心丢失分区里面的数据,千叮万嘱让我尽量不动该分区。我用了两步搞定:         第一步:克隆磁盘,通过Winhex把能识别出来的丢失分区的底层数据,克隆到另一分区(如图1)。选中来源磁盘为本机硬盘,目标盘为选定的空白分区(不小于丢失分区容量),不能选择复制整个媒体,使用默认的扇区数据(如图2)。经[……]

继续阅读 »

新闻:WordPress获得2009开源CMS大奖综合类评比冠军

WordPress很强大,现在我就在用这个东西当cms用,不过前台需要另外开发; 并列第二的MODx走的路线似乎跟Drupal等不同,专注于内容,以及提供漂亮的外观,比较适合我现在的需求哈 WordPress获得2009开源CMS大奖综合类评比冠军(2009 Open Source CMS Award)。 WordPress在过去4年来第一次获得这个奖项,WordPress联合创始人Matt在得知WordPress获奖之后表示,荣获2009最佳开源CMS项目奖项对WordPress是一种激励,也是里程碑的时间,值得高兴。 虽然WordPress的占据了综合类评比的桂冠,其他两个极受欢迎的系统MODx和SilverStripe也获得了并列亚军的位置。 下面是它们获得的奖励: WordPress:$4,000 MODx:$2,000 SilverStripe:$2,000 这最后的宣布,标志着2009年开源内容管理系统奖项评比的结束。09年大会一共收到了超过12000个提名,23000人参与了投票。 去年此奖项的前3名分别是: Th[……]

继续阅读 »

在linux服务器 使用php mail发送邮件慢 解决方法

出现这样的状况的并发症还有,sendmail服务启动缓慢查看sendmail的日志cat /var/log/maillog大致看出是hostname有问题首先对比这两个文件/etc/hosts
/etc/mail/local-hosts-name保持一致,并确认 hostname 无误查看和变更本机hostname方法是 hostname [newhostname:string]编辑/etc/mail/sendmail.cf查找到Dj$w一行,vi查找命令是/string可以看到出示状态是被注释掉的,在这里增加一行Dj$w.设置完毕/etc/init.d/sendmail restart飞快重启[……]

继续阅读 »

只要一个人思考,他就是自由的

http://hi.baidu.com/irispang/blog/item/ebd74710b060f8f6c3ce79bc.html 爱默生曾经说过:“只要一个人思考,他就是自由的。”      历史的伟大导师本世纪交给我们最大的发现之一,就是纳丁格尔所谓的“最陌生的秘密”。他说:“你思考的内容就是你的全部”或“你成为自己思考的东西”。力量就在你体内,改变生活的能力就在于你的思考,而且,如果你愿意的话,与众不同的思考。      看看下面的例子。一家办公用品公司召开年会,市场部主任汤姆邀请年度销售冠军麦克来到讲台上(他拿到的订单高出平均水平5倍)。一阵掌声之后,汤姆说:“我希望大家能好好看看迈克,了解他究竟有什么与众不同的地方!”,      麦克比你们聪明吗?不,记录表明他的智力水平一般。      他受到过更好的教育吗?不,他只拿到了本地大学商业管理专业学士学位,为此他得花几年时间上夜 校。  &#[……]

继续阅读 »