查询一天:
select * from table where to_days(column_time) = to_days(now());
select * from table where date(column_time) = curdate();
查询一周:
select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);
阅读全文
select * from table where to_days(column_time) = to_days(now());
select * from table where date(column_time) = curdate();
查询一周:
select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);
阅读全文
控制面板\程序\默认程序\设置关联
为了更好的解决虚拟机与主机的共享问题,VMware公司有一个VMWare-tools,来实现文件共享。这里主要讲的是在Windows下用 Vmware虚拟Linux来与windows来共享。
阅读全文
阅读全文
我的电脑配置:
主板:ZOTAC H55ITX-A-E ITX H55,DDR3,WiFi,LGA1156,M.ITXM/B
cpu:Inter Core i3 540 (3.06GHz) CPU/4M [Socket 1156] BOX 盒装
内存:2GB Kingston DDR3 PC3-10600 CL9 1.5V(D3-1333) 365 2根 730
机箱: 大水牛S0203机箱
电源:150W 机箱自带
硬盘:高清套餐 西部数据WD1TB绿盘 64M缓存 WD10EARS硬盘
鼠标:8115 DELL鼠标 戴尔鼠标 usb接口
键盘:戴尔DELL新版SK-8115键盘 非L100 防水静...
系统:盗版windows7 64位。
我担心是不是绿盘的问题?我用笔记本玩魔兽游戏都不卡的啊。驱动用的是驱动精灵装的啊。
游戏的速度取决于两个东西:CPU和GPU,CPU就是你的I3,GPU就是显卡,看你配置清单里没说显卡,你的显卡应该是集成的吧,集成的玩游戏当然卡,因为它是用来办公的显卡,想玩游戏还得换个独立显卡~
i3用的是集成的显卡,显卡的性能也不是很强,在人多的时候卡是正常的,你把画质调整低一点看看
主板:ZOTAC H55ITX-A-E ITX H55,DDR3,WiFi,LGA1156,M.ITXM/B
cpu:Inter Core i3 540 (3.06GHz) CPU/4M [Socket 1156] BOX 盒装
内存:2GB Kingston DDR3 PC3-10600 CL9 1.5V(D3-1333) 365 2根 730
机箱: 大水牛S0203机箱
电源:150W 机箱自带
硬盘:高清套餐 西部数据WD1TB绿盘 64M缓存 WD10EARS硬盘
鼠标:8115 DELL鼠标 戴尔鼠标 usb接口
键盘:戴尔DELL新版SK-8115键盘 非L100 防水静...
系统:盗版windows7 64位。
我担心是不是绿盘的问题?我用笔记本玩魔兽游戏都不卡的啊。驱动用的是驱动精灵装的啊。
游戏的速度取决于两个东西:CPU和GPU,CPU就是你的I3,GPU就是显卡,看你配置清单里没说显卡,你的显卡应该是集成的吧,集成的玩游戏当然卡,因为它是用来办公的显卡,想玩游戏还得换个独立显卡~
i3用的是集成的显卡,显卡的性能也不是很强,在人多的时候卡是正常的,你把画质调整低一点看看
以前大学时代,自己写一些什么:时间管理系统,到时间后提醒的小软件,等等,猛然发现,手机引入了操作系统,以app的形式提供了类似的功能,Iphone如火如荼的发展着,推翻了以前的程序员需要一个团队才能挣钱,而现在给iphone写一个app就能挣到大把的money,它是后起之秀,搭建了一个平台,让程序员来唱戏,新的商业模式,新的人马组织,新的盈利模式,不得不说是对手机行业的挑战,而能有这样能力和资本的也就只有乔布斯这样的人才有如此的魄力。而中国的周鸿祎试图挑战杀毒行业潜规则,视乎也是困难重重,比起苹果的一路凯歌来说,可谓天上地下。
当年试图通过一个小软件就能荡平世界,CS模式现在好像很沉默,BS模式倒是风光满面,当然也不会放弃这个能给人们日常生活带来便利的细节了。当今各大网站的邮箱功能附加了记录的功能,尤其是QQ的邮箱,更是可以通过QQ客户端联合起来做提醒。
为此,一代一代的细节功能通过敏捷的方法给这些大公司都做得极致了,我们这些小的人物已经不能再去有任何梦想了,你的梦想并不特别,你的观点并不新颖,你想到了,别人做到了,你做了,别人成功了。我们都给忽悠了,什么学历,什么能力,在这个时代里面都是一个小小的角色而已,一个一个的社会的螺丝钉,而且要做好这个螺丝钉,否则,你生存的机会都困难,更别去谈创新,创新都给大公司当铺路石头了,尤其是互联网,和目前热演的三国中的一幕,在孙子“螳螂捕蝉,黄雀在后”的背书声中,白发苍苍的司马懿闭上了眼睛: 曹操作为螳螂,司马氏作为黄雀,奸诈阴险之辈成了主角,社会风气可见一般。时代变了,变得很是快,让人觉得眼睛一眨,老母鸡变鸭,但这也不是什么坏事,不妨总是有人去创新,同时在创新的时候更加注意黄雀在后,可能是更加遏制了创新,也可能更加推进了创新,需要更大的能耐的人的努力才能不被黄雀去吃掉。这是一个弱肉强食的社会,这是一个需要颠覆的社会,改良已经没有任何用处了,颠覆需要勇气,我们生活在资本为王的社会,何去何从?拭目以待,静观其变,更要耐得住寂寞,任何情况都有可能发生。
早期程序员心中的英雄,如:求伯君的英雄时代已经过去,坚持做了21年的金山WPS居然是不赚钱的,最后,走上了游戏的道路。世界一直在变,但人们对资本的追逐永远那么万古长春。当今社会唯有以资本加英雄以及市场热度时间的准确把控和出击,三者就像天时地利人和一样在一个特定场合出现合理配套发挥其最大化,才是制胜的关键。我们已经Out了,"往者不可谏,来者犹可追",任何时代都是这样的,我们顶多能待时而动当个螳螂,而天天可能还畏惧黄雀在身后,但正如无间道中说的:往往都是事情改變人,人改變不了事情——但是他們改变了一些事情。同样,我们没法撼动大树,但我们仍然需要有创新的勇气,去面对这个周遭的世界,拥抱变化。
“人他妈都死了,这还有什么. 用。”“有些事,还是要去做的。 ==》创新他妈都死了,这还有什么用? 有些事,还是要去做的。
做好目前的小细节,后面什么都会有的,或许你比乔布斯更伟大,“敌军围困千万重,我自岿然不动!”,也只能只有如此yy一把不是。EOF
希望有人回复:
兄弟,你是对的。
Jackxiang
2010-6-20 凌晨1:08
当年试图通过一个小软件就能荡平世界,CS模式现在好像很沉默,BS模式倒是风光满面,当然也不会放弃这个能给人们日常生活带来便利的细节了。当今各大网站的邮箱功能附加了记录的功能,尤其是QQ的邮箱,更是可以通过QQ客户端联合起来做提醒。
为此,一代一代的细节功能通过敏捷的方法给这些大公司都做得极致了,我们这些小的人物已经不能再去有任何梦想了,你的梦想并不特别,你的观点并不新颖,你想到了,别人做到了,你做了,别人成功了。我们都给忽悠了,什么学历,什么能力,在这个时代里面都是一个小小的角色而已,一个一个的社会的螺丝钉,而且要做好这个螺丝钉,否则,你生存的机会都困难,更别去谈创新,创新都给大公司当铺路石头了,尤其是互联网,和目前热演的三国中的一幕,在孙子“螳螂捕蝉,黄雀在后”的背书声中,白发苍苍的司马懿闭上了眼睛: 曹操作为螳螂,司马氏作为黄雀,奸诈阴险之辈成了主角,社会风气可见一般。时代变了,变得很是快,让人觉得眼睛一眨,老母鸡变鸭,但这也不是什么坏事,不妨总是有人去创新,同时在创新的时候更加注意黄雀在后,可能是更加遏制了创新,也可能更加推进了创新,需要更大的能耐的人的努力才能不被黄雀去吃掉。这是一个弱肉强食的社会,这是一个需要颠覆的社会,改良已经没有任何用处了,颠覆需要勇气,我们生活在资本为王的社会,何去何从?拭目以待,静观其变,更要耐得住寂寞,任何情况都有可能发生。
早期程序员心中的英雄,如:求伯君的英雄时代已经过去,坚持做了21年的金山WPS居然是不赚钱的,最后,走上了游戏的道路。世界一直在变,但人们对资本的追逐永远那么万古长春。当今社会唯有以资本加英雄以及市场热度时间的准确把控和出击,三者就像天时地利人和一样在一个特定场合出现合理配套发挥其最大化,才是制胜的关键。我们已经Out了,"往者不可谏,来者犹可追",任何时代都是这样的,我们顶多能待时而动当个螳螂,而天天可能还畏惧黄雀在身后,但正如无间道中说的:往往都是事情改變人,人改變不了事情——但是他們改变了一些事情。同样,我们没法撼动大树,但我们仍然需要有创新的勇气,去面对这个周遭的世界,拥抱变化。
“人他妈都死了,这还有什么. 用。”“有些事,还是要去做的。 ==》创新他妈都死了,这还有什么用? 有些事,还是要去做的。
做好目前的小细节,后面什么都会有的,或许你比乔布斯更伟大,“敌军围困千万重,我自岿然不动!”,也只能只有如此yy一把不是。EOF
希望有人回复:
兄弟,你是对的。
Jackxiang
2010-6-20 凌晨1:08
1. digital data archives system
1....digital data archives system,数字数据档案系统.
1....digital data archives system,数字数据档案系统.
Source Insight确实是个好用的看程序的东东,如果内置C编译器就更好了
但是默认的字体有点小,看起来不爽
其实稍微调整一下就ok了
建一个工程
然后 打开一个文件
在空白处点右键 选 Document Options
调整Screen Fonts
偶选择Tohama 并且调整到10的大小
阅读全文
但是默认的字体有点小,看起来不爽
其实稍微调整一下就ok了
建一个工程
然后 打开一个文件
在空白处点右键 选 Document Options
调整Screen Fonts
偶选择Tohama 并且调整到10的大小
阅读全文
/*此函数主要是C语言实现单片机数码管闪烁功能
效果:
1.数码管显示0123;
2.停顿;
3.数码管显示4567;
4.无穷循环1,2,3步.*/
效果:
1.数码管显示0123;
2.停顿;
3.数码管显示4567;
4.无穷循环1,2,3步.*/
#include <reg51.h>
#include <intrins.h>
unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff}; //定义数组
int delay(int x) //声明延迟函数
{
int j=0;
for(j;j<x;j++) ;
}
main() //主函数
{
int i,j; //定义i,j
unsigned char seg; //定义seg,用于数码管的初始化
seg= 0xfe ; //定义seg为0xfe,即11111110;使数码管为第一个显示
while (1) //无穷循环
{
{ for(j=0;j<30;j++) //扫描数码管30次
{
for(i=0;i<4;i++) //输出0123
{
P2=seg; //初始化P2
P0=dis_code[i]; //显示数字
delay(200); //延迟约1ms
seg=_crol_(seg,1); //数码管右移一位
if (seg==0xef) seg=0xfe; //输出四个数字之后停止
}
}
P2=0xff; //数码管全不接通,把0,1,2,3消去
delay(2000000); //延迟
for(j=0;j<30;j++) //扫描数码管30次
{
for(i=4;i<8;i++) //输出4567
{
P2=seg; //初始化P2
P0=dis_code[i]; //显示数字
delay(200); //延迟约1ms
seg=_crol_(seg,1); //数码管右移一位
if (seg==0xef) seg=0xfe; //输出四个数字之后停止
}
}
}
}
} //函数结束
#include <intrins.h>
unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff}; //定义数组
int delay(int x) //声明延迟函数
{
int j=0;
for(j;j<x;j++) ;
}
main() //主函数
{
int i,j; //定义i,j
unsigned char seg; //定义seg,用于数码管的初始化
seg= 0xfe ; //定义seg为0xfe,即11111110;使数码管为第一个显示
while (1) //无穷循环
{
{ for(j=0;j<30;j++) //扫描数码管30次
{
for(i=0;i<4;i++) //输出0123
{
P2=seg; //初始化P2
P0=dis_code[i]; //显示数字
delay(200); //延迟约1ms
seg=_crol_(seg,1); //数码管右移一位
if (seg==0xef) seg=0xfe; //输出四个数字之后停止
}
}
P2=0xff; //数码管全不接通,把0,1,2,3消去
delay(2000000); //延迟
for(j=0;j<30;j++) //扫描数码管30次
{
for(i=4;i<8;i++) //输出4567
{
P2=seg; //初始化P2
P0=dis_code[i]; //显示数字
delay(200); //延迟约1ms
seg=_crol_(seg,1); //数码管右移一位
if (seg==0xef) seg=0xfe; //输出四个数字之后停止
}
}
}
}
} //函数结束
php explorer的下方空白处(里面可能有你建立的工程),右键:import :Exiisting Project into Workspace,把其他人建立的工程给弄进来即可!
PHPUnit位置:
D:\Program Files\Zend\Zend Studio - 7.2.0\plugins\com.zend.php.phpunit_7.2.0.v20100324-1300\resources\library
PHPUnit位置:
D:\Program Files\Zend\Zend Studio - 7.2.0\plugins\com.zend.php.phpunit_7.2.0.v20100324-1300\resources\library
读写网记者与PHP的创造者Rasmus Lerdorf联系,询问他对Facebook刚刚开源的PHP优化项目HipHop有何看法。Lerdorf在邮件中说,这是一个很酷的项目,肯定会成为某些网站很好的选择。
但是,他接下来说,对于许多Web应用来说,执行速度并不是主要因素。即使将总请求成本中10%的代码的执行速度提高一倍,整体上也只提高了5%。如果每次请求都要访问memcache/PostgreSQL/MySQL 10次,在系统调用上耗费大量时间,难免不要指望HipHop会带来奇迹。
Lerdorf称HipHop代码转换程序为漂亮把戏(nifty trick),并担心会有开发人员将它错误地看成网站性能的某种魔弹。对于新的运行库,Lerdorf说,更愿意大家进行基本的性能分析(profiling),找到有用中成本最高的部分。与其加速系统中较快的部分,不如加速或者去除系统中较慢的部分。
他还说,PHP的执行速度往往不是问题最大的地方,应该好好分析系统的各个方面,找到元凶。工具方面,他推荐用Yahoo的YSlow和 Google的Page Speed分析前端的问题,再用Valgrind的Callgrind分析低层的后端性能,用XDebug分析用户空间PHP的性能。此外,他还顺带手指出了读写网前端的性能问题。
当然,文章中也说到,Facebook的网站其他方面可能已经优化得很好,因此HipHop能够带来足够的效率。
总之还是那句话,没有防之四海而皆准的通用银弹,工程上,具体问题具体分析,选择最合适当前环境的工具最为重要。
但是,他接下来说,对于许多Web应用来说,执行速度并不是主要因素。即使将总请求成本中10%的代码的执行速度提高一倍,整体上也只提高了5%。如果每次请求都要访问memcache/PostgreSQL/MySQL 10次,在系统调用上耗费大量时间,难免不要指望HipHop会带来奇迹。
Lerdorf称HipHop代码转换程序为漂亮把戏(nifty trick),并担心会有开发人员将它错误地看成网站性能的某种魔弹。对于新的运行库,Lerdorf说,更愿意大家进行基本的性能分析(profiling),找到有用中成本最高的部分。与其加速系统中较快的部分,不如加速或者去除系统中较慢的部分。
他还说,PHP的执行速度往往不是问题最大的地方,应该好好分析系统的各个方面,找到元凶。工具方面,他推荐用Yahoo的YSlow和 Google的Page Speed分析前端的问题,再用Valgrind的Callgrind分析低层的后端性能,用XDebug分析用户空间PHP的性能。此外,他还顺带手指出了读写网前端的性能问题。
当然,文章中也说到,Facebook的网站其他方面可能已经优化得很好,因此HipHop能够带来足够的效率。
总之还是那句话,没有防之四海而皆准的通用银弹,工程上,具体问题具体分析,选择最合适当前环境的工具最为重要。
腾讯bond兄弟的建议:
<div class="txt">
翻页代码 1,2,3...下一页
</div>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
cntv的页面构建师,在每一个行(一行里如有6个图,图下有文字)加上一个清浮动的Div【<div class="clear"></div>】,这个clear对应清浮动的样式如下:
.clear{clear:both;overflow:hidden;display:block;height:0;font-size:0;}
---------------------------------------------------------------------------------------------------------------------------------------------
float 是 css 的定位属性。在传统的印刷布局中,文本可以按照需要围绕图片。一般把这种方式称为“文本环绕”。在网页设计中,应用了CSS的float属性的页面元素就像在印刷布局里面的被文字包围的图片一样。浮动的元素仍然是网页流的一部分。这与使用绝对 定位的页面元素相比是一个明显的不同。绝对定位的页面元素被从网页流里面移除了,就像印刷布局里面的文本框被设置为无视页面环绕一样。绝对定位的元素不会 影响其它元素,其它元素也不会影响它,无论它是否和其它元素挨着。
印刷布局中的“文本框被设置为无视页面环绕”指的是文本框的内容不会受到页面其他元素的影响,也不会在页面中自动换行。这种设置通常用在一些特殊的排版需求中,比如表格、图表或者注释。
印刷布局里面的文本框被设置为无视页面环绕,这话怎么理解,请解释下它后面的背景知识:
背景知识
页面环绕:在印刷排版中,文本内容会根据页面的边界、图像、表格等元素进行自动换行和调整,以使内容能够适应页面的布局。这种机制被称为“页面环绕”或“文本环绕”。
无视页面环绕:当文本框被设置为无视页面环绕时,它的内容将会保持在一个单独的框内,不会因为页面边界或者其他元素的存在而进行换行或调整。这通常用于需要精确控制内容布局的场景,比如:
表格:表格的每一行和每一列都需要精确对齐,不能因为页面的边界而改变其结构。
图表:图表中的数据和图形需要保持固定的相对位置,避免因为页面布局变化而影响其显示效果。
注释:注释内容有时需要放在特定的位置,以便读者能够轻松找到和理解。
像这样在一个元素上用CSS设置浮动:
#sidebar { float: right; }
fload属性有四个可用的值:Left 和Right 分别浮动元素到各自的方向,None (默认的) 使元素不浮动,Inherit 将会从父级元素获取float值。
清除Float
清除(clear)是浮动(float)的相关属性.一个设置了清除Float的元素不会如浮动所设置的一样,向上移动到Float元素的边界,而是会忽视浮动向下移动。如下,一图顶千言。
上例中,侧栏向右浮动,并且短于主内容区域。页脚(footer)于是按浮动所要求的向上跳到了可能的空间。要解决这个问题,可以在页脚(footer)上清除浮动,以使页脚(footer)待在浮动元素的下面。
#footer { clear: both; }
清除(clear)也有4个可能值。最常用的是 both,清楚左右两边的浮动。left 和 right 只能清楚一个方向的浮动。none 是默认值,只在需要移除已指定的清除值时用到。inherit 应该时第五个值,不过很奇怪的是 IE 不支持(这个不奇怪吧,IE 从来都这么特立独行吧 -糖伴西红柿注)。只清除左边或右边的浮动,实际中很少见,不过绝对有他们的用处。
http://www.cnblogs.com/zhujl/archive/2012/05/08/2489440.html
http://paranimage.com/css-float-attribute/
使用浮动(float)的一个比较疑惑的事情是他们怎么影响包含他们的父元素的。如果父元素只包含浮动元素,那么它的高度就会塌缩为零。如果父元素不包含任何的可见背景,这个问题会很难被注意到,但是这是一个很重要的问题
估计Bond的来源摘录(http://paranimage.com/css-float-attribute/):
简单清除方法使用了一个聪明的 css 伪选择符(:after)来清除浮动。比起在父元素上设置 overflow,只需要给它增加一个额外的类似于”clearfix”的类。这个类使用如下 css:
.clearfix:after {
content: ".";
visibility: hidden;
display: block;
height: 0;
clear: both;
}
这会在清除浮动的父元素之后应用一点看不见的内容。这不是全部内容,还需要一些额外的代码来适应那些老旧的浏览器。
-------------------------------------------------------------------------------------------------------------
INTRO: 在写页面的过程中经常要遇到清除浮动的情况,这里总结了一下几种常用的清楚浮动的方法。
CATEGORY: 网站前端
TAGS: clear, css
在使用float进行页面布局时,经常遇到有需要清除浮动的地方。通常情况下,只需要在下一个元素上添加clear样式,就可以达到清除浮动的效果了。
clear:left – 清除所有向左的浮动;
clear:right – 清除所有向右的浮动;
clear:both – 清除所有浮动;
clear:none – (默认)不清除浮动。
但是这种方式使得元素样式有一点乱,在以后进行页面修改时,会找不到在哪个元素清了浮动;或者在添加了一些元素以后,原有的冗余样式没有清理。
所以比较简单的办法是设一个clear样式:
.clear{clear:both;}
在需要清除浮动的元素上统一加上clear类,这样以后在修改代码时比较容易看到是哪些元素上使用了清除浮动。
对于一般的情况,这样也就足够了,但是总有一些特殊的时候。
这样一个例子:
<div id="content">
<div class="box">
<div class="left"></div>
<div class="right"></div>
</div>
</div>
<div id="sidebar"></div>
这种情况下,如果在下一个元素上清浮动,就得在id为sidebar的div上加clear了,这样有些脱离了原本清除浮动的语义。是类名为box的div需要清除浮动,而不是id名为content的div需要清浮动。为了还原clear的本意。这里需要在类名为right的div后面加一个无意义元素。
如<p class=”clear”></p>
这么做的缺点也很明显,就是使得页面的html结构中多了一个无意义的元素p。
为了避免这种情况,这里还有两种新的清除浮动的方法。
方法一:利用overflow属性达到清除浮动的效果。
在需要清除浮动的元素,这里的例子中需要清浮动的元素是类名为box的div元素,给这个元素加上以下CSS语句。
.box{
overflow:auto;
zoom:1;
}
方法二:利用:after伪类来清除浮动。
新建一个类,取名为clearboth,在需要清除浮动的元素上使用。修改例子中的html代码:
1
<div class="box clearboth">
.clearboth:after {content: "";display: block;height: 0;clear: both;}
.clearboth { *zoom : 1; } // for IE 6.
我写的测试代码:
++++++++++++++++++以下说得很详细很有操作性+++++++++++++++++++++++++++++
自己对下面这一段做实践Ok的再次体会,为此也贴上:http://blog.csdn.net/cjxtfxs/article/details/6328185
在CSS中我们会经常要用到“清除浮动”Clear,比较典型的就是clear:both;
CSS手册上是这样说明的:该属性的值指出了不允许有浮动对象的边。这个属性是用来控制float属性在文档流的物理位置的。
当属性设置float(浮动)时,其所在的物理位置已经脱离文档流了,但是大多时候我们希望文档流能识别float(浮动),或者是希望float(浮动)后面的元素不被float(浮动)所影响,这个时候我们就需要用clear:both;来清除。
比如:
<p style="float:left;width:200px;">这个是第1列,</p>
<p style="float:right;width:400px;">这个是第2列,</p>
<p>这个是第3列。</p>
如果不用清除浮动,那么第3列文字就会和第1、2列文字在一起 ,所以我们在第3个这列加一个清除浮动 clear:both;
<p style="float:left;width:200px;">这个是第1列,</p>
<p style="float:left;width:400px;">这个是第2列,</p>
<p style="clear:left;">这个是第3列。</p>
通常,我们往往会将“清除浮动”单独定义一个CSS样式,如:
.clear {
clear: both;
}
然后使用<div class="clear"></div>来专门进行“清除浮动”。
不过也有不赞同意见是,<div class="clear"></div>可以不写,直接在下层清除就可以了。
比如本来好好的
<p style="float:left;width:200px;">这个是第1列,</p>
<p style="float:left;width:400px;">这个是第2列,</p>
<p style="clear:both;">这个是第3列。</p>
非要整成
<p style="float:left;width:200px;">这个是第1列,</p>
<p style="float:left;width:400px;">这个是第2列,</p>
<div class="clear"></div>
<p>这个是第3列。</p>
这点看来,<div class="clear"></div>确实不需要写。
不过很显然,我们在网页设计时还有一种很普遍的情况:
<style type="text/css">
#main {background-color: #3399CC;width: 600px;padding: 20px;}
#sidebar {background-color: #FF6600; float: left;width: 130px;}
#container {float: right;width: 420px;background-color: #FFFF33;}
</style>
<div id="main">
<div id="sidebar">第一段内容 第一段内容 第一段内容</div>
<div id="container">第二段内容 第二段内容 第二段内容</div>
</div>
<p style="clear:both;">第三段内容</p>
该页面测试在IE下效果正合所要:蓝色块内部有红色和黄色两个色块内容,同时在蓝色块以下是第三段文本。
不过FF的效果可不是这样的。我们不能单单想在下一层清除就能完成我们的工作,我们必须在浮动元素所在标签闭合之前及时进行“清除”。
<style type="text/css">
#main {background-color: #3399CC;width: 600px;padding: 20px;}
#sidebar {background-color: #FF6600; float: left;width: 130px;}
#container {float: right;width: 420px;background-color: #FFFF33;}
.clear {clear: both;}
</style>
<div id="main">
<div id="sidebar">第一段内容 第一段内容 第一段内容</div>
<div id="container">第二段内容 第二段内容 第二段内容</div>
<div class="clear"></div>
</div>
<p>第三段内容</p>
对于因多加的<div class="clear"></div>标签会引起IE和FF高度变化,通过如下方法解决:
.clear {
clear: both;
height:1px;
margin-top:-1px;
overflow:hidden;
}
.clear-class:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
.clear-class{zoom:1;display:block;}
.clear-class{zoom:1;display:block;}
<ul class="clear-class txt">
<li class="liclass">
</li>
</ul>
<li class="liclass">
</li>
</ul>
<div class="txt">
翻页代码 1,2,3...下一页
</div>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
cntv的页面构建师,在每一个行(一行里如有6个图,图下有文字)加上一个清浮动的Div【<div class="clear"></div>】,这个clear对应清浮动的样式如下:
.clear{clear:both;overflow:hidden;display:block;height:0;font-size:0;}
---------------------------------------------------------------------------------------------------------------------------------------------
float 是 css 的定位属性。在传统的印刷布局中,文本可以按照需要围绕图片。一般把这种方式称为“文本环绕”。在网页设计中,应用了CSS的float属性的页面元素就像在印刷布局里面的被文字包围的图片一样。浮动的元素仍然是网页流的一部分。这与使用绝对 定位的页面元素相比是一个明显的不同。绝对定位的页面元素被从网页流里面移除了,就像印刷布局里面的文本框被设置为无视页面环绕一样。绝对定位的元素不会 影响其它元素,其它元素也不会影响它,无论它是否和其它元素挨着。
印刷布局中的“文本框被设置为无视页面环绕”指的是文本框的内容不会受到页面其他元素的影响,也不会在页面中自动换行。这种设置通常用在一些特殊的排版需求中,比如表格、图表或者注释。
印刷布局里面的文本框被设置为无视页面环绕,这话怎么理解,请解释下它后面的背景知识:
背景知识
页面环绕:在印刷排版中,文本内容会根据页面的边界、图像、表格等元素进行自动换行和调整,以使内容能够适应页面的布局。这种机制被称为“页面环绕”或“文本环绕”。
无视页面环绕:当文本框被设置为无视页面环绕时,它的内容将会保持在一个单独的框内,不会因为页面边界或者其他元素的存在而进行换行或调整。这通常用于需要精确控制内容布局的场景,比如:
表格:表格的每一行和每一列都需要精确对齐,不能因为页面的边界而改变其结构。
图表:图表中的数据和图形需要保持固定的相对位置,避免因为页面布局变化而影响其显示效果。
注释:注释内容有时需要放在特定的位置,以便读者能够轻松找到和理解。
像这样在一个元素上用CSS设置浮动:
#sidebar { float: right; }
fload属性有四个可用的值:Left 和Right 分别浮动元素到各自的方向,None (默认的) 使元素不浮动,Inherit 将会从父级元素获取float值。
清除Float
清除(clear)是浮动(float)的相关属性.一个设置了清除Float的元素不会如浮动所设置的一样,向上移动到Float元素的边界,而是会忽视浮动向下移动。如下,一图顶千言。
上例中,侧栏向右浮动,并且短于主内容区域。页脚(footer)于是按浮动所要求的向上跳到了可能的空间。要解决这个问题,可以在页脚(footer)上清除浮动,以使页脚(footer)待在浮动元素的下面。
#footer { clear: both; }
清除(clear)也有4个可能值。最常用的是 both,清楚左右两边的浮动。left 和 right 只能清楚一个方向的浮动。none 是默认值,只在需要移除已指定的清除值时用到。inherit 应该时第五个值,不过很奇怪的是 IE 不支持(这个不奇怪吧,IE 从来都这么特立独行吧 -糖伴西红柿注)。只清除左边或右边的浮动,实际中很少见,不过绝对有他们的用处。
http://www.cnblogs.com/zhujl/archive/2012/05/08/2489440.html
http://paranimage.com/css-float-attribute/
使用浮动(float)的一个比较疑惑的事情是他们怎么影响包含他们的父元素的。如果父元素只包含浮动元素,那么它的高度就会塌缩为零。如果父元素不包含任何的可见背景,这个问题会很难被注意到,但是这是一个很重要的问题
估计Bond的来源摘录(http://paranimage.com/css-float-attribute/):
简单清除方法使用了一个聪明的 css 伪选择符(:after)来清除浮动。比起在父元素上设置 overflow,只需要给它增加一个额外的类似于”clearfix”的类。这个类使用如下 css:
.clearfix:after {
content: ".";
visibility: hidden;
display: block;
height: 0;
clear: both;
}
这会在清除浮动的父元素之后应用一点看不见的内容。这不是全部内容,还需要一些额外的代码来适应那些老旧的浏览器。
-------------------------------------------------------------------------------------------------------------
INTRO: 在写页面的过程中经常要遇到清除浮动的情况,这里总结了一下几种常用的清楚浮动的方法。
CATEGORY: 网站前端
TAGS: clear, css
在使用float进行页面布局时,经常遇到有需要清除浮动的地方。通常情况下,只需要在下一个元素上添加clear样式,就可以达到清除浮动的效果了。
clear:left – 清除所有向左的浮动;
clear:right – 清除所有向右的浮动;
clear:both – 清除所有浮动;
clear:none – (默认)不清除浮动。
但是这种方式使得元素样式有一点乱,在以后进行页面修改时,会找不到在哪个元素清了浮动;或者在添加了一些元素以后,原有的冗余样式没有清理。
所以比较简单的办法是设一个clear样式:
.clear{clear:both;}
在需要清除浮动的元素上统一加上clear类,这样以后在修改代码时比较容易看到是哪些元素上使用了清除浮动。
对于一般的情况,这样也就足够了,但是总有一些特殊的时候。
这样一个例子:
<div id="content">
<div class="box">
<div class="left"></div>
<div class="right"></div>
</div>
</div>
<div id="sidebar"></div>
这种情况下,如果在下一个元素上清浮动,就得在id为sidebar的div上加clear了,这样有些脱离了原本清除浮动的语义。是类名为box的div需要清除浮动,而不是id名为content的div需要清浮动。为了还原clear的本意。这里需要在类名为right的div后面加一个无意义元素。
如<p class=”clear”></p>
这么做的缺点也很明显,就是使得页面的html结构中多了一个无意义的元素p。
为了避免这种情况,这里还有两种新的清除浮动的方法。
方法一:利用overflow属性达到清除浮动的效果。
在需要清除浮动的元素,这里的例子中需要清浮动的元素是类名为box的div元素,给这个元素加上以下CSS语句。
.box{
overflow:auto;
zoom:1;
}
方法二:利用:after伪类来清除浮动。
新建一个类,取名为clearboth,在需要清除浮动的元素上使用。修改例子中的html代码:
1
<div class="box clearboth">
.clearboth:after {content: "";display: block;height: 0;clear: both;}
.clearboth { *zoom : 1; } // for IE 6.
我写的测试代码:
++++++++++++++++++以下说得很详细很有操作性+++++++++++++++++++++++++++++
自己对下面这一段做实践Ok的再次体会,为此也贴上:http://blog.csdn.net/cjxtfxs/article/details/6328185
在CSS中我们会经常要用到“清除浮动”Clear,比较典型的就是clear:both;
CSS手册上是这样说明的:该属性的值指出了不允许有浮动对象的边。这个属性是用来控制float属性在文档流的物理位置的。
当属性设置float(浮动)时,其所在的物理位置已经脱离文档流了,但是大多时候我们希望文档流能识别float(浮动),或者是希望float(浮动)后面的元素不被float(浮动)所影响,这个时候我们就需要用clear:both;来清除。
比如:
<p style="float:left;width:200px;">这个是第1列,</p>
<p style="float:right;width:400px;">这个是第2列,</p>
<p>这个是第3列。</p>
如果不用清除浮动,那么第3列文字就会和第1、2列文字在一起 ,所以我们在第3个这列加一个清除浮动 clear:both;
<p style="float:left;width:200px;">这个是第1列,</p>
<p style="float:left;width:400px;">这个是第2列,</p>
<p style="clear:left;">这个是第3列。</p>
通常,我们往往会将“清除浮动”单独定义一个CSS样式,如:
.clear {
clear: both;
}
然后使用<div class="clear"></div>来专门进行“清除浮动”。
不过也有不赞同意见是,<div class="clear"></div>可以不写,直接在下层清除就可以了。
比如本来好好的
<p style="float:left;width:200px;">这个是第1列,</p>
<p style="float:left;width:400px;">这个是第2列,</p>
<p style="clear:both;">这个是第3列。</p>
非要整成
<p style="float:left;width:200px;">这个是第1列,</p>
<p style="float:left;width:400px;">这个是第2列,</p>
<div class="clear"></div>
<p>这个是第3列。</p>
这点看来,<div class="clear"></div>确实不需要写。
不过很显然,我们在网页设计时还有一种很普遍的情况:
<style type="text/css">
#main {background-color: #3399CC;width: 600px;padding: 20px;}
#sidebar {background-color: #FF6600; float: left;width: 130px;}
#container {float: right;width: 420px;background-color: #FFFF33;}
</style>
<div id="main">
<div id="sidebar">第一段内容 第一段内容 第一段内容</div>
<div id="container">第二段内容 第二段内容 第二段内容</div>
</div>
<p style="clear:both;">第三段内容</p>
该页面测试在IE下效果正合所要:蓝色块内部有红色和黄色两个色块内容,同时在蓝色块以下是第三段文本。
不过FF的效果可不是这样的。我们不能单单想在下一层清除就能完成我们的工作,我们必须在浮动元素所在标签闭合之前及时进行“清除”。
<style type="text/css">
#main {background-color: #3399CC;width: 600px;padding: 20px;}
#sidebar {background-color: #FF6600; float: left;width: 130px;}
#container {float: right;width: 420px;background-color: #FFFF33;}
.clear {clear: both;}
</style>
<div id="main">
<div id="sidebar">第一段内容 第一段内容 第一段内容</div>
<div id="container">第二段内容 第二段内容 第二段内容</div>
<div class="clear"></div>
</div>
<p>第三段内容</p>
对于因多加的<div class="clear"></div>标签会引起IE和FF高度变化,通过如下方法解决:
.clear {
clear: both;
height:1px;
margin-top:-1px;
overflow:hidden;
}
subversion(简称svn)是近年来崛起的版本管理软件,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。
与CVS对比
在SVN之前,CVS是使用最广泛的版本管理软件。SVN与CVS对比的优点如下:
* 统一的版本号。CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。
* 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
* 重命名、复制、删除文件等动作都保存在版本历史记录当中。
* 对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)
* 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
* 分支的开销非常小。
* 优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之间的网络流量。
使用情况
虽然在 2006年 时 Subversion 的使用族群仍然远少于传统的 CVS,但已经有许多开放原码团体决定将 CVS 转换为 Subversion。已经转换使用 Subversion 的包括了 FreeBSD、Apache Software Foundation、KDE、GNOME、GCC、Python、Samba、Mono 以及许多团体。
许多开发团队换用 Subversion 是因为 Trac、SourceForge、CollabNet、CodeBeamer等专案协同作业软件以及Eclipse、NetBeans等IDE提供 Subversion的支援整合。 除此之外,一些自由软件开发的协作网如SourceForge.net除了提供 CVS 外,现在也提供专案开发者使用 Subversion 作为原码管理系统, JavaForge、Google Code以及 BountySource 则以 Subversion 作为官方的原码管理系统。
2009年,绝大多数CVS服务已经改用SVN。CVS已经停止维护。
客户端
Subversion的客户端有两类,一类是websvn等基于web的,一种是以TortoiseSVN为代表的客户端软件。前者需要web服务器的支持,后者需要用户在本地安装客户端,两种都有免费开源软件供使用。
服务器
Subversion支持linux和windows,更多是安装在linux下。
svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。
svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
不足
只能设置目录的访问权限,无法设置单个文件的访问权限。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/newhappy2008/archive/2010/03/21/5402658.aspx
与CVS对比
在SVN之前,CVS是使用最广泛的版本管理软件。SVN与CVS对比的优点如下:
* 统一的版本号。CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。
* 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
* 重命名、复制、删除文件等动作都保存在版本历史记录当中。
* 对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)
* 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
* 分支的开销非常小。
* 优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之间的网络流量。
使用情况
虽然在 2006年 时 Subversion 的使用族群仍然远少于传统的 CVS,但已经有许多开放原码团体决定将 CVS 转换为 Subversion。已经转换使用 Subversion 的包括了 FreeBSD、Apache Software Foundation、KDE、GNOME、GCC、Python、Samba、Mono 以及许多团体。
许多开发团队换用 Subversion 是因为 Trac、SourceForge、CollabNet、CodeBeamer等专案协同作业软件以及Eclipse、NetBeans等IDE提供 Subversion的支援整合。 除此之外,一些自由软件开发的协作网如SourceForge.net除了提供 CVS 外,现在也提供专案开发者使用 Subversion 作为原码管理系统, JavaForge、Google Code以及 BountySource 则以 Subversion 作为官方的原码管理系统。
2009年,绝大多数CVS服务已经改用SVN。CVS已经停止维护。
客户端
Subversion的客户端有两类,一类是websvn等基于web的,一种是以TortoiseSVN为代表的客户端软件。前者需要web服务器的支持,后者需要用户在本地安装客户端,两种都有免费开源软件供使用。
服务器
Subversion支持linux和windows,更多是安装在linux下。
svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。
svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
不足
只能设置目录的访问权限,无法设置单个文件的访问权限。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/newhappy2008/archive/2010/03/21/5402658.aspx
<?php
$days = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y")); // 31
echo $days;
?>
Fatal error: Call to undefined function cal_days_in_month() in /data/jackxiang/php/date.php on line 3
原来以为cal_days_in_month是drupal下的函数,没想到这个函数是php自带的函数。
下面是这个函数的作用,
cal_days_in_month() 函数针对指定的年份和日历,返回一个月中的天数。
使用这个函数的时候必须在编译 PHP 时加上 --enable-calendar。
但是虚拟主机提供商不会为你的应用把php重新编译。所以我想到用一个别的方法来替代这个函数的作用。
在archive.module里修改如下的代码:
把$num_days_prev = cal_days_in_month(CAL_GREGORIAN, $month-1, $year);
改为:
$num_days_prev = (strtotime("this month")-strtotime("last month"))/(3600*24);
这样,就可以不用cal_days_in_month函数也能直接实现显示日期的效果了!
debug_print_backtrace()
以前查看函数调用堆栈,我会使用 xdebug 等的扩展,其实 PHP5 版本以后已经内置了相关的函数。
顺便再分享个“蛋疼”的小技巧,如果你记不住这个函数的名字,可以用这段代码同样能达到目的(看起来还是记住那个函数靠谱):
<?php
$e = new Exception();
print_r(str_replace('/path/to/code/', '', $e->getTraceAsString()));
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
debug_print_backtrace和debug_backtrace
这两个函数实现相同的目的——记录php函数的调用堆栈——但是表现不同。debug_print_backtrace直接在输出内容中打印出调用堆栈内容,debug_backtrace将调用堆栈以数组的形式返回供php程序使用。
在我的一个数据字典载入类中debug_print_backtrace的输出如下:
#0 DictLoader->b2d(list_number, Array ([freepp] => 24009394,[contact] => 24005945)) called at [/var/www/freepp/DBALayer/User.php:430]
#1 User->_getOneRecordOfArray(list_number, contact, 24005945) called at [/var/www/freepp/DBALayer/User.php:456]
#2 User->getAContact(list_number, 24005945) called at [/var/www/freepp/freepp_b16/processADD.php:60]
#3 processADD(24009394) called at [/var/www/freepp/freepp_b16/principal.php:48]
#0 DictLoader->b2d(list_number, Array ([freepp] => 24005945,[contact] => 24009394)) called at [/var/www/freepp/DBALayer/User.php:430]
#1 User->_getOneRecordOfArray(list_number, contact, 24009394) called at [/var/www/freepp/DBALayer/User.php:456]
#2 User->getAContact(list_number, 24009394) called at [/var/www/freepp/freepp_b16/processADD.php:93]
#3 processADD(24009394) called at [/var/www/freepp/freepp_b16/principal.php:48]
DictLoader是调用该函数的类
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/newhappy2008/archive/2008/04/21/2313159.aspx
阅读全文
以前查看函数调用堆栈,我会使用 xdebug 等的扩展,其实 PHP5 版本以后已经内置了相关的函数。
顺便再分享个“蛋疼”的小技巧,如果你记不住这个函数的名字,可以用这段代码同样能达到目的(看起来还是记住那个函数靠谱):
<?php
$e = new Exception();
print_r(str_replace('/path/to/code/', '', $e->getTraceAsString()));
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
debug_print_backtrace和debug_backtrace
这两个函数实现相同的目的——记录php函数的调用堆栈——但是表现不同。debug_print_backtrace直接在输出内容中打印出调用堆栈内容,debug_backtrace将调用堆栈以数组的形式返回供php程序使用。
在我的一个数据字典载入类中debug_print_backtrace的输出如下:
#0 DictLoader->b2d(list_number, Array ([freepp] => 24009394,[contact] => 24005945)) called at [/var/www/freepp/DBALayer/User.php:430]
#1 User->_getOneRecordOfArray(list_number, contact, 24005945) called at [/var/www/freepp/DBALayer/User.php:456]
#2 User->getAContact(list_number, 24005945) called at [/var/www/freepp/freepp_b16/processADD.php:60]
#3 processADD(24009394) called at [/var/www/freepp/freepp_b16/principal.php:48]
#0 DictLoader->b2d(list_number, Array ([freepp] => 24005945,[contact] => 24009394)) called at [/var/www/freepp/DBALayer/User.php:430]
#1 User->_getOneRecordOfArray(list_number, contact, 24009394) called at [/var/www/freepp/DBALayer/User.php:456]
#2 User->getAContact(list_number, 24009394) called at [/var/www/freepp/freepp_b16/processADD.php:93]
#3 processADD(24009394) called at [/var/www/freepp/freepp_b16/principal.php:48]
DictLoader是调用该函数的类
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/newhappy2008/archive/2008/04/21/2313159.aspx
阅读全文
查阅了很多资料,对于apache中ServerRoot的解释基本都是这样的:ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerRoot定义的路径之下。
1、安装完apache后,我的apache安装目录如下d:\MyPHP\apache2.2\,查看httpd.conf文件,发现ServerRoot定义的目录为:ServerRoot "d:\MyPHP\apache2.2\",不明白的是,apache的进程文件httpd.exe是位于d:\MyPHP\apache2.2\bin\的啊?和官方的解释又不一致,ServerRoot是定义的目录具体是以什么为标准定义的?
2、同样以我安装的为例,假如我把ServerRoot的定义直接改为ServerRoot ".",那这时指定的具体目录又是哪个?
我也是初学者,配置的环境是LAMP,和你的不大一样.但我感觉官方说的和你说的没有矛盾.http的运行目录,它的安装目录这是两个概念.比如DOS下的dir指令,你可以在许多路径下运行它,但它的安装目录肯定只有一个的.进程在运行中是可以改变运行目录的,因此你在设置文件中指定的是相对路径,那就是在d:\MyPHP\apache2.2\下,而不是d:\MyPHP\apache2.2\bin\下.
对于问题3,我个人的感觉具体目录应该是d:\MyPHP\apache2.2\bin\,因为我对具体的源代码没有详细阅读,在这里猜测一下,在httpd运行后,它会根据ServerRoot,改变当前运行环境,但你指定是".",所以还是在当前目录.但这么设置可能会引发一些问题或者错误,引起服务器不能正常运行.
print_r($_SERVER);
print_r($_SERVER);
这个可以得到 Document Root
但是我想得到的是 Server Root
比如我的 httpd.conf
ServerRoot = C:/Apache
DocumentRoot= F:/Myweb
用 phpinfo() 可以看见
Configuration File (php.ini) Path C:\Apache\conf/php.ini
apache2handler
Server Root C:\Apache\
_SERVER["DOCUMENT_ROOT"] F:\Myweb
print_r($_ENV);这个可以吧
可以考虑将phpinfo的内容保存到缓冲区里然后再用正则匹配不出来。
1、安装完apache后,我的apache安装目录如下d:\MyPHP\apache2.2\,查看httpd.conf文件,发现ServerRoot定义的目录为:ServerRoot "d:\MyPHP\apache2.2\",不明白的是,apache的进程文件httpd.exe是位于d:\MyPHP\apache2.2\bin\的啊?和官方的解释又不一致,ServerRoot是定义的目录具体是以什么为标准定义的?
2、同样以我安装的为例,假如我把ServerRoot的定义直接改为ServerRoot ".",那这时指定的具体目录又是哪个?
我也是初学者,配置的环境是LAMP,和你的不大一样.但我感觉官方说的和你说的没有矛盾.http的运行目录,它的安装目录这是两个概念.比如DOS下的dir指令,你可以在许多路径下运行它,但它的安装目录肯定只有一个的.进程在运行中是可以改变运行目录的,因此你在设置文件中指定的是相对路径,那就是在d:\MyPHP\apache2.2\下,而不是d:\MyPHP\apache2.2\bin\下.
对于问题3,我个人的感觉具体目录应该是d:\MyPHP\apache2.2\bin\,因为我对具体的源代码没有详细阅读,在这里猜测一下,在httpd运行后,它会根据ServerRoot,改变当前运行环境,但你指定是".",所以还是在当前目录.但这么设置可能会引发一些问题或者错误,引起服务器不能正常运行.
print_r($_SERVER);
print_r($_SERVER);
这个可以得到 Document Root
但是我想得到的是 Server Root
比如我的 httpd.conf
ServerRoot = C:/Apache
DocumentRoot= F:/Myweb
用 phpinfo() 可以看见
Configuration File (php.ini) Path C:\Apache\conf/php.ini
apache2handler
Server Root C:\Apache\
_SERVER["DOCUMENT_ROOT"] F:\Myweb
print_r($_ENV);这个可以吧
可以考虑将phpinfo的内容保存到缓冲区里然后再用正则匹配不出来。
我的理解是d表示是一个守护进程,就象vsftpd named 这些都是一种命名习惯.
就象脚本都习惯用sh 做后缀一样
像httpd后面的d是什么意思?
被动语态,ed的简写,
意为
1,被服务的;
2,为...服务;
daemon=demon
1. 恶魔,恶鬼
2. 恶人;凶恶的人
3. 邪恶的事物;恶劣的影响
4. 精力充沛的人;高手;热心
daemon
DEFINITION - A daemon (pronounced DEE-muhn) is a program that runs continuously and exists for the purpose of handling periodic service requests that a computer system expects to receive. The daemon program forwards the requests to other programs (or processes) as appropriate. Each server of pages on the Web has an HTTPD or Hypertext Transfer Protocol daemon that continually waits for requests to come in from Web clients and their users.
In mythology, a daemon, according to Webster's, was "an attendant power or spirit."
Daemon can be confused with demon, which has a different but similar meaning. The New Hacker's Dictionary says that a daemon is a program that runs by itself directly under the operating system whereas a demon is part of a larger application program.
就象脚本都习惯用sh 做后缀一样
像httpd后面的d是什么意思?
被动语态,ed的简写,
意为
1,被服务的;
2,为...服务;
daemon=demon
1. 恶魔,恶鬼
2. 恶人;凶恶的人
3. 邪恶的事物;恶劣的影响
4. 精力充沛的人;高手;热心
daemon
DEFINITION - A daemon (pronounced DEE-muhn) is a program that runs continuously and exists for the purpose of handling periodic service requests that a computer system expects to receive. The daemon program forwards the requests to other programs (or processes) as appropriate. Each server of pages on the Web has an HTTPD or Hypertext Transfer Protocol daemon that continually waits for requests to come in from Web clients and their users.
In mythology, a daemon, according to Webster's, was "an attendant power or spirit."
Daemon can be confused with demon, which has a different but similar meaning. The New Hacker's Dictionary says that a daemon is a program that runs by itself directly under the operating system whereas a demon is part of a larger application program.





