1.起床了、起床了!
对于工作压力超大,或是需要彻夜苦赞的男人来说,暧暖的关心是他最需要的,如果妳能够像个温柔的母亲般,在每个新鲜的早晨唤醒疲惫的他,曾比撒娇更有女人味哦!
2.好想你哦!怎么办? 阅读全文
对于工作压力超大,或是需要彻夜苦赞的男人来说,暧暖的关心是他最需要的,如果妳能够像个温柔的母亲般,在每个新鲜的早晨唤醒疲惫的他,曾比撒娇更有女人味哦!
2.好想你哦!怎么办? 阅读全文
1.EZ-USB FX系列单片机USB外围设备设计与应用
出版社 : 北京航空航天大学出版社
作者 : 许永和/
出版日期:2002年11月
版别版次:2002年11月第一版第一次印刷
2.8051单片机USB接口Visual Basic程序设计
【作 者】许永和 [同作者作品]
【丛 书 名】 USB接口完全解决方案系列三
【出 版 社】 北京航空航天大学出版社 【书 号】 9787810774796
基于LM3S615的特定温度曲线加热控制系统.到cnki查询一下!
性价比最高的EZ-USB FX2开发板-CY7C68013A
http://bbs.cechinamag.com/?url=http://bbs.cechinamag.com/ShowTopic.aspx?id=4033
直接联系:
联系人: 雷先生
电话: 13975822093
QQ: 19208093 406291081
MSN: chinaycltech@hotmail.com
E_MAIL: chinaycltech@163.com
出版社 : 北京航空航天大学出版社
作者 : 许永和/
出版日期:2002年11月
版别版次:2002年11月第一版第一次印刷
2.8051单片机USB接口Visual Basic程序设计
【作 者】许永和 [同作者作品]
【丛 书 名】 USB接口完全解决方案系列三
【出 版 社】 北京航空航天大学出版社 【书 号】 9787810774796
基于LM3S615的特定温度曲线加热控制系统.到cnki查询一下!
性价比最高的EZ-USB FX2开发板-CY7C68013A
http://bbs.cechinamag.com/?url=http://bbs.cechinamag.com/ShowTopic.aspx?id=4033
直接联系:
联系人: 雷先生
电话: 13975822093
QQ: 19208093 406291081
MSN: chinaycltech@hotmail.com
E_MAIL: chinaycltech@163.com
转:http://www.phpe.net/articles/399.shtml
<?php
class ObjectTracker //对象跟踪器
{
private static $nextSerial = 0;
private $id;
private $name;
function __construct($name) //构造函数
{
$this->name = $name;
$this->id = ++self::$nextSerial;
}
function __clone() //克隆
{
$this->name = "Clone of $that->name";
$this->id = ++self::$nextSerial;
}
function getId() //获取id属性的值
{
return($this->id);
}
function getName() //获取name属性的值
{
return($this->name);
}
}
$ot = new ObjectTracker("Zeev's Object");
/*
* $ot2 = $ot->__clone();
这一行应当改为
$ot2 = clone$ot;
*
*/
$ot2 = clone$ot;
//输出: 1 Zeev's Object
print($ot->getId() . " " . $ot->getName() . "<br>");
//输出: 2 Clone of Zeev's Object
print($ot2->getId() . " " . $ot2->getName() . "<br>");
?>
<?php
class ObjectTracker //对象跟踪器
{
private static $nextSerial = 0;
private $id;
private $name;
function __construct($name) //构造函数
{
$this->name = $name;
$this->id = ++self::$nextSerial;
}
function __clone() //克隆
{
$this->name = "Clone of $that->name";
$this->id = ++self::$nextSerial;
}
function getId() //获取id属性的值
{
return($this->id);
}
function getName() //获取name属性的值
{
return($this->name);
}
}
$ot = new ObjectTracker("Zeev's Object");
/*
* $ot2 = $ot->__clone();
这一行应当改为
$ot2 = clone$ot;
*
*/
$ot2 = clone$ot;
//输出: 1 Zeev's Object
print($ot->getId() . " " . $ot->getName() . "<br>");
//输出: 2 Clone of Zeev's Object
print($ot2->getId() . " " . $ot2->getName() . "<br>");
?>
用栈的先进后出:
#include <stdio.h>
int main() {
int i,j;
printf("please input two numbers:\n");
scanf("%d %d",&i,&j);
printf("the first number i is: %d \n",i);
printf("the second number j is: %d \n",j);
asm ("pushl %%eax\n\t"
"pushl %%ebx\n\t"
"popl %%eax\n\t"
"popl %%ebx"
:"=a"(i),"=b"(j)
:"a"(i), "b"(j));
printf("after swap \n");
printf("the first number i is: %d \n",i);
printf("the first number j is: %d \n",j);
}
用异或:(RAID里面就用到了这技术。三个里面知道任意两个就可以恢复第三个)阅读全文
#include <stdio.h>
int main() {
int i,j;
printf("please input two numbers:\n");
scanf("%d %d",&i,&j);
printf("the first number i is: %d \n",i);
printf("the second number j is: %d \n",j);
asm ("pushl %%eax\n\t"
"pushl %%ebx\n\t"
"popl %%eax\n\t"
"popl %%ebx"
:"=a"(i),"=b"(j)
:"a"(i), "b"(j));
printf("after swap \n");
printf("the first number i is: %d \n",i);
printf("the first number j is: %d \n",j);
}
用异或:(RAID里面就用到了这技术。三个里面知道任意两个就可以恢复第三个)阅读全文
经常坐在电脑前的人群,容易出现鼻咽干燥、嘴唇干裂、咽干声嘶、口苦干咳、肌
肤干燥、眼睛干涩,浑身乏力,甚至情绪烦躁。除了合理安排好作息时间,适当的体育锻炼
外,经研究以下的一些健康的食品,对电脑一族的身体健康,具有一定的帮助。
1、绿色蔬菜:新鲜蔬菜是人体内的“清洁剂”,其奥妙在于蔬菜拥有“秘密武器”—
—碱性成分,可使血液呈碱性,溶解沉淀于细胞内的毒素,使之随尿液排泄掉。
2、海带:海带是放射性物质的“克星”,含有一种称作海带胶质的物质,可促使侵入
人体的放射性物质从肠道排出。
3、猪血:猪血的血浆蛋白丰富,血浆蛋白经消化酶分解后,可与进入人体的粉尘、有
害金属微粒发生反应,变成难以溶解的新物质沉淀下来,然后排出体外。
4、绿豆:民间素有“绿豆汤解百毒”之说。现代医学研究证实,绿豆含有帮助排泄体
内毒物,加速新陈代谢的物质,可有效抵抗各种形式的污染。
5、黑木耳:黑木耳的最大优势在于可以帮助排出纤维素物质,使这些有害纤维在体内
难以立足。
6、茶:计算机对视力危害很大,经常操作计算机的人应多饮些,明目抗辐射的饮料,
如枸杞茶、菊花茶、绿茶。
此外,如牛奶、蛋、肝、花菜、卷心菜、茄子、扁豆、胡萝卜、黄瓜、番茄、香蕉、苹
果、萝卜等十字花科蔬菜,不仅是人们餐桌上常见的可口菜肴,而且还具有防辐射损伤的功
能。
肤干燥、眼睛干涩,浑身乏力,甚至情绪烦躁。除了合理安排好作息时间,适当的体育锻炼
外,经研究以下的一些健康的食品,对电脑一族的身体健康,具有一定的帮助。
1、绿色蔬菜:新鲜蔬菜是人体内的“清洁剂”,其奥妙在于蔬菜拥有“秘密武器”—
—碱性成分,可使血液呈碱性,溶解沉淀于细胞内的毒素,使之随尿液排泄掉。
2、海带:海带是放射性物质的“克星”,含有一种称作海带胶质的物质,可促使侵入
人体的放射性物质从肠道排出。
3、猪血:猪血的血浆蛋白丰富,血浆蛋白经消化酶分解后,可与进入人体的粉尘、有
害金属微粒发生反应,变成难以溶解的新物质沉淀下来,然后排出体外。
4、绿豆:民间素有“绿豆汤解百毒”之说。现代医学研究证实,绿豆含有帮助排泄体
内毒物,加速新陈代谢的物质,可有效抵抗各种形式的污染。
5、黑木耳:黑木耳的最大优势在于可以帮助排出纤维素物质,使这些有害纤维在体内
难以立足。
6、茶:计算机对视力危害很大,经常操作计算机的人应多饮些,明目抗辐射的饮料,
如枸杞茶、菊花茶、绿茶。
此外,如牛奶、蛋、肝、花菜、卷心菜、茄子、扁豆、胡萝卜、黄瓜、番茄、香蕉、苹
果、萝卜等十字花科蔬菜,不仅是人们餐桌上常见的可口菜肴,而且还具有防辐射损伤的功
能。
0.linux理论
1.计算机体系结构
2.CPU结构
3.内存管理
4.文件系统
5.进程调度
1.linux驱动
1.i2c驱动添加使用 (inno,摄像头)
2.spi驱动添加和读写 (inno,spi的flash)
3.io驱动 (led的控制,io操作)
4.dma驱动 (lcd和ac97 alsa和网卡)
5.中断源 (inno,摄像头)
6.竞争,并发,阻塞,异步,线程,内存,io,调试(ldd3)
7.usb (libusb,skeleton.c)
8.flash,文件系统 (u-boot,kernel source)
阅读全文
1.计算机体系结构
2.CPU结构
3.内存管理
4.文件系统
5.进程调度
1.linux驱动
1.i2c驱动添加使用 (inno,摄像头)
2.spi驱动添加和读写 (inno,spi的flash)
3.io驱动 (led的控制,io操作)
4.dma驱动 (lcd和ac97 alsa和网卡)
5.中断源 (inno,摄像头)
6.竞争,并发,阻塞,异步,线程,内存,io,调试(ldd3)
7.usb (libusb,skeleton.c)
8.flash,文件系统 (u-boot,kernel source)
阅读全文
Mysql Explain 详解
mysql> explain select relation.id as id, relation.infoid as infoid from relation left join information on relation.infoid=information.infoid where relation.owneruid = 1 \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: relation
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 50
Extra: Using where
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: information
type: eq_ref
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: public.relation.infoid
rows: 1
Extra: Using index
2 rows in set (0.00 sec)
一.语法
explain < table_name >
例如: explain select * from t3 where id=3952602;
二.explain输出解释
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
1.id
我的理解是SQL执行的顺利的标识,SQL从大到小的执行.
例如:
mysql> explain select * from (select * from ( select * from t3 where id=3952602) a) b;
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| 1 | PRIMARY | <derived2> | system | NULL | NULL | NULL | NULL | 1 | |
| 2 | DERIVED | <derived3> | system | NULL | NULL | NULL | NULL | 1 | |
| 3 | DERIVED | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | | 1 | |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
很显然这条SQL是从里向外的执行,就是从id=3 向上执行.
阅读全文
mysql> explain select relation.id as id, relation.infoid as infoid from relation left join information on relation.infoid=information.infoid where relation.owneruid = 1 \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: relation
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 50
Extra: Using where
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: information
type: eq_ref
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: public.relation.infoid
rows: 1
Extra: Using index
2 rows in set (0.00 sec)
一.语法
explain < table_name >
例如: explain select * from t3 where id=3952602;
二.explain输出解释
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
1.id
我的理解是SQL执行的顺利的标识,SQL从大到小的执行.
例如:
mysql> explain select * from (select * from ( select * from t3 where id=3952602) a) b;
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
| 1 | PRIMARY | <derived2> | system | NULL | NULL | NULL | NULL | 1 | |
| 2 | DERIVED | <derived3> | system | NULL | NULL | NULL | NULL | 1 | |
| 3 | DERIVED | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | | 1 | |
+----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
很显然这条SQL是从里向外的执行,就是从id=3 向上执行.
阅读全文
Linux下GUI开发:GTK+ 2.0 + anjuta + glade
在Linux,可以考虑用GTK(The GIMP Toolkit)来做GUI(Graphic User interface)开发,开发工具建议使用anjuta + glade(貌似eclipse+cdt也可以)。
阅读全文
在Linux,可以考虑用GTK(The GIMP Toolkit)来做GUI(Graphic User interface)开发,开发工具建议使用anjuta + glade(貌似eclipse+cdt也可以)。
阅读全文
1,事业永远第一
虽然金钱不是万能的,但没有钱是万万不能的,虽然这句话很俗,但绝对有道理,所以30岁之前,请把你大部分精力放在你的事业上.
2,别把钱看得太重
不要抱怨自己现在工资低,银行存款4位数以下,看不到前途,现在要做的就是努力学习,即使你文凭再高,怎么把理论运用到实践还是需要一个很长的锻炼过程, 社会永远是一所最博大的大学,它让你学到的知识远比你在学校学到的重要得多,所以同样,你也别太介意学历低.30岁之前靠自己能力买车买房的人还是极少.
3,学会体谅父母
别嫌他们唠叨,等你为人父了你就知道可怜天下父母心,在他们眼里你还是个孩子,但他们真的老了,现在得你哄他们开心了,也许只要你的一个电话,一点小礼物,就可以让他们安心,很容易做到.阅读全文
虽然金钱不是万能的,但没有钱是万万不能的,虽然这句话很俗,但绝对有道理,所以30岁之前,请把你大部分精力放在你的事业上.
2,别把钱看得太重
不要抱怨自己现在工资低,银行存款4位数以下,看不到前途,现在要做的就是努力学习,即使你文凭再高,怎么把理论运用到实践还是需要一个很长的锻炼过程, 社会永远是一所最博大的大学,它让你学到的知识远比你在学校学到的重要得多,所以同样,你也别太介意学历低.30岁之前靠自己能力买车买房的人还是极少.
3,学会体谅父母
别嫌他们唠叨,等你为人父了你就知道可怜天下父母心,在他们眼里你还是个孩子,但他们真的老了,现在得你哄他们开心了,也许只要你的一个电话,一点小礼物,就可以让他们安心,很容易做到.阅读全文
Windows Media Player文件
where id=2 and name=“向东” (如果id做了索引先对id,然后对name做索引,先后顺序是不一样的,如果id是唯一性索引,关注一下索引问题)
和:
where name=“向东” and id=2 (刚好相反)
expain就是显示如何处理类似问题!
explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。
使用方法,在select语句前加上explain就可以了:
如:explain select surname,first_name form a,b where a.id=b.id
分析结果形式如下:
table
type
possible_keys
key
key_len
ref
rows
Extra
a
range
id
first_name
First_name
9
NULL
23112
Using where
Using temporary
Using filesort
b
ref
id
first_name
id
4
id
2
Using where
EXPLAIN列的解释:
table
显示这一行的数据是关于哪张表的
type
这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、indexhe和ALL
possible_keys
显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句
key
实际使用的索引。如果为NULL,则没有使用索引。很少的情况下,MYSQL会选择优化不足的索引。这种情况下,可以在SELECT语句中使用USE INDEX(indexname)来强制使用一个索引或者用IGNORE INDEX(indexname)来强制MYSQL忽略索引
key_len
使用的索引的长度。在不损失精确性的情况下,长度越短越好
ref
显示索引的哪一列被使用了,如果可能的话,是一个常数
rows
MYSQL认为必须检查的用来返回请求数据的行数
Extra
关于MYSQL如何解析查询的额外信息。将在表4.3中讨论,但这里可以看到的坏的例子是Using temporary和Using filesort,意思MYSQL根本不能使用索引,结果是检索会很慢
extra列返回的描述的意义
Distinct
一旦MYSQL找到了与行相联合匹配的行,就不再搜索了
Not exists
MYSQL优化了LEFT JOIN,一旦它找到了匹配LEFT JOIN标准的行,
就不再搜索了
Range checked for each
Record(index map:#)
没有找到理想的索引,因此对于从前面表中来的每一个行组合,MYSQL检查使用哪个索引,并用它来从表中返回行。这是使用索引的最慢的连接之一
Using filesort
看到这个的时候,查询就需要优化了。MYSQL需要进行额外的步骤来发现如何对返回的行排序。它根据连接类型以及存储排序键值和匹配条件的全部行的行指针来排序全部行
Using index
列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发生在对表的全部的请求列都是同一个索引的部分的时候
Using temporary
看到这个的时候,查询需要优化了。这里,MYSQL需要创建一个临时表来存储结果,这通常发生在对不同的列集进行ORDER BY上,而不是GROUP BY上
Where used
使用了WHERE从句来限制哪些行将与下一张表匹配或者是返回给用户。如果不想返回表中的全部行,并且连接类型ALL或index,这就会发生,或者是查询有问题
不同连接类型的解释(按照效率高低的顺序排序)
system
表只有一行:system表。这是const连接类型的特殊情况
const
表中的一个记录的最大值能够匹配这个查询(索引可以是主键或惟一索引)。因为只有一行,这个值实际就是常数,因为MYSQL先读这个值然后把它当做常数来对待
eq_ref
在连接中,MYSQL在查询时,从前面的表中,对每一个记录的联合都从表中读取一个记录,它在查询使用了索引为主键或惟一键的全部时使用
ref
这个连接类型只有在查询使用了不是惟一或主键的键或者是这些类型的部分(比如,利用最左边前缀)时发生。对于之前的表的每一个行联合,全部记录都将从表中读出。这个类型严重依赖于根据索引匹配的记录多少—越少越好
range
这个连接类型使用索引返回一个范围中的行,比如使用>或<查找东西时发生的情况
index
这个连接类型对前面的表中的每一个记录联合进行完全扫描(比ALL更好,因为索引一般小于表数据)
ALL
这个连接类型对于前面的每一个记录联合进行完全扫描,这一般比较糟糕,应该尽量避免
和:
where name=“向东” and id=2 (刚好相反)
expain就是显示如何处理类似问题!
explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。
使用方法,在select语句前加上explain就可以了:
如:explain select surname,first_name form a,b where a.id=b.id
分析结果形式如下:
table
type
possible_keys
key
key_len
ref
rows
Extra
a
range
id
first_name
First_name
9
NULL
23112
Using where
Using temporary
Using filesort
b
ref
id
first_name
id
4
id
2
Using where
EXPLAIN列的解释:
table
显示这一行的数据是关于哪张表的
type
这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、indexhe和ALL
possible_keys
显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句
key
实际使用的索引。如果为NULL,则没有使用索引。很少的情况下,MYSQL会选择优化不足的索引。这种情况下,可以在SELECT语句中使用USE INDEX(indexname)来强制使用一个索引或者用IGNORE INDEX(indexname)来强制MYSQL忽略索引
key_len
使用的索引的长度。在不损失精确性的情况下,长度越短越好
ref
显示索引的哪一列被使用了,如果可能的话,是一个常数
rows
MYSQL认为必须检查的用来返回请求数据的行数
Extra
关于MYSQL如何解析查询的额外信息。将在表4.3中讨论,但这里可以看到的坏的例子是Using temporary和Using filesort,意思MYSQL根本不能使用索引,结果是检索会很慢
extra列返回的描述的意义
Distinct
一旦MYSQL找到了与行相联合匹配的行,就不再搜索了
Not exists
MYSQL优化了LEFT JOIN,一旦它找到了匹配LEFT JOIN标准的行,
就不再搜索了
Range checked for each
Record(index map:#)
没有找到理想的索引,因此对于从前面表中来的每一个行组合,MYSQL检查使用哪个索引,并用它来从表中返回行。这是使用索引的最慢的连接之一
Using filesort
看到这个的时候,查询就需要优化了。MYSQL需要进行额外的步骤来发现如何对返回的行排序。它根据连接类型以及存储排序键值和匹配条件的全部行的行指针来排序全部行
Using index
列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发生在对表的全部的请求列都是同一个索引的部分的时候
Using temporary
看到这个的时候,查询需要优化了。这里,MYSQL需要创建一个临时表来存储结果,这通常发生在对不同的列集进行ORDER BY上,而不是GROUP BY上
Where used
使用了WHERE从句来限制哪些行将与下一张表匹配或者是返回给用户。如果不想返回表中的全部行,并且连接类型ALL或index,这就会发生,或者是查询有问题
不同连接类型的解释(按照效率高低的顺序排序)
system
表只有一行:system表。这是const连接类型的特殊情况
const
表中的一个记录的最大值能够匹配这个查询(索引可以是主键或惟一索引)。因为只有一行,这个值实际就是常数,因为MYSQL先读这个值然后把它当做常数来对待
eq_ref
在连接中,MYSQL在查询时,从前面的表中,对每一个记录的联合都从表中读取一个记录,它在查询使用了索引为主键或惟一键的全部时使用
ref
这个连接类型只有在查询使用了不是惟一或主键的键或者是这些类型的部分(比如,利用最左边前缀)时发生。对于之前的表的每一个行联合,全部记录都将从表中读出。这个类型严重依赖于根据索引匹配的记录多少—越少越好
range
这个连接类型使用索引返回一个范围中的行,比如使用>或<查找东西时发生的情况
index
这个连接类型对前面的表中的每一个记录联合进行完全扫描(比ALL更好,因为索引一般小于表数据)
ALL
这个连接类型对于前面的每一个记录联合进行完全扫描,这一般比较糟糕,应该尽量避免
http://lzdxyj.51.net/topics/page02.htm
http://www.dbxk.com/article/article/119/2005-07/20050724133010.html
http://www.dbxk.com/article/article/119/2005-07/20050724133010.html
Smarty编译是编译,缓存是缓存,静态是静态.,
编译:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)
关于编译原理:
当接到request后,先判断是否第一次请求该url,如果是,将该url所需的模板文件"编译"成php脚本,然后redirect;如果不是,就是说该url的模板已经被"编译"过了,检查不需要重编译后可以马上redirect,重编译条件可以自己设定为固定时限,默认的是模板文件被修改。
关于缓存:
缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。
缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。
编译:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)
关于编译原理:
当接到request后,先判断是否第一次请求该url,如果是,将该url所需的模板文件"编译"成php脚本,然后redirect;如果不是,就是说该url的模板已经被"编译"过了,检查不需要重编译后可以马上redirect,重编译条件可以自己设定为固定时限,默认的是模板文件被修改。
关于缓存:
缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。
缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。
function PrepareGPC()
{
if(!get_magic_quotes_gpc()) {
$this->addslashes_array($_GET);
$this->addslashes_array($_POST);
$this->addslashes_array($_COOKIE);//会出现问题
$this->addslashes_array($_REQUEST);
$this->addslashes_array($_FILES);
}
}
function addslashes_array(&$ar)
{
if(is_array($ar)) {
foreach($ar as $key => $ar_sub) {
$this->addslashes_array($ar[$key]);
}
} else if(is_string($ar)) {
$ar = addslashes($ar);
}
}
addslashes
(PHP 3, PHP 4 , PHP 5)
addslashes -- 使用反斜线引用字符串
描述
string addslashes ( string str)
返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。
一个使用 addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O'reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \ 作为转义符:O\'reilly。这样可以将数据放入数据库中,而不会插入额外的 \。当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ' 时将使用 ' 进行转义。
默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
例子 1. addslashes() 示例
$str = "Is your name O'reilly?";
// 输出:Is your name O\'reilly?
echo addslashes($str);
?>
result: Is your name O\'reilly?
那这个呢?
$str = "Is your name O\'reilly?";
// 输出:Is your name O\'reilly?
echo addslashes($str);
?>
Is your name O\\\'reilly?
{
if(!get_magic_quotes_gpc()) {
$this->addslashes_array($_GET);
$this->addslashes_array($_POST);
$this->addslashes_array($_COOKIE);//会出现问题
$this->addslashes_array($_REQUEST);
$this->addslashes_array($_FILES);
}
}
function addslashes_array(&$ar)
{
if(is_array($ar)) {
foreach($ar as $key => $ar_sub) {
$this->addslashes_array($ar[$key]);
}
} else if(is_string($ar)) {
$ar = addslashes($ar);
}
}
addslashes
(PHP 3, PHP 4 , PHP 5)
addslashes -- 使用反斜线引用字符串
描述
string addslashes ( string str)
返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。
一个使用 addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O'reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \ 作为转义符:O\'reilly。这样可以将数据放入数据库中,而不会插入额外的 \。当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ' 时将使用 ' 进行转义。
默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
例子 1. addslashes() 示例
$str = "Is your name O'reilly?";
// 输出:Is your name O\'reilly?
echo addslashes($str);
?>
result: Is your name O\'reilly?
那这个呢?
$str = "Is your name O\'reilly?";
// 输出:Is your name O\'reilly?
echo addslashes($str);
?>
Is your name O\\\'reilly?
http://www.jojobox.cn/blog/article.asp?id=131