钩子概念对初学者来说可能比较抽象难懂,但是只要掌握了他的工作方式,那么自己动手写一个钩子机制也不难。
Hook这个词很有意思,以下引用自某网络词典:
Hook用作名词时意思是“钩”,转化为动词时可表示把某物弯成钩形,也可表示用弯曲的东西把某物体钩住,引申可表示为“吊”“挂”等。
作为一个程序猿,老高对钩子的解释是,他就是一个触发机制,把你的软件功能想象成一个陷阱,放到##系统流程##可能经过的路上,如果陷阱被系统踩到,就会执行你的程序,当你挂载的钩子执行完后,系统会根据你的程序的结果继续运行。
老高最早接触Hook的编程思想是源于windows,当时打dota很入迷,突然想研究一下改键的原理,于是发现了系统钩子这一说法。
改键的原理,简单地说来就是拦截系统按下键盘时的默认动作,如果需要把小键盘的7映射到Q上,就在拦截时做一个判断,如果的键码是小键盘7,就改为Q的键码,最后发送给系统修改后的键码,即完成了改键操作。
钩子机制的使用在很多系统上都有体现,如windows、wordpress、thinkphp等,由钩子实现的功能在wordpress中叫做插件,在TP中叫做行为。
...
THINKPHP是国人开发的PHP框架,如今终于深入内部打探了一番,下面给大家分享老高的心得。
...
今天解决了一个验证码不显示的问题,值得大家注意
...
在模板里生成URL如果需要用到模板里的参数时,使用下面代码即可
{:U('Index/getInfo',array('userid'=>$userid))}
如果变量有嵌套,那就要用"[]“代替模板中的”."
{:U('Index/getInfo',array('userid'=>$user['id']))}
[TOC]
短链接 http://surl.sinaapp.com/引入百度CDN公共库 地址:http://t.cn/zYDC8wj引入文件 <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script src="http://libs.baidu.com/bootstrap/2.0.4/js/bootstrap.min.js"></script>
<link href="http://libs.baidu.com/bootstrap/2.0.4/css/bootstrap.min.css" rel="stylesheet">
<script src="http://libs.baidu.com/jquerytools/1.2.7/jquery.tools.min.js"></script>
PHP //申明页面编码开启session并设置时区
session_start();
header("Content-Type: text/html; charset=UTF-8");
ini_set('date.timezone','Asia/Shanghai');
//
//windows下这个页面执行时间还是在php.ini里控制,修改max_execution_time。
set_time_limit(0);
//获取变量的整数值
intval('adasdasd');
//heredoc==双引号
$name=MyName;
echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
/*
以上例程会输出:
My name is "MyName". I am printing some Foo.
Now, I am printing some Bar2.
This should print a capital 'A': A
*/
//Nowdoc==单引号
echo <<<'EOT'
My name is "$name"....