<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[水寒软件技术研究中心]]></title>
<link>http://www.shuihan.com/</link>
<description><![CDATA[提供秦皇岛网站制作、网站建设和软件开发服务，致力于ASP/PHP软件开发、单片机C语言开发、嵌入式Linux及Windows CE项目开发，免费为公益机构提供咨询和技术支持。]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[xqlu@shuihan.com(水寒)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>水寒软件技术研究中心</title>
	<url>http://www.shuihan.com/images/logos.gif</url>
	<link>http://www.shuihan.com/</link>
	<description>水寒软件技术研究中心</description>
</image>

			<item>
			<link>http://www.shuihan.com/article.asp?id=515</link>
			<title><![CDATA[windows7中如何显示已知文件扩展名]]></title>
			<author>xqlu@shuihan.com(水寒)</author>
			<category><![CDATA[windows 7]]></category>
			<pubDate>Sun,13 Dec 2009 19:43:32 +0800</pubDate>
			<guid>http://www.shuihan.com/default.asp?id=515</guid>
		<description><![CDATA[<p>windows7中如何显示文件扩展名</p>
<p>　　打开资源管理器，浏览任意目录下的文件。这时候你会发现默认是找不到工具菜单的（我就被迷惑了好久），最后终于找到，按一下&ldquo;Alt&rdquo;键就可以呼出工具菜单，点击&ldquo;工具&rdquo; &gt;&gt; &ldquo;文件夹选项&rdquo; 弹出文件夹选项对话框。这时候的修改就跟xp一样了，点击&ldquo;查看&rdquo;， 将&ldquo;隐藏已知文件类型的扩展名&rdquo;前面的勾选状态取消，点击&ldquo;确定&rdquo; 搞定。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.shuihan.com/article.asp?id=514</link>
			<title><![CDATA[php中microtime()函数]]></title>
			<author>xqlu@shuihan.com(水寒)</author>
			<category><![CDATA[程序设计]]></category>
			<pubDate>Tue,03 Nov 2009 15:32:08 +0800</pubDate>
			<guid>http://www.shuihan.com/default.asp?id=514</guid>
		<description><![CDATA[<h2 style="margin: 13pt 0cm"><span style="font-family: Arial"><span style="mso-ascii-font-family: Cambria; mso-ascii-theme-font: major-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: major-fareast; mso-hansi-font-family: Cambria; mso-hansi-theme-font: major-latin">首先介绍一下</span><span lang="EN-US">microtime()</span><span style="mso-ascii-font-family: Cambria; mso-ascii-theme-font: major-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: major-fareast; mso-hansi-font-family: Cambria; mso-hansi-theme-font: major-latin">函数的用法：</span></span><span lang="EN-US"><o:p></o:p></span></h2>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><b style="mso-bidi-font-weight: normal"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">定义和用法<span style="color: red">（</span></span><span lang="EN-US" style="color: red">php5</span></b><b style="mso-bidi-font-weight: normal"><span style="color: red; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">）</span></b><b style="mso-bidi-font-weight: normal"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">：</span></b></font></span><font size="3"><b style="mso-bidi-font-weight: normal"><span lang="EN-US"><o:p></o:p></span></b></font></p>
<p class="MsoListParagraph" style="text-indent: -18pt; margin: 0cm 0cm 0pt 18pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span style="font-family: Arial"><span lang="EN-US" style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3">(1)</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><font size="3"><span lang="EN-US">microtime() </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">函数返回当前</span><span lang="EN-US"> Unix </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">时间戳和微秒数。</span></font></span></p>
<p class="MsoListParagraph" style="text-indent: -18pt; margin: 0cm 0cm 0pt 18pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span style="font-family: Arial"><span lang="EN-US" style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: Ignore"><font size="3">(2)</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp; </span></span></span><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">返回的字符串的格式：</span><span lang="EN-US">msec sec</span></font></span><font size="3"><span lang="EN-US"><font face="宋体"><o:p></o:p></font></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><b style="mso-bidi-font-weight: normal"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">语法：</span><span lang="EN-US">microtime(get_as_float) </span></font></b></span><b style="mso-bidi-font-weight: normal"><font size="3"><span lang="EN-US"><font face="宋体"><o:p></o:p></font></span></font></b></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">参数：</span><span lang="EN-US">get_as_float </span></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">描述：如果给出了</span><span lang="EN-US"> get_as_float </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">参数并且其值等价于</span><span lang="EN-US"> TRUE</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">，该函数将返回一个浮点数。</span><span lang="EN-US"> </span></font></span><font size="3"><font face="宋体"><span lang="EN-US"><o:p></o:p></span></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><b style="mso-bidi-font-weight: normal"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">说明</span></font></b></span><b style="mso-bidi-font-weight: normal"><font size="3"><span lang="EN-US"><o:p></o:p></span></font></b></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">本函数仅在支持</span><span lang="EN-US"> gettimeofday() </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">系统调用的操作系统下可用。</span></font></span><font size="3"><span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><u><span style="color: red; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">如果调用时不带可选参数，本函数以</span><span lang="EN-US" style="color: red"> &quot;msec sec&quot; </span></u><u><span style="color: red; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">的格式返回一个字符串，其中</span><span lang="EN-US" style="color: red"> sec </span></u><u><span style="color: red; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">是自</span><span lang="EN-US" style="color: red"> Unix </span></u><u><span style="color: red; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">纪元（</span><span lang="EN-US" style="color: red">0:00:00 January 1, 1970 GMT</span></u><u><span style="color: red; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">）起到现在的秒数，</span><span lang="EN-US" style="color: red">msec </span></u><u><span style="color: red; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">是微秒部分。字符串的两部分都是以秒为单位返回的。</span></u></font></span><font size="3"><u><span lang="EN-US" style="color: red"><o:p></o:p></span></u></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><b style="mso-bidi-font-weight: normal"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">示例代码：</span></font></b></span><b style="mso-bidi-font-weight: normal"><font size="3"><span lang="EN-US"><o:p></o:p></span></font></b></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">&lt;?php</font></span></span><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">echo microtime();</font></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">echo '&lt;br /&gt;';</font></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">echo microtime(TRUE);</font></span></span><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">?&gt;</font></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><b style="mso-bidi-font-weight: normal"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">运行该代码浏览器显示结果：</span></font></b></span><b style="mso-bidi-font-weight: normal"><font size="3"><span lang="EN-US"><o:p></o:p></span></font></b></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">0.45316500 12212282521221228252.45</font></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">我们看到</span><span lang="EN-US">microtime(TRUE),</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">只返回了</span><span lang="EN-US">2</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">位的小数。如果要输出更多位的微秒，需要函数</span><span lang="EN-US">number_format().</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">看最后附</span><span lang="EN-US">1</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">这个函数的用法。</span></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">补充：在</span><span lang="EN-US">PHP4</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">下</span><span lang="EN-US">microtime()</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">的用法</span><span lang="EN-US"> ,</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">由于没有参数</span><span lang="EN-US">TRUE</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">的用法，所以如果要得到浮点数，需要配合</span><span lang="EN-US">array_num()</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">函数和</span><span lang="EN-US">explode</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">（）函数。</span></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">比如：</span></font></span><font size="3"><span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">　　在</span><span lang="EN-US">PHP</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">里面，要想统计一个</span><span lang="EN-US">action</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">或者一个函数或者某个过程的执行所消耗的时间往往都只有一个办法：<u><span style="color: #0070c0">在运算前记录下时间戳，在运算后记录下时间戳，然后相减，就能得到一个相对比较实际的时间</span></u>。</span> <span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">基本代码如下（从</span><span lang="EN-US">phpmyadmin</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">里复制而来，懒得打了。这段代码其实也就是</span><span lang="EN-US">phpMyadmin</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">里</span><span lang="EN-US">SQL</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">的执行时间的计算）：</span><span lang="EN-US"> </span></font></span><font face="宋体"><font size="3"><span lang="EN-US"><o:p></o:p></span></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span lang="EN-US">PHP</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">代码：</span></font></span><font size="3"><span lang="EN-US"><o:p></o:p></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">&lt;?php </font></span></span><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">// garvin: Measure query time. </font></span></span><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">// TODO-Item http://sourceforge.net/tracker/index.php?func=detail&amp;aid=571934&amp;group_id=23067&amp;atid=377411 </font></span></span><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">$querytime_before = array_sum(explode(' ', microtime())); </font></span></span><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">$result = @PMA_DBI_try_query($full_sql_query, null, PMA_DBI_QUERY_STORE); </font></span></span><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">$querytime_after = array_sum(explode(' ', microtime())); </font></span></span><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">$GLOBALS['querytime'] = $querytime_after - $querytime_before; </font></span></span><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">?&gt; </font></span></span><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">看文章最后附</span><span lang="EN-US">2, array_sum()</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">函数的用法。</span></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">其中</span><span lang="EN-US">array_sum(explode(' ', microtime())); </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">是</span><span lang="EN-US">PHP4</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">时代的写法，到</span><span lang="EN-US">PHP5</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">之后</span><span lang="EN-US">,microtime</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">函数多了一个</span><span lang="EN-US">bool</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">值的参数，加上这个参数后可以直接得到</span><span lang="EN-US"> array_sum(explode(' ', microtime())); </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">相等的值，即：</span><span lang="EN-US">microtime(true)</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">。</span> </font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<h3 style="margin: 13pt 0cm"><span style="font-family: Arial"><font size="5"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">附</span><span lang="EN-US">1</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">：</span><span lang="EN-US">number_format()</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">的用法</span> </font></span><font size="5"><font face="宋体"><span lang="EN-US"><o:p></o:p></span></font></font></h3>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><b style="mso-bidi-font-weight: normal"><span lang="EN-US">number_format</span></b><b style="mso-bidi-font-weight: normal"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">函数</span></b></font></span><font face="宋体"><font size="3"><b style="mso-bidi-font-weight: normal"><span lang="EN-US"><o:p></o:p></span></b></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin"><font size="3">格式化数字字串。</font></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">语法</span><span lang="EN-US">: string number_format(float number, int [decimals], string [dec_point], string [thousands_sep]); </span></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">传回值</span><span lang="EN-US">: </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">字串</span> </font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">函式种类</span><span lang="EN-US">: </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">数学运算</span><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp; </span></span></font></span><font size="3"><font face="宋体"><span lang="EN-US"><o:p></o:p></span></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span></font></span></span><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">内容说明</span> </font></span><font size="3"><font face="宋体"><span lang="EN-US"><o:p></o:p></span></font></font></p>
<p class="MsoNormal" style="text-indent: 24pt; margin: 0cm 0cm 0pt; mso-char-indent-count: 2.0"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">本函式用来将浮点参数</span><span lang="EN-US"> number </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">格式化。若没加参数</span><span lang="EN-US"> decimals </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">则传回的字串只要整数部份，加了此参数才依参数指定的小数点位数传回。参数</span><span lang="EN-US"> dec_point </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">表示小数点的表示方式方法，内定值是</span><span lang="EN-US"> &quot;.&quot;</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">，若需要转换成其它的小数点就可以在这个参数改掉。参数</span><span lang="EN-US"> thousands_sep </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">为整数部份每三位的分隔符号，内定值是</span><span lang="EN-US"> &quot;,&quot;</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">。本函式最特别的地方就是参数数目，最少要有一个，也就是欲格式化的字串；也可以有二个或者四个参数，但不能用三个参数。值得注意的是指定小数点的位数之后的数字直接舍弃，没有四舍五入的情形。</span><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp; </span></span></font></span><font size="3"><font face="宋体"><span lang="EN-US"><o:p></o:p></span></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span></font></span></span><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">使用范例</span> </font></span><font size="3"><font face="宋体"><span lang="EN-US"><o:p></o:p></span></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">&lt;?php </font></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">$short_pi = &quot;3.14159&quot;;</font></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">$my_pi = number_format($short_pi, 2);</font></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">echo $my_pi.&quot;\n&quot;;<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>// 3.14</font></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">$foo = 850017.9021;</font></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">$new_foo = number_format($foo, 3, &quot;.&quot;, &quot; &quot;);</font></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">echo $new_foo.&quot;\n&quot;;<span style="mso-spacerun: yes">&nbsp; </span>// 850 017.902</font></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">?&gt;<span style="mso-spacerun: yes">&nbsp; </span></font></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<h3 style="margin: 13pt 0cm"><span style="font-family: Arial"><font size="5"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">附</span><span lang="EN-US">2 array_num</span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">的用法</span></font></span><font size="5"><span lang="EN-US"><o:p></o:p></span></font></h3>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><b style="mso-bidi-font-weight: normal"><span lang="EN-US"><font size="3">array_sum (PHP 4 &gt;= 4.0.4)<span style="mso-spacerun: yes">&nbsp; </span></font></span></b></span><b style="mso-bidi-font-weight: normal"><span lang="EN-US"><font face="宋体"><font size="3"><o:p></o:p></font></font></span></b></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span lang="EN-US">array_sum --<span style="mso-spacerun: yes">&nbsp; </span></span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">计算数组中所有值的和</span></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">说明：</span><span lang="EN-US">mixed array_sum ( array array) </span></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span lang="EN-US">array_sum() </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">将数组中的所有值的和以整数或浮点数的结果返回。</span> </font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">例子</span><span lang="EN-US">1. array_sum() </span><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">例子</span></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">&lt;?php</font></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">$a = array(2, 4, 6, 8);</font></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">echo &quot;sum(a) = &quot;.array_sum($a).&quot;\n&quot;; </font></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">$b = array(&quot;a&quot;=&gt;1.2,&quot;b&quot;=&gt;2.3,&quot;c&quot;=&gt;3.4);</font></span></span></p>
<p class="MsoNormal" style="text-indent: 21pt; margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">echo &quot;sum(b) = &quot;.array_sum($b).&quot;\n&quot;;<span style="mso-spacerun: yes">&nbsp; </span></font></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><font size="3">?&gt;</font></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><span lang="EN-US"><o:p><font size="3">&nbsp;</font></o:p></span></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Arial"><font size="3"><span style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">以上程序输出为：</span><span lang="EN-US"> sum(a) = 20sum(b) = 6.9 </span></font></span></p>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.shuihan.com/article.asp?id=513</link>
			<title><![CDATA[XHTML的标签嵌套规则]]></title>
			<author>xqlu@shuihan.com(水寒)</author>
			<category><![CDATA[生活笔记]]></category>
			<pubDate>Sun,11 Oct 2009 00:27:07 +0800</pubDate>
			<guid>http://www.shuihan.com/default.asp?id=513</guid>
		<description><![CDATA[<strong>下面是一份在 HTML 4 Strict 和 XHTML 1.0 Strict 下必须遵守的标签嵌套规则，比如你不能在 &lt;a&gt; 里面再嵌入一个 &lt;a&gt; 这样的约定。</strong><br/><br/><strong>说明：</strong><br/><br/>1. 为了方便读者阅读，本文中的标签使用了大写（根据 XHTML 的规则，元素名必须小写，比如 &lt;html&gt; 而不应是 &lt;HTML&gt;）。<br/>2. 小写的单词表明一组或一系列 HTML 标签。<br/>3. 每一项条目（标签）后都跟随一组标签列表，如果没有这个列表，那么表明该条目（标签）内部不允许包含任何标签。这意味着该条目内部只能包含纯文本内容（#PCDATA，见下文）。如果注明 (empty)，这意味着该条目内部不允许包含任何形式的内容。对于 flow，inline，block，OBJECT 和 BODY，其内部允许包含的内容在文中会单独给出。 <br/>4. #PCDATA 的意思是“parsed character data”，即纯文本内容（不包括任何 HTML 标签，但是转义内容可以存在，比如 &amp;auml; 和 &amp;#228;）。<br/>5. CDATA 的意思是“character data”，这意味着不包括转义内容的纯文本内容，详细内容可以参考CDATA Confusion。<br/>6. excluding ... 意即不得直接或者间接的包含所列的元素。<br/><br/><img src="http://www.shuihan.com/download.asp?id=2" border="0" alt=""/><br/><br/><strong>注1. </strong>以上内容基于 [HTML 4.01 Specification] 的 Strict DTD。JunChen 翻译自 Allowed nesting of elements in HTML 4 Strict (and XHTML 1.0 Strict)，水寒转载。<br/><br/><strong>注2</strong>. 对于 XHTML 1.0，基本上一致，不同点如下：<br/>1. 对于 &lt;script&gt; 和 &lt;style&gt; 的内容，在 HTML 4 里是 CDATA 而在 XHTML 里是 #PCDATA <br/>2. 在 XHTML 中，&lt;table&gt; 标签后可以紧跟一个 &lt;tr&gt;，而在 HTML 4.01 里，不允许这样，不过 &lt;tbody&gt; 标签又是可以省略的。意思就是说，如果代码中的 &lt;table&gt; 后紧跟 &lt;tr&gt;，对于 HTML 4.01，会隐性的生成一个 &lt;tbody&gt; 标签，而在 XHTML 里面就没有。这会影响到样式表使用 tbody 作为选择器。]]></description>
		</item>
		
			<item>
			<link>http://www.shuihan.com/article.asp?id=512</link>
			<title><![CDATA[漏极开路电路和IO口驱动能力分析]]></title>
			<author>xqlu@shuihan.com(水寒)</author>
			<category><![CDATA[生活笔记]]></category>
			<pubDate>Fri,31 Jul 2009 17:59:15 +0800</pubDate>
			<guid>http://www.shuihan.com/default.asp?id=512</guid>
		<description><![CDATA[<p><span style="font-size: 13px; line-height: 1.8em">　　<span style="font-weight: bold"><wbr></wbr><span style="color: #800000"><span style="line-height: 1.8em">漏极开路电路</span></span><wbr></wbr></span><wbr></wbr>在数字信号输入输出和驱动负载上有着重要作用，通过漏极开路电路可以实现IO口的三态（即可以实现高电平、低电平和高阻状态），有了高阻状态就可以检测输入信号；同时作为输出口时通过上拉电阻接高电平可以增强输出口的驱动能力。所以很有必要了解、掌握漏极开路电路的分析。 </span><wbr></wbr><br />
<br />
&nbsp;</p>
<div style="text-align: center"><span style="font-size: 13px; line-height: 1.8em"><wbr></wbr><wbr></wbr><span style="font-size: 13px; line-height: 1.8em"><img alt="" src="http://www.shuihan.com/download.asp?id=1" /></span>&nbsp;</span><wbr></wbr></div>
<p><br />
<span style="font-size: 13px; line-height: 1.8em">　　要了解<span style="font-weight: bold"><wbr></wbr><span style="color: #800000"><span style="line-height: 1.8em">漏极开路电路</span></span><wbr></wbr></span><wbr></wbr>，我们先来看看<span style="font-weight: bold"><wbr></wbr>集电极开路输出</span><wbr></wbr>的结构。<span style="font-weight: bold"><wbr></wbr>集电极开路输出</span><wbr></wbr>的结构如图1所示，右边的那个三极管集电极什么都不接，所以叫做<span style="font-weight: bold"><wbr></wbr>集电极开路</span><wbr></wbr>（<span style="line-height: 1.8em; font-family: '仿宋_GB2312'">左边的三极管为反相之用，使输入为&ldquo;0&rdquo;时，输出也为&ldquo;0&rdquo;</span><wbr></wbr>）。对于图1，当左端的输入为&ldquo;0&rdquo;时，前面的三极管截止（<span style="line-height: 1.8em; font-family: '仿宋_GB2312'">即集电极C跟发射极E之间相当于断开</span><wbr></wbr>），所以5V电源通过1K电阻加到右边的三极管上，右边的三极管导通（<span style="line-height: 1.8em; font-family: '仿宋_GB2312'">即相当于一个开关闭合</span><wbr></wbr>）；当左端的输入为&ldquo;1&rdquo;时，前面的三极管导通，而后面的三极管截止（<span style="line-height: 1.8em; font-family: '仿宋_GB2312'">相当于开关断开</span><wbr></wbr>）。 <br />
<br />
　　再将图1简化成图2的样子。图2中的开关受软件控制，&ldquo;1&rdquo;时断开，&ldquo;0&rdquo;时闭合。很明显可以看出，当开关闭合时，输出直接接地，所以输出电平为0。而当开关断开时，则输出端悬空了，即<span style="font-weight: bold"><wbr></wbr>高阻态</span><wbr></wbr>。<span style="text-decoration: underline"><wbr></wbr>高阻态就是这时电平状态未知，他的电平由端口的负载决定</span><wbr></wbr>。如果后面一个电阻负载（<span style="line-height: 1.8em; font-family: '仿宋_GB2312'">即使很轻的负载</span><wbr></wbr>）到地，那么输出端的电平就被这个负载拉到低电平了，所以<span style="text-decoration: underline"><wbr></wbr>这个电路是不能输出高电平的</span><wbr></wbr>。 <br />
<br />
　　这个时候再看图3。图3中那个1K的电阻即是<span style="font-weight: bold"><wbr></wbr>上拉电阻</span><wbr></wbr>。如果开关闭合，则有电流从1K电阻及开关上流过，但由于开关闭和时电阻为0（<span style="line-height: 1.8em; font-family: '仿宋_GB2312'">方便我们的讨论，实际情况中开关电阻不为0，另外对于三极管还存在饱和压降</span><wbr></wbr>），所以在开关上的电压为0，即输出电平为0。如果开关断开，则由于开关电阻为无穷大（<span style="line-height: 1.8em; font-family: '仿宋_GB2312'">同上，不考虑实际中的漏电流</span><wbr></wbr>），所以流过的电流为0，因此在1K电阻上的压降也为0，所以输出端的电压就是5V了，这样就能输出高电平了。</span><wbr></wbr> <br />
<br />
<span style="font-size: 13px; line-height: 1.8em">　　但是这个输出的内阻是比较大的（即1K&Omega;），如果接一个电阻为R的负载，通过分压计算，就可以算得最后的输出电压为5*R/(R+1000)伏，即5/(1+1000/R)伏。所以，如果要达到一定的电压的话，R就不能太小。如果R真的太小，而导致输出电压不够的话，那我们只有通过减小那个1K的上拉电阻来增加驱动能力。但是，上拉电阻又不能取得太小，因为当开关闭合时，将产生电流，由于开关能流过的电流是有限的，因此限制了上拉电阻的取值，另外还需要考虑到，当输出低电平时，负载可能还会给提供一部分电流从开关流过，因此要综合这些电流考虑来选择合适的上拉电阻。</span><wbr></wbr> <br />
<br />
<span style="font-size: 13px; line-height: 1.8em">　　如果我们将一个读数据用的输入端接在输出端，这样就是一个IO口了（<span style="color: #ff0000"><span style="line-height: 1.8em; font-family: '仿宋_GB2312'">51单片机的IO口就是这样的结构，其中P0口内部不带上拉，而其它三个口带内部上拉</span></span><wbr></wbr>）。这也是为什么51单片机IO口叫做准双向口，在使用IO输入信号时需要先把IO口写1。类似只要带上拉电阻的三态IO口，是当我们要使用输入功能时，只要将输出口设置为1即可，这样就相当于那个开关断开，而对于P0口来说，就是高阻态了。 <br />
<br />
　　对于<span style="font-weight: bold"><wbr></wbr><span style="color: #800000"><span style="line-height: 1.8em">漏极开路（OD）输出</span></span><wbr></wbr></span><wbr></wbr>，跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极，OC就变成了OD，原理分析是一样的。 <br />
<br />
　　另一种输出结构是<span style="font-weight: bold"><wbr></wbr><span style="color: #800000"><span style="line-height: 1.8em">推挽输出</span></span><wbr></wbr></span><wbr></wbr>。<span style="text-decoration: underline"><wbr></wbr><span style="font-weight: bold"><wbr></wbr><span style="color: #800000"><span style="line-height: 1.8em">推挽输出</span></span><wbr></wbr></span><wbr></wbr>的结构就是把上面的上拉电阻也换成一个开关，当要输出高电平时，上面的开关通，下面的开关断；而要输出低电平时，则刚好相反</span><wbr></wbr>。比起OC或者OD来说，这样的推挽结构高、低电平驱动能力都很强。如果两个输出不同电平的输出口接在一起的话，就会产生很大的电流，有可能将输出口烧坏。而上面说的OC或OD输出则不会有这样的情况，因为上拉电阻提供的电流比较小。如果是推挽输出的要设置为高阻态时，则两个开关必须同时断开（或者在输出口上使用一个传输门），这样可作为输入状态，AVR单片机的一些IO口就是这种结构。</span><wbr></wbr></p>]]></description>
		</item>
		
			<item>
			<link>http://www.shuihan.com/article.asp?id=511</link>
			<title><![CDATA[Debian/Ubuntu和XP双系统：重装Windows XP后修复GRUB]]></title>
			<author>xqlu@shuihan.com(水寒)</author>
			<category><![CDATA[电脑故障]]></category>
			<pubDate>Thu,07 May 2009 16:07:19 +0800</pubDate>
			<guid>http://www.shuihan.com/default.asp?id=511</guid>
		<description><![CDATA[<strong>debian Grub修复方法一：</strong><br/>用启动盘进入LINUX，然后输入命令<br/><span style="font-family:Courier New"><span style="color:Green">grub<br/>root (hd0,0)<br/>setup (hd0)<br/>quit</span></span><br/>注意root 、setup后面有空格<br/><br/><strong>debian Grub修复方法二：</strong><br/>1、用光盘启动系统；<br/>2、按系统的提示一步步进行操作，当进行到分区的时候，按住键盘的ALT+F2。<br/>3、运行命令：<br/><span style="color:Green"><span style="font-family:Courier New">mkdir /mnt<br/>mount /dev/ide/host0/target0/lun0/part1 /mnt<br/>chmod /mnt</span></span><br/>4、<span style="color:Green"><span style="font-family:Courier New">grub-install /dev/hda</span></span><br/>5、重新启动系统。<br/><br/><strong>Ubuntu Grub修复方法</strong><br/>修复grub的方法：<br/>使用livecd启动，进入桌面系统，在终端输入<br/><span style="font-family:Courier New"><span style="color:Green">sudo grub up&#100;ate</span></span><br/>进入grub命令行，输入<br/><span style="font-family:Courier New"><span style="color:Green">root (hd0,x)<br/>setup (hd0)</span></span><br/><br/>hd0 指第一块硬盘(不分串口SATA、并口PATA)，x是linux的主目录“/”所在分区号，编号从0开始，比linux里显示的分区编号小1。比如 linux里显示硬盘分区号为hda5，这里x就是4。分区编号可以用菜单里的磁盘实在不知道是多少，就挨个试，到grub提示分区格式为ex2fs一般就是了。注意root (hd0,x)在root后面必须有空格。root命令是指定引导的分区，setup命令把引导信息写到硬盘MBR。 ]]></description>
		</item>
		
			<item>
			<link>http://www.shuihan.com/article.asp?id=510</link>
			<title><![CDATA[搭建debian环境的C/C++研发环境]]></title>
			<author>xqlu@shuihan.com(水寒)</author>
			<category><![CDATA[服务器技术]]></category>
			<pubDate>Tue,05 May 2009 14:33:24 +0800</pubDate>
			<guid>http://www.shuihan.com/default.asp?id=510</guid>
		<description><![CDATA[需要准备好安装光盘，然后使用如下命令：<br/>利用 apt-get build-dep<br/>安装 Gnome 研发环境 ( 包括了 C ， Gtk ， Gnome 等 )<br/>apt-get build-dep gedit<br/>安装 KDE 研发环境 （ 包括了 C++ ， Qt ， KDE ）<br/>apt-get build-dep kate]]></description>
		</item>
		
			<item>
			<link>http://www.shuihan.com/article.asp?id=509</link>
			<title><![CDATA[给网页上的Flash增加上超级链接和各种鼠标事件]]></title>
			<author>xqlu@shuihan.com(水寒)</author>
			<category><![CDATA[设计艺术]]></category>
			<pubDate>Wed,15 Apr 2009 22:41:56 +0800</pubDate>
			<guid>http://www.shuihan.com/default.asp?id=509</guid>
		<description><![CDATA[　　说到这个问题，可能有人就会说，那还不简单，直接用flash的ActionScript中的url方法不就搞定了，那么如果我们的UI人员设计完flash,但flash对应的链结还没有确定或者以后会变更怎么办？我需要的是能够在外部修改flash对应的链结。<br/><br/>　　那直接在flash所在的object元素外部加&lt;a&gt;&lt;/a&gt;标签来控制不就行了，可能有些人会这么想，思路正确，但是行不通。呵呵，怎么办？百度一下先，呵呵，真是相当佩服某些人的牛脑，真牛，下面是一种解决的方法：<br/><br/>　　首先，我们肯定是要先插入FLASH，因为Flash默认是最高层。所以，我经常会遇见Flash把下拉菜单挡住的情况。通过把Flash文件放到一个层中，使用CSS将该层设为最底层，FLASH设为透明。<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code78237);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.shuihan.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code78237><br/>&lt;div style=&#34;z-index:-1&#34;&gt; &lt;!--1.设置FLASH为底层--&gt;<br/>&lt;object classid=&#34;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&#34; codebase=&#34;<a href="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" target="_blank" rel="external">http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab</a>#version=6,0,29,0&#34; width=&#34;100&#34; height=&#34;100&#34;&gt;<br/>&#160;&#160;&#160;&#160;&lt;param name=&#34;movie&#34; value=&#34;media.swf&#34;&gt;<br/>&#160;&#160;&#160;&#160;&lt;param name=&#34;quality&#34; value=&#34;high&#34;&gt;<br/>&#160;&#160;&#160;&#160;&lt;embed src=&#34;media.swf&#34; quality=&#34;high&#34; pluginspage=&#34;<a href="http://www.macromedia.com/go/getflashplayer" target="_blank" rel="external">http://www.macromedia.com/go/getflashplayer</a>&#34; type=&#34;application/x-shockwave-flash&#34; width=&#34;100&#34; height=&#34;100&#34;&gt;&lt;/embed&gt;<br/>&#160;&#160;&#160;&#160;&lt;param name=&#34;wmode&#34; value=&#34;transparent&#34;&gt;&lt;!--2.必须把FLASH设置为透明--&gt;<br/>&lt;/object&gt;<br/>&lt;/div&gt;<br/></div></div><br/>　　再接下来,就是在FLASH的层上再加上一层，Flash本身不能直接加入onclick等事件，所以，只能借助别的东西啦。就是在FLASH上加个透明层：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code26303);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.shuihan.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code26303>&lt;div id=&#34;huiLayer&#34; style=&#34;cursor: hand; position:absolute; left:0px; top:0px; width:200px; height:115px; z-index:1; visibility: visible;&#34;&gt;<br/>&#160;&#160;&#160;&#160;&lt;a href=&#34;<a href="http://www.cnlk.com" target="_blank" rel="external">http://www.cnlk.com</a>&#34;&gt;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&lt;img src=&#34;blank.gif&#34; width=&#34;100&#34; height=&#34;100&#34; border=&#34;0&#34;&gt;<br/>&#160;&#160;&#160;&#160;&lt;/a&gt;<br/>&lt;/div&gt;</div></div><br/>　　论坛上面给了一些解决方法，就是加个透明的层，但是，如果光有个透明层，还是不能接受事件的，更确切地说是一部分可以，一部分不可以，和FLASH部分重叠的那一部分不行。<br/><br/>　　为什么不行？说实话，我也不清楚，我是试验得出来的...当我把这个层的背景颜色设为任意一种时，不是透明时，发现可以接受事件了；在层上加了个超连接也可以.. 但是，这还不是我们要的结果。因为把整个&#34;精美&#34;的FLASH给遮盖了...所以，有&lt;img<br/>src=&#34;blank.gif&#34; width=&#34;100&#34; height=&#34;100&#34; border=&#34;0&#34;&gt;。我用PhotoShop做了个透明的图片blank.gif，大小多大都可以，我使用的是1像素高，1像素宽，但是必须是透明的！这样才不至于把底下的FLASH给遮盖住了。<br/><br/>　　试验了一下... 成功了... 分析一下：如果点击FLASH，其实是击中了FLASH上层的透明图片blank.gif图片，就可以接受很多事件啦，onclick、onmouseover、onmosueout ......给图片加个&lt;a&gt;&lt;/a&gt;超连接是再简单不过的事啦... 这样，以上的问题是不是都解决了，把事件都给blank.gif接受！<br/><br/>　　比如单击事件：&lt;div onclick=&#34;ok()&#34; id=&#34;huiLayer&#34; ...........<br/><br/>　　不管是坐火车，还是飞飞机，过年都得回家，所以方法还是有的，Flash本身还提供了一种方法，相当的好用，就是在Flash内部通过FSCommand调用外部的脚本，个人认为这种方法简单实用，可控能力强，具体用法，就不在这里多说了，你在网上搜FSCommand关键键字就会啊到很多实例，不过还是有一点提示：在提供javascript版本的调用方法时，最好也提供一个vbscript的版本，否则调用可能会不成功。]]></description>
		</item>
		
			<item>
			<link>http://www.shuihan.com/article.asp?id=508</link>
			<title><![CDATA[WEB标准之CSS: 打造自己的reset.css]]></title>
			<author>xqlu@shuihan.com(水寒)</author>
			<category><![CDATA[程序设计]]></category>
			<pubDate>Sat,11 Apr 2009 10:06:28 +0800</pubDate>
			<guid>http://www.shuihan.com/default.asp?id=508</guid>
		<description><![CDATA[本文转载自：PHP5研究室&lt;<a href="http://www.phpv.net/html/1672.html" target="_blank" rel="external">http://www.phpv.net/html/1672.html</a>&gt;。<br/><br/>0，引言<br/><br/>　　每每有新项目，第一步就是应当使用一个reset.css来重置样式。滥用不如不用，直接拿个现成的reset.css过来将导致后期各种离奇bug的发生。<br/><br/>　　所以最好还是自己写一个reset.css，并且要明白每一条 reset都是用来做什么的。<br/><br/>　　reset.css本意就是重置样式，我始终建议把.clearfix放入layout.css,而把h1、h2之类的定义放进typography.css。 <br/><br/>　　具体如何规划网站CSS结构，不在文本讨论之列，可以参考Smashing Magazine上的文章，国内有差强人意的中文译版。 <br/><br/>　　注意，本文把reset分成了两个部分，一个是纯reset.css，可以用于任何项目。另一个是用于特定项目的“reset”，自定义修改的内容，这些内容可以放在layout.css、typography.css之类的文件中，他们共同导入到一个base.css形成一个项目的基础样式。<br/><br/>　　本文就是来介绍如何写一个合适所有项目的通用的reset.css，以及介绍在设置玩reset.css之后需要针对不同项目要首先要设置的内容。<br/><br/>1，基础<br/><br/>　　牛顿是站在巨人伽利略的肩膀上的，我们也可以这么做。首先我们要选定一个前进的基础。<br/><br/>　　请永远不要使用 <br/><br/>　　* { margin: 0; padding: 0; }<br/><br/>　　这问题太多了，在此不多加表述。<br/><br/>　　目前比较流行的有Eric Meyer的重置样式和YUI的重置样式。另有Condensed Meyer Reset简化Eric Meyer的样式。有趣的是，Eric的重置样式也是源于YUI的。而那份简化版又把Eric的样式简化回YUI的样式了 。但同时，糟糕的是，网上流传的比较广的(尤其是国内)都不是最新的版本。<br/><br/>　　上面两个页面里直接看到的都不是最新的，Eric专门为有一个reset.css页面。而YUI当前版本(2.7.0)的reset.css实际地址里，比上面的页面中还多一些东西。此外，我们还可以基于一些常见的框架，比较著名的比如Blueprint或者Elements CSS Framework（这个的reset也是源自于Eric Meyer的）。<br/><br/>　　OK，准备工作就差不多了。以上这些都可以作为参考资料来组织我们自己的reset。我这里主要采用YUI，兼带Eric的reset。<br/><br/>2，默认色彩<br/><br/>　　对于页面是不是有默认背景色和前景色，YUI和Eric有着不同的看法。<br/>　　YUI重置背景色为白色而文字颜色为黑色。<br/><br/>html {<br/>&nbsp;&nbsp;&nbsp;&nbsp;color: #000;<br/>&nbsp;&nbsp;&nbsp;&nbsp;background: #FFF;<br/>}<br/>　　而Eric在当前最新版中让所有颜色为透明，他认为透明才是最原始的颜色。虽然他曾一度认为也应当设置白色背景色、黑色文字颜色。至于最后为什么改了，Eric并没有给出具体理由。<br/><br/>　　这个问题我基本认为是用户自定义的更重要还是你的设计更重要的问题。我个人的观点是，如果你的设计本身就是白色背景，那么不要设置背景。一小部分中高水平的用户，他们会自定义网页默认背景色。<br/><br/>　　设置成他们喜欢的背景色，比如浅蓝色。基本常见的浏览器都提供了这个简单的功能。而我们的背景色重置则会破坏用户的选择——尽管这样能保证你的设计原汁原味的呈现给所有用户。当然我知道，更高端的用户会用Stylish之类的Firefox扩展来自定义页面。<br/><br/>　　但不得不说，只会用“选项”来调背景色的用户更多，不是么？而同时，如果设计本身就有其他背景色，比如黑色、蓝色、绿色之类的，OK，这些设计当然可以设置背景色。但请不要放进reset.css里。这里是重置样式的地方，不是你设计的地方。请把你的设计放在更广袤的土地上。<br/><br/><br/>　　所以，简单说来，NO，不要在reset中设置背景色。<br/><br/>　　那么，文字颜色呢？原则上来说，也是不应该设置文字颜色的。但是IE中的表单元素中legend这个对象比较特别，跟主题结合的比较紧密。legend会默认有自己的颜色（跟当前的主题有关）而不会继承父元素的颜色（即便设了color:inherit;）。<br/><br/><br/>　　从某些角度来说，可以想当然地认为设置字体颜色人数远小于设置背景色的人数；以及认为就算设置了背景色，人们看到legend元素是黑色的也不会觉得奇怪。因此，YUI在其reset中设置了legend {color: #000;}是无可厚非的。<br/><br/><br/>　　但反过来说，把这个放到typography.css或者form.css里岂不是更好？不同的页面设计，其对legend的色彩要求很可能是不同的，放在reset.css里重复定义是没有必要的。因此这条CSS规则可以作为在reset.css之后首先应当设置的规则。<br/><br/>3，padding和margin<br/><br/>　　曾经一度流行的* { margin: 0; padding: 0; }也就是出于这个目的。让各个元素的padding和margin都归零，尤其是那些h1和p以及ul/ol/li之类的元素，还有，body本身也是有margin的。清除元素的padding和margin是很有用的。<br/><br/>YUI这样做：<br/><br/>body, div, dl, dt, dd, ul, ol, li,<br/>h1, h2, h3, h4, h5, h6, pre, code,<br/>form, fieldset, legend, input, button,<br/>textarea, p, blockquote, th, td {<br/>&nbsp;&nbsp;&nbsp;&nbsp;margin: 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;padding: 0;<br/>}<br/><br/>而Eric这样做：<br/><br/>html, body, div, span, applet, object, iframe,<br/>h1, h2, h3, h4, h5, h6, p, blockquote, pre,<br/>a, abbr, acronym, address, big, cite, code,<br/>del, dfn, em, font, img, ins, kbd, q, s, samp,<br/>small, strike, strong, sub, sup, tt, var,<br/>b, u, i, center,<br/>dl, dt, dd, ol, ul, li,<br/>fieldset, form, label, legend,<br/>table, caption, tbody, tfoot, thead, tr, th, td {<br/>&nbsp;&nbsp;&nbsp;&nbsp;margin: 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;padding: 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;border: 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;outline: 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-size: 100%;<br/>&nbsp;&nbsp;&nbsp;&nbsp;vertical-align: baseline;<br/>&nbsp;&nbsp;&nbsp;&nbsp;background: transparent;<br/>}<br/><br/>　　可以看到，Eric把几乎所有的元素都写上了规则。而YUI只把有padding和margin的元素清空样式，而其他元素则不动。我个人比较偏好 YUI的做法，因为他这样可以避免给一些无关元素带上不必要的样式。导致元素过多时的性能下降。但Eric的也有可取之处，他这样写，整个 reset.css可以小上不少字节。对服务器的压力会小一些。你怎么用呢？看你自己喜好了。<br/><br/>4，边框<br/><br/>YUI里：<br/><br/>fieldset, img {<br/>&nbsp;&nbsp;&nbsp;&nbsp;border: 0;<br/>}<br/>abbr, acronym {<br/>&nbsp;&nbsp;&nbsp;&nbsp;border: 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-variant: normal;<br/>}<br/><br/>　　Eric已经在上一条中把所有的边框都清掉了，还是推荐用YUI的，理由同上。<br/><br/>5，外边框<br/><br/>　　这个就是元素获取焦点时的虚线框，在ie之外的浏览器上可以像下面Eric做的那样，通过设置outline来消除。<br/><br/>/* remember to define focus styles! */<br/>:focus {<br/>&nbsp;&nbsp;&nbsp;&nbsp;outline: 0;<br/>}<br/><br/>　　而YUI则没有设置这一条。而在Eric的样式中，可以看到Eric的提醒：务必重新定义获取焦点后的样式！<br/>这点其实很重要，出于可访问性的角度出发，那些不便于使用鼠标的人基本上都是用tab导航来浏览网页的。获取焦点的元素有特定样式的话可以极大帮助这类群体的用户。<br/><br/>　　从通用性角度来说，YUI那样不加这条比较好，毕竟没多少人会自定义焦点样式。但从一个reset.css来说，应当还是加上去比较好。毕竟是为了重置所有样式而写的reset.css，不能留下缺憾。因此这条可以作为reset.css之后及早定义的规则。<br/><br/>6，字体样式(font style/weight/size/variant)<br/><br/>YUI里，分成了多条：<br/><br/>address, caption, cite, code, dfn,<br/>em, strong, th, var, optgroup {<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-style: inherit;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-weight: inherit;<br/>}<br/> <br/>h1, h2, h3, h4, h5, h6 {<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-size: 100%;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-weight: normal;<br/>}<br/>abbr, acronym {<br/>&nbsp;&nbsp;&nbsp;&nbsp;border: 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-variant: normal;<br/>}<br/> <br/>input, button, textarea,<br/>sel&#101;ct, optgroup, option {<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-family: inherit;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-size: inherit;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-style: inherit;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-weight: inherit;<br/>}<br/> <br/>/*@purpose To enable resizing for IE */<br/>/*@branch For IE6-Win, IE7-Win */<br/>input, button, textarea, sel&#101;ct {<br/>&nbsp;&nbsp;&nbsp;&nbsp;*font-size: 100%;<br/>}<br/><br/>　　Eric则在他最终版的reset中去掉了关于这些的样式重置，只保留了 font-size: 100%; 同样他没有给出具体理由。<br/>但通常情况下，我认为还是重置一下这些样式好，比如strong元素，很多时候只是语义而已，并非希望他真的加粗。可能会有背景色或者其他方式来强调。<br/><br/>　　而之所以这里都用了inherit这个继承属性而不是定义 font-weight: normal; 可以在 Eric 先前的reset文章中看到。这是为了防止——父元素字体加粗了，而没有一个子元素继承加粗属性（因为设置了normal）——这种情况的发生。<br/><br/>　　此外，对于h1-h6的字体大小定义，建议放到专门的typography.css里，不建议放在reset.css里。所以这里我同样倾向于用YUI的策略，全部重置。<br/><br/>7，行高(line-height)<br/><br/>对于行高，YUI并没有给出重置定义，而Eric则给出了重置：<br/><br/>body {<br/>&nbsp;&nbsp;&nbsp;&nbsp;line-height: 1;<br/>}<br/><br/>　行高默认所有元素都会继承的，所以给body设置行高为1就足够了。通常行高设为1时候，英文照常阅读，但中文就无法阅读了，行间距过于紧密导致容易看错行。通常在中文环境下得设置1.4到1.5才能是用户正常阅读。<br/><br/>　　我建议是1.5，这样算出来的值也是整数。比如字体大小12px的时候行高是 18px，字体大小16px时行高24px。看起来也会比较舒服。<br/><br/>8，列表样式<br/>YUI用了：<br/><br/>li {<br/>&nbsp;&nbsp;&nbsp;&nbsp;list-style: none;<br/>}<br/>Eric用了：<br/><br/>ol, ul {<br/>&nbsp;&nbsp;&nbsp;&nbsp;list-style: none;<br/>}<br/><br/>　　尽管我没有测试出YUI的有什么问题，但我始终觉得设置ol和ul会比较稳妥。而且，波及的元素更少，性能应该更高一点。虽然下载量会多3字节。<br/><br/>9，表格元素<br/><br/>在表格方面，都比较统一。均是：<br/><br/>/* tables still need &#39;cellspacing=&#34;0&#34;&#39; in the markup */<br/>table {<br/>&nbsp;&nbsp;&nbsp;&nbsp;border-collapse: collapse;<br/>&nbsp;&nbsp;&nbsp;&nbsp;border-spacing: 0;<br/>}<br/>Eric还提醒到，需要在html中设置cellspacing=”0″ 来达到完美重置效果~<br/>但此外YUI还设置了 <br/><br/>caption, th {<br/>&nbsp;&nbsp;&nbsp;&nbsp;text-align: left;<br/>}<br/>让caption和th元素不要居中。作为重置，是可取的。建议添加此规则。<br/><br/>10，上下标以及baseline<br/>YUI写成<br/><br/>sup {<br/>&nbsp;&nbsp;&nbsp;&nbsp;vertical-align: baseline;<br/>}<br/> <br/>sub {<br/>&nbsp;&nbsp;&nbsp;&nbsp;vertical-align: baseline;<br/>}<br/>似乎没有优化，不知道为何没有写到一起去。而Eric则在最开始那条中就已经定义。而其中的问题是，YUI这样定义了，但没有重置字体大小，这点是有所遗憾的。既然是重置样式，就彻底一些，所以建议改成这样的：<br/><br/>sup, sub {<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-size: 100%;<br/>&nbsp;&nbsp;&nbsp;&nbsp;vertical-align: baseline;<br/>}<br/>同样对于Eric把所有元素都放到了Baseline上，包括上标下标。Eric的解释是，强制让设计师精确定位这些元素的垂直偏移。<br/><br/>11，插入和删除(ins/del)<br/>对于这个问题，YUI直接清除了ins的下划线和del的删除线这两个文本装饰：<br/><br/>del, ins {<br/>&nbsp;&nbsp;&nbsp;&nbsp;text-decoration: none;<br/>}<br/>而Eric保留了删除线：<br/><br/>/* remember to highlight ins&#101;rts somehow! */<br/>ins {<br/>&nbsp;&nbsp;&nbsp;&nbsp;text-decoration: none;<br/>}<br/>del {<br/>&nbsp;&nbsp;&nbsp;&nbsp;text-decoration: line-through;<br/>}<br/>　　如何取舍？我选择Eric的，为什么我这里不追求完美的样式重置了呢？很简单，我这个reset的目标是为了让我们写页面的时候尽量避免浏览器默认样式，以及不同浏览器之间默认样式差异带来的问题。而del元素删除线的文本装饰，我相信没有人会反对的。有人会加上其他样式，比如字体变淡之类的，但对于del如此强语义的元素来说，没有什么比用删除线更能表达含义的了。而不像上面那个focus样式，未必人人喜欢虚线框。<br/>所以，这里我考虑采纳Eric的重置样式。同时别忘了给ins元素在等下也添加一些样式。<br/><br/>12，引用元素的引号<br/><br/>某些浏览器中，q或者blockquote前后会出现引号。这个并不是谁都喜欢的。所以需要重置他。<br/>YUI的比较简单，只重置了q：<br/><br/>q:before,<br/>q:after {<br/>&nbsp;&nbsp;&nbsp;&nbsp;content: &#39;&#39;;<br/>}<br/>而Eric则比较周到，把q和blockquote都重置了。<br/><br/>blockquote, q {<br/>&nbsp;&nbsp;&nbsp;&nbsp;quotes: none;<br/>}<br/>blockquote:before, blockquote:after,<br/>q:before, q:after {<br/>&nbsp;&nbsp;&nbsp;&nbsp;content: &#39;&#39;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;content: none;<br/>}<br/>OK，就决定用Eric的了，对于样式重置，细致一点周到一点总没有错。]]></description>
		</item>
		
			<item>
			<link>http://www.shuihan.com/article.asp?id=507</link>
			<title><![CDATA[Apache2 httpd.conf配置中文版]]></title>
			<author>xqlu@shuihan.com(水寒)</author>
			<category><![CDATA[生活笔记]]></category>
			<pubDate>Sat,11 Apr 2009 09:59:49 +0800</pubDate>
			<guid>http://www.shuihan.com/default.asp?id=507</guid>
		<description><![CDATA[文章分类：PHP安装配置 <br/>#<br/># 基于 NCSA 服务的配置文件。<br/>#<br/>#这是Apache服务器主要配置文件。<br/>#它包含服务器的影响服务器运行的配置指令。<br/>#参见&lt;URL:<a href="http://httpd.ache.org/doc-2.0/" target="_blank" rel="external">http://httpd.ache.org/doc-2.0/</a>&gt;以取得关于这些指令的详细信息<br/>#<br/>#不要只是简单的阅读这些指令信息而不去理解它。<br/>#这里只是做了简单的说明，如果你没有参考在线文件，你就会被警告。<br/>#<br/>#这些配置指令被分为下面三个部分：<br/>#1. 控制整个Apache服务器行为的部分（即全局环境变量）<br/>#2. 定义主要或者默认服务参数的指令，也为所有虚拟主机提供默认的设置参数<br/>#3. 虚拟主机的设置参数<br/>#<br/>#配置和日志文件名：如果你指定的文件名以“/”开始（win32下以“dirver:/”），<br/>#服务器将使用绝对路径，如果文件名不是以“/”开始的，那么它将把ServerRoot<br/>#的值附加在文件名的前面，例如，对“logs/foo.log&#34;，如果ServerRoot的值<br/>#为“/usr/local/apache2”，则该文件应为“/usr/local/apache2/logs/foo.log”<br/>#<br/>##第一区：全局环境参数<br/>#<br/>#这里设置的参数将影响整个Apache服务器的行为；<br/>#例如Apache能够处理的并发请求的数量等。<br/>#<br/>#ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。<br/>#<br/>#注意！如果你想要将它指定为NFS或其它网络上的位置，<br/>#请一定要去阅读与LockFile有关的文档（可能在<br/>#&lt;URL:<a href="http://httpd.apache.org/docs-2.0/mod/mpm_common.html" target="_blank" rel="external">http://httpd.apache.org/docs-2.0/mod/mpm_common.html</a>#lockfile&gt;)。<br/>#这将会使你自己也能解决很多问题。<br/>#<br/>#路径的结尾不要添加斜线。<br/>#<br/>ServerRoot &#34;/usr/loacl/apache2&#34;<br/>#<br/>#串行访问的锁文件必须保存在本地磁盘上<br/>#<br/>&lt;IfModule !mpm_winnt.c&gt;<br/>&lt;IfModule !mpm_neware.c&gt;<br/>#LockFile logs/accept.lock<br/>&lt;/IfModule&gt;<br/>&lt;/IfModule&gt;<br/><br/>#ScoreBoardFile:用来保存内部服务进程信息的文件。<br/>#如果未指明（默认），记分板（scoreboard）将被保存在一个匿名的共享内存段中，<br/>#并且它不能被第三方软件所使用。<br/>#如果指定了，要确保不能使用两个Apache使用同一个记分板文件，<br/>#这个记分板文件必须保存在本地磁盘上。<br/>#<br/>&lt;IfModule !mpm_netware.c&gt;<br/>&lt;IfModule !perchild.c&gt;<br/>#ScoreBoardFile logs/apache_runtime_status<br/>&lt;IfModule&gt;<br/>&lt;IfModule&gt;<br/><br/>#<br/>#PidFile:记录服务器启动进程号的文件。<br/>#<br/>&lt;IfModule !mpm_neware.c&gt;<br/>PidFile logs/httpd.pid<br/>&lt;/IfModule&gt;<br/><br/>#<br/>#Timeout:接收和发送前超时秒数<br/>#<br/>Timeout 300<br/><br/>#<br/>#KeepAlive:是否允许稳固的连接（每个连接有多个请求），<br/>#设为&#34;Off&#34;则停用。<br/>#<br/>KeepAlive On<br/><br/>#<br/>#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数，<br/>#设为0表示无限制接入。<br/>#我们推荐你将其设为一个较大的值，以便提高性能<br/>MaxKeepAliveRequests 100<br/><br/>#<br/>#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数<br/>#<br/>KeepAliveTimeout 15<br/><br/>##<br/>##Server-Pool大小设定（针对MPM的）<br/>##<br/><br/># prefork MPM<br/># StartServers:启动时服务器启动的进程数<br/># MinSpareServers:保有的备用进程的最小数目<br/># MaxSpareServers:保有的备用进程的最大数目<br/># MaxClients:服务器允许启动的最大进程数<br/># MaxRequestsPerChild:一个服务进程允许的最大请求数<br/>&lt;IfModule prefork.c&gt;<br/>StartServers 5<br/>MinSpareServers 5<br/>MaxSpareServers 10<br/>MaxClients 150<br/>MaxRequestPerChild 0<br/>&lt;/IfModule&gt;<br/><br/># worker MPM<br/># StartServers:服务器启动时的服务进程数目<br/># MaxClients:允许同时连接的最大用户数目<br/># MinSpareThreads:保有的最小工作线程数目<br/># MaxSpareThreads:允许保有的最大工作线程数目<br/># ThreadsPerChild:每个服务进程中的工作线程常数<br/># MaxRequestsPerChild:服务进程中允许的最大请求数目<br/>&lt;IfModule worker.c&gt;<br/>StartServers 2<br/>MaxClients 150<br/>MinSpareThreads 25<br/>MaxSpareThreads 75<br/>ThreadsPerChild 25<br/>MaxRequestsPerChild 0<br/>&lt;/IfModule&gt;<br/><br/># perchild MPM<br/># NumServers:服务进程数量<br/># StartThreads:每个服务进程中的起始线程数量<br/># MinSpareThreads:保有的最小线程数量<br/># MaxSpareThreads:保有的最大线程数量<br/># MaxThreadsPerChild:每个服务进程允许的最大线程数<br/># MaxRequestsPerChild:每个服务进程允许连接的最大数量<br/>&lt;IfModule perchild.c&gt;<br/>NumServers 5<br/>StartThreads 5<br/>MinSpareThreads 5<br/>MaxSpareThreads 10<br/>MaxThreadsPerChild 20<br/>MaxRequestsPerChild 0<br/>&lt;/IfModule&gt;<br/><br/># WinNT MPM<br/># ThreadsPerChild:服务进程中工作线程常数<br/># MaxRequestsPerChild:服务进程允许的最大请求数<br/>&lt;IfModule mpm_winnt.c&gt;<br/>ThreadsPerChild 250<br/>MaxRequestsPerChild 0<br/>&lt;/IfModule&gt;<br/><br/># BeOS MPM<br/># StartThreads:服务器启动时启动的线程数<br/># MaxClients:可以启动的最大线程数（一个线程等于一个用户）<br/># MaxRequestsPerThread:每个线程允许的最大请求数<br/>&lt;IfModule beos.c&gt;<br/>StartThreads 10<br/>MaxClients 50<br/>MaxRequestsPerThread 10000<br/>&lt;/IfModule&gt;<br/><br/># NetWare MPM<br/># ThreadStachSize:为每个工作线程分配的堆栈尺寸<br/># StartThreads:服务器启动时启动的线程数<br/># MinSpareThreads:用于处理实发请求的空闲线程数<br/># MaxSpareThreads:空闲线程的最大数量<br/># MaxThreads:在同一时间活动的最大线程数<br/># MaxRequestPerChild:一个线程服务请求的最大数量，<br/># 推荐将其设置为0，以实现无限制的接入<br/>&lt;IfModule mpm_netware.c&gt;<br/>ThreadStackSize 65536<br/>StartThreads 250<br/>MinSpareThreads 25<br/>MaxSpareThreads 250<br/>MaxThreads 1000<br/>MaxRequestPerChild 0<br/>&lt;/IfModule&gt;<br/><br/># OS/2 MPM<br/># StartServers:启动的服务进程数量<br/># MinSpareThreads:每个进程允许的最小空闲线程<br/># MaxSpareThreads:每个进程允许的最大空闲线程<br/># MaxRequestsPerChild:每个服务进程允许的最大连接数<br/>&lt;IfModule mpmt_os2.c&gt;<br/>StartServers 2<br/>MinSpareThreads 5<br/>MaxSpareThreads 10<br/>MaxRequestsPerChild 0<br/>&lt;/IfModule&gt;<br/><br/>#<br/># Listen:允许你绑定Apache服务到指定的IP地址和端口上，以取代默认值<br/># 参见&lt;VirtualHost&gt;指令<br/># 使用如下命令使Apache只在指定的IP地址上监听，<br/># 以防止它在IP地址0.0.0.0上监听<br/>#<br/># Listen 12.34.56.78:80<br/><br/>Listen 80<br/><br/>#<br/># 动态共享支持（DSO）<br/>#<br/># 为了能够使用那些以DSO模式编译的模块中的函数，你必须有相应的“LoadModule”行，<br/># 因此，在这里包含了这些指令，以便能在使用它之前激活。<br/># 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块)<br/>#<br/># 示例：<br/># LoadModule foo_module modules/mod_foo.so<br/>#<br/><br/>#<br/># ExtendedStatus：当调用“server-status”时，控制Apache是产生“全”状态<br/># 信息（ExtendedStatus On），还是产生基本信息（ExtendedStatus Off）。<br/># 默认为off<br/>#<br/># ExtendedStatus On<br/><br/>### 第二区：“主”服务配置<br/>#<br/># 这一区建立被 “主” 服务器用的指令值,以回应那些不被 &lt;VirtualHost&gt;<br/># 定义处理的任何请求。<br/># 这些数值也提供默认值给后面定义的&lt;VirtualHost&gt;容器。<br/># 如果&lt;VirtualHost&gt;中有定义，那么这里定义的指令值将被<br/># &lt;VirtualHost&gt;中的定义所覆盖。<br/>#<br/><br/>&lt;IfModule !mpm_winnt.c&gt;<br/>&lt;IfModule !mpm_neware.c&gt;<br/>#<br/># 如果你想使httpd以另外的用户或组来运行，你必须在开始时以root方式启动<br/># 然后再将它切换为你想要使用的用户或组。<br/>#<br/># User/Group:运行httpd的用户和组<br/># 在SCO (ODT3)上使用“User nouser”和“Group nogroup”<br/># 在HPUX上，你可能不能以nobody身份使用共享内存，建议创建一个www用户。<br/># 注意一些核心（kernel）在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET)，<br/>#节在这些系统上不要使用“Group #-1”。<br/>#<br/>User nobody<br/>Group #-1<br/>&lt;/IfModule&gt;<br/>&lt;/IfModule&gt;<br/><br/>#<br/># ServerAdmin:你的邮件地址，当发生问题时Apache将向你发出邮件。<br/># 作为一个出错文档，这个地址显示在server-generated页上，<br/># 例如：admin@your-domain.com<br/>#<br/>ServerAdmin kreny@sina.com<br/><br/>#<br/># ServerName指定Apache用于识别自身的名字和端口号。<br/># 通常这个值是自动指定的，但是我们推荐你显式的指定它以防止启动时出错<br/>#<br/># 如果你为你的主机指定了一个无效的DNS名，server-generated重定向将不能工作。<br/># 参见UseCanonicalName指令<br/>#<br/># 如果你的主机没有注册DNS名，在这里键入它的IP地址<br/># 无论如何，你必须使用它的IP地址来提供服务，<br/># 这里使用一种容易理解的方式重定向服务<br/>ServerName www.dalouis.com:80<br/><br/>#<br/># UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。<br/># 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。<br/># 当设置为“On”,Apache会使用ServerName指令的值。<br/>#<br/>UseCanonicalName Off<br/><br/>#<br/># DocumentRoot:你的文档的根目录。默认情况下，所有的请求从这个目录进行应答。<br/># 但是可以使用符号链接和别名来指向到其他的位置。<br/>#<br/>DocumentRoot &#34;/home/redhat/public_html&#34;<br/><br/>#<br/># Apache可以存取的每个目录都可以配置存取权限（包括它的子目录）。<br/>#<br/># 首先，我们配置一个高限制的特征。<br/><br/># 这将禁止访问文件系统所在的目录，并添加你希望允许访问的目录块。<br/># 如下所示<br/>&lt;Directory /&gt;<br/>o&#114;der Deny,Allow<br/>Deny from all<br/>&lt;/Directory&gt;<br/><br/>#<br/># 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。<br/># - 所以，如果Apache没有象你所期待的那样工作的话,<br/># 请检查你是否在下面明确的指定它可用。<br/>#<br/><br/>#<br/># 这将改变到你设置的DocumentRoot<br/>#<br/>&lt;Directory &#34;/home/redhat/public_html&#34;&gt;<br/><br/>#<br/># Options：这个指令的值可以是“None”，“All”，或者下列选项的任意组合：<br/># Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews<br/>#<br/># 注意，“MultiViews”必须被显式的指定，“Options All”不能为你提供这个特性。<br/>#<br/># 这个指令既复杂又重要，请参见<br/>#“<a href="http://httpd.apache.org/docs-2.0/mod/core.html" target="_blank" rel="external">http://httpd.apache.org/docs-2.0/mod/core.html</a>#optioins”以取得更多的信息。<br/>#<br/>Options FollowSymLinks<br/><br/>#<br/># AllowOverride控制那些被放置在.htaccess文件中的指令。<br/># 它可以是“All”，“None”，或者下列指令的组合：<br/># Options FileInfo AuthConfig Limit<br/>#<br/>AllowOverride None<br/><br/>#<br/># 控制谁可以获得服务。<br/>#<br/>o&#114;der allow,deny<br/>Allow from all<br/><br/>&lt;/Directory&gt;<br/><br/>#<br/># UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。<br/>#<br/><br/>UserDir public_html<br/><br/># 为防止在UserDir指令上的漏洞，对root用户设置<br/># 象“./”这样的UserDir是非常有用的。<br/># 如果你使用Apache 1.3或以上版本，我们强烈建议你<br/># 在你的服务器配置文件中包含下面的行<br/><br/>UserDir disabled root<br/><br/>#<br/># 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例：<br/>#<br/># &lt;Directory /home/*/public_html&gt;<br/># AllowOverride FileInfo AuthConfig Limit Indexes<br/># Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec<br/># &lt;Limit GET POST OPTIONS PROPFIND&gt;<br/># o&#114;der allow,deny<br/># Allow from all<br/># &lt;/Limit&gt;<br/># &lt;LimitExcept GET POST OPTIONS PROPFIND&gt;<br/># o&#114;der deny,allow<br/># Deny from all<br/># &lt;/LimitExcept&gt;<br/># &lt;/Directory&gt;<br/><br/>#<br/># DirectoryIndex:定义请求是一个目录时，Apache向用户提供服务的文件名<br/>#<br/># index.html.var文件（一个类型映象文件）用于提供一个文档处理列表，<br/># 出于同样的目的，也可以使用MultiViews选项，但是它会非常慢。<br/>#<br/>DirectoryIndex index.php index.html index.html.var<br/><br/>#<br/># AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。<br/># 参见AllowOverride指令。<br/>#<br/>AccessFileName .htaccess<br/><br/>#<br/># 下面的行防止.htaccess和.htpasswd文件被Web客户查看。<br/>#<br/>&lt;Files ~ &#34;^\.ht&#34;&gt;<br/>o&#114;der allow,deny<br/>Deny from all<br/>&lt;/Files&gt;<br/><br/>#<br/># Typeconfig:定义在哪里查询mime.types文件。<br/>#<br/>TypeConfig conf/mime.types<br/><br/>#<br/># DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。<br/># 如果你的服务主要包含text或HTML文档，“text/plain”是一个好的选择；<br/># 如果大多是二进制文档，诸如软件或图像，你应使用<br/># “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。<br/>#<br/>DefaultType text/plain<br/><br/>#<br/># mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索（hints），<br/># 这个MIMEMagicFile指令定义hints定义所在的文件。<br/>#<br/>&lt;IfModule mod_mime_magic.c&gt;<br/>MIMEMagicFile conf/magic<br/>&lt;/IfModule&gt;<br/><br/>#<br/># HostnameLookups：指定记录用户端的名字还是IP地址，例如，本指令为on时<br/># 记录主机名，如www.apache.org；为off时记录IP地址，204.62.129.132。<br/># 默认值为off，这要比设为on好得多，因为如果设为on则每个用户端请求都将会<br/># 至少造成对 nameserver 进行一次查询。<br/>#<br/>HostnameLookups Off<br/><br/>#<br/># EnableMMAP:控制是否进行内存转储（如果操作系统支持的话）。<br/># 默认为on，如果你的服务器安装在网络文件系统上（NFS），请关闭它。<br/># 在一些系统上，关闭它会提升系统性能（与文件系统类型无关）；<br/># 具体情况请参阅<a href="http://httpd.apache.org/docs-2.0/mod/core.html" target="_blank" rel="external">http://httpd.apache.org/docs-2.0/mod/core.html</a>#enablemmap<br/>#<br/># EnableMMAP off<br/><br/>#<br/># EnableSendfile:控制是否使用sendfile kernel支持发送文件<br/># （如果操作系统支持的话）。默认为on，如果你的服务器安装在网络文件系统<br/># （NFS）上，请你关闭它。<br/># 参见<a href="http://httpd.apache.org/docs-2.0/mod/core.html" target="_blank" rel="external">http://httpd.apache.org/docs-2.0/mod/core.html</a>#enablesendfile<br/>#<br/># EnableSendfile off<br/><br/>#<br/># ErrorLog:错误日志文件定位。<br/># 如果你没有在&lt;VirtualHost&gt;内定义ErrorLog指令，这个虚拟主机的错误信息<br/># 将记录在这里。如果你在那儿定义了ErrorLog，这些错误信息将记录在你所<br/># 定义的文件里，而不是这儿定义的文件。<br/>#<br/>ErrorLog logs/error_log<br/><br/>#<br/># LogLevel:控制记录在错误日志文件中的日志信息数量。<br/># 可能的值包括：debug，info，notice，warn，error，crit，alert，emerg。<br/>#<br/>LogLevel warn<br/><br/>#<br/># 下面的指令为CustomLog指令定义格式别名。<br/>#<br/>LogFormat &#34;%h %l %u %t \&#34;%r\&#34; %&gt;s %b \&#34;%{Referer}i\&#34; \&#34;%{User-Agent}i\&#34;&#34; combined<br/>LogFormat &#34;%h %l %u %t \&#34;%r\&#34; %&gt;s %b&#34; common<br/>LogFormat &#34;%{Referer}i -&gt; %U&#34; referer<br/>LogFormat &#34;%{User-agent}i&#34; agent<br/><br/># 你需要安装了mod_logio.c模块才能使用%I和%O。<br/># LogFormat &#34;%h %l %u %t \&#34;%r\&#34; %&gt;s %b \&#34;%{Referer}i\&#34; \&#34;%{User-Agent}i\&#34; %I %O&#34; combinedio<br/><br/>#<br/># 指定接入日志文件的定位和格式（一般日志格式）。<br/># 如果你没有在&lt;VirtualHost&gt;内定义这个指令，传输信息将记录在这里，<br/># 如果你定义了这个指令，则记录在你指定的位置，而不是这儿定义的位置。<br/>#<br/>CustomLog logs/access_log common<br/><br/>#<br/># 如果你想要记录agent和referer信息，可以使用下面的指令<br/>#<br/># CustomLog logs/referer_log referer<br/># CustomLog logs/agent_log agent<br/><br/>#<br/># 如果你想要使用一个文件记录access，agent和referer信息，<br/># 你可以如下定义这个指令：<br/>#<br/># CustomLog logs/access_log combined<br/><br/>#<br/># ServerTokens<br/># 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”，<br/># 这表示在回应头中将包含模块中的操作系统类型和编译信息。<br/># 可以设为列各值中的一个：<br/># Full | OS | Minor | Minimal | Major | Prod<br/># Full传达的信息最多，而Prod最少。<br/>#<br/>ServerTokens Full<br/><br/>#<br/># 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中<br/># （内部错误文档，FTP目录列表，mod_status和mod_info输出等等，除了CGI错误<br/># 或自定义的错误文档以外）。<br/># 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。<br/># 可以为如下值：On | Off | EMail<br/>#<br/>ServerSignature On<br/><br/>#<br/># Aliases:在这时添加你需要的别名，格式如下：<br/># Alias 别名 真实名<br/>#<br/># 注意，如果你在别名的未尾包含了“/”，那么在URL中也需要包含“/”。<br/># 因此，“/icons”不是这个示例中的别名。<br/># 如果别名中以“/”结尾，那么真实名也必须以“/”结尾，<br/># 如果别名中省略了结尾的“/”，那么真实名也必须省略。<br/>#<br/># 我们使用别名“/icons/”来表示FancyIndexed目录列表，如果你不使用、<br/># FancyIndexing，你可以注释掉它。<br/>#<br/># Alias /icons/ &#34;/usr/local/apache2/icons/&#34;<br/><br/># &lt;Directory &#34;/usr/local/apache2/icons&#34;&gt;<br/># Options Indexes MultiViews<br/># AllowOverride None<br/># o&#114;der allow,deny<br/>## Allow from all<br/># &lt;/Directory&gt;<br/><br/>#<br/># 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置，<br/># 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话，<br/># 你可以注释掉它。<br/>#<br/>Alias /manual &#34;/usr/loacl/apache2/manual&#34;<br/><br/>&lt;Directory &#34;/usr/local/apache2/manual&#34;&gt;<br/>Options Indexes FollowSymLinks MultiViews IncludesNoExec<br/>AddOutputFilter Includes html<br/>o&#114;der allow,deny<br/>Allow from all<br/>&lt;/Directory&gt;<br/><br/>#<br/># ScriptAlias:指定包含服务脚本的目录。<br/># ScriptAliases 本质上与Aliases一样，除了这里的文档在请求时做为程序处理处理以外。<br/># 尾部的“/”规则与Alias一样<br/>#<br/>ScriptAlias /cgi-bin/ &#34;/usr/loacl/apache2/cgi-bin/&#34;<br/><br/># 这里是添加php 4支持的指令<br/>AddType application/x-httpd-php .php<br/>LoadModule php4_module modules/libphp4.so<br/><br/>&lt;IfModule mod_cgid.c&gt;<br/>#<br/># 添加mod_cgid.c设置，mod_cgid提供使用cgid进行通讯的UNIX套接字的<br/># 脚本接口路径。<br/>#<br/># Scriptsock logs/cgisock<br/>&lt;/IfModule&gt;<br/><br/>#<br/># 将&#34;/usr/local/apache2/cgi-bin&#34;改为你的ScriptAliased指定的CGI目录，<br/># 如果你配置了的话。<br/>#<br/>&lt;Directory &#34;/usr/local/apache2/cgi-bin&#34;&gt;<br/>AllowOverride None<br/>Options None<br/>o&#114;der allow,deny<br/>Allow from all<br/>&lt;/Directory&gt;<br/><br/>#<br/># Redirect允许你告诉客户端使用存在于服务器名字空间中的文档，<br/># 而不是现在的，这帮助客户定位那些改变了位置的文档。<br/># 例如：<br/># Redirect permanent /foo <a href="http://www.example.com/bar" target="_blank" rel="external">http://www.example.com/bar</a><br/><br/>#<br/># 控制server-generated目录列表显示的指令<br/>#<br/><br/>#<br/># IndexOptions:控制server-generated目录列表显示特征。<br/>#<br/>IndexOptions FancyIndexing VersionSort<br/><br/>#<br/># AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示，<br/># 只适用于FancyIndexed指令<br/>#<br/>AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip<br/>AddIconByType (TXT,/icons/text.gif) text/*<br/>AddIconByType (IMG,/icons/image2.gif) image/*<br/>AddIconByType (SND,/icons/sound2.gif) audio/*<br/>AddIconByType (VID,/icons/movie.gif) video/*<br/><br/>AddIcon /icons/binary.gif .bin .exe<br/>AddIcon /icons/binhex.gif .hqx<br/>AddIcon /icons/tar.gif .tar<br/>AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv<br/>AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip<br/>AddIcon /icons/a.gif .ps .ai .eps<br/>AddIcon /icons/layout.gif .html .shtml .htm .pdf<br/>AddIcon /icons/text.gif .txt<br/>AddIcon /icons/c.gif .c<br/>AddIcon /icons/p.gif .pl .py<br/>AddIcon /icons/f.gif .for<br/>AddIcon /icons/dvi.gif .dvi<br/>AddIcon /icons/uuencoded.gif .uu<br/>AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl<br/>AddIcon /icons/tex.gif .tex<br/>AddIcon /icons/bomb.gif core<br/><br/>AddIcon /icons/back.gif ..<br/>AddIcon /icons/hand.right.gif README<br/>AddIcon /icons/folder.gif ^^DIRECTORY^^<br/>AddIcon /icons/blank.gif ^^BLANKICON^^<br/><br/>#<br/># DefaultIcon 为那些没有显式定义图标的文件提供处理<br/>#<br/>DefaultIcon /icons/unknown.gif<br/><br/>#<br/># AddDescription允许你在server-generated索引后放置一个简短的说明。<br/># 只对FancyIndexed指令有效。<br/># 格式：AddDescription &#34;说明&#34; 文件名<br/>#<br/># AddDescription &#34;GZIP compressed document&#34; .gz<br/># AddDescription &#34;tar archive&#34; .tar<br/># AddDescription &#34;GZIP compressed tar archive&#34; .tgz<br/><br/>#<br/># ReadmeName指定服务器默认查找的README文件的名字，并添加到目录列表中<br/>#<br/># HeaderName指定目录列表前缀文件的文件名<br/>ReadmeName README.html<br/>HeaderName HEADER.html<br/><br/>#<br/># IndexIgnore指定目录索引忽略并且不包含在列表中的文件名集合，<br/># 支持shell类型的通配符。<br/>#<br/>IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t<br/><br/>#<br/># AddEncoding允许你在信息传送中使用(Mosaic/X 2.1+)解压缩信息，<br/># 注意：不是所有的浏览器都支持这个选项。<br/># 尽管名字相似，但是下列的指令与上面的FancyIndexing定制指令不同。<br/>#<br/>AddEncoding x-compress Z<br/>AddEncoding x-gzip gz tgz<br/><br/>#<br/># DefaultLanguage和AddLanguage允许你指定文档的语言。<br/># 这使你可以让用户用容易理解的语言浏览文档。<br/>#<br/># 指定默认的语言，这意味着所有没有指定语言的包都将使用该语言。<br/># 多数情况下，你也许并不想设置它，除非你确信这样做是正确的。<br/># 通常，不使用确定的语言比使用错误的语言要好。<br/>#<br/># DefaultLanguage nl<br/>#<br/># 注意1：作为语言关键字的词缀毫无疑问是不能一样的--采用波兰<br/># 文的文档（网络标准语言代码是pl）将希望使用“AddLanguage pl .po”<br/># 来避免与perl脚本的一般词缀产生二义性。<br/>#<br/># 注意2: 下面的例子举例说明在一些范例中语言的二字符缩写与它的国家<br/># 的二字符缩写不相同,例如 “Danmark/dk” 和 “Danmark/da” 的比较.<br/>#<br/># 注意3: 在 “ltz” 的情况下我们使用三字符词缀，违犯了 RFC的规定，<br/># 运行中将修复它并使用RFC1766标准取得参考数据。<br/>#<br/># Danish (da) - Dutch (nl) - English (en) - Estonian (et)<br/># French (fr) - German (de) - Greek-Modern (el)<br/># Italian (it) - Norwegian (no) - Norwegian Nynorsk (nn) - Korean (ko)<br/># Portugese (pt) - Luxembourgeois* (ltz)<br/># Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cz)<br/># Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja)<br/># Russian (ru) - Croatian (hr)<br/>#<br/>AddLanguage da .dk<br/>AddLanguage nl .nl<br/>AddLanguage en .en<br/>AddLanguage et .et<br/>AddLanguage fr .fr<br/>AddLanguage de .de<br/>AddLanguage he .he<br/>AddLanguage el .el<br/>AddLanguage it .it<br/>AddLanguage ja .ja<br/>AddLanguage pl .po<br/>AddLanguage ko .ko<br/>AddLanguage pt .pt<br/>AddLanguage nn .nn<br/>AddLanguage no .no<br/>AddLanguage pt-br .pt-br<br/>AddLanguage ltz .ltz<br/>AddLanguage ca .ca<br/>AddLanguage es .es<br/>AddLanguage sv .sv<br/>AddLanguage cz .cz<br/>AddLanguage ru .ru<br/>AddLanguage tw .tw<br/>AddLanguage zh-tw .tw<br/>AddLanguage hr .hr<br/><br/># LanguagePriority允许你在会话过程中优先使用一些语言。<br/>#<br/># 以优先次序递减的方式列出它们。我们或多或少地采用按字母排列顺序的方式<br/># 排列它们。也许你想要改变这个顺序。<br/>LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw<br/><br/>#<br/># ForceLanguagePriority 允许你为MULTIPLE CHOICES(Prefer)[在通讯的情况下]<br/># 或NOT ACCEPTABLE(Fallback)[没有可接受的语言匹配的情况]提供一个结果页。<br/>#<br/>ForceLanguagePriority Prefer Fallback<br/><br/>#<br/># 为发送出的所有页指定默认的字符集，这总是一个好主意，并且为你的<br/># web站点的国际化打开了大门，这不正是你曾经想要的吗。同样地，指定<br/># 默认字符集有一些小的损害，如一个使用iso-8859-1(latin1)标准命令<br/># 的页面，除非以别的方式指定例如你仅仅以显式方式声明它。<br/># 也有一些与那些总是鼓励你使用默认字符集的javascropt和URL语法有关<br/># 的浏览器安全原因。<br/>#<br/>#AddDefaultCharset ISO-8859-1<br/>AddDefaultCharse GB2312<br/><br/>#<br/># 一般以文件扩展名的方式使用字符集。也许你想要避免与语言扩展发生<br/># 碰撞，除非你在每次改变后都做了很好的测试。<br/># 参见<a href="http://www.iana.org/assignments/character-sets" target="_blank" rel="external">http://www.iana.org/assignments/character-sets</a>以取得字符集<br/># 的名字列表和它们各自的RFCs。<br/>#<br/>AddCharset ISO-8859-1 .iso8859-1 .latin1<br/>AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen<br/>AddCharset ISO-8859-3 .iso8859-3 .latin3<br/>AddCharset ISO-8859-4 .iso8859-4 .latin4<br/>AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru<br/>AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb<br/>AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk<br/>AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb<br/>AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk<br/>AddCharset ISO-2022-JP .iso2022-jp .jis<br/>AddCharset ISO-2022-KR .iso2022-kr .kis<br/>AddCharset ISO-2022-CN .iso2022-cn .cis<br/>AddCharset Big5 .Big5 .big5<br/># 对于俄语，使用了多个字符集（如何使用主要依靠客户端）：<br/>AddCharset WINDOWS-1251 .cp-1251 .win-1251<br/>AddCharset CP866 .cp866<br/>AddCharset KOI8-r .koi8-r .koi8-ru<br/>AddCharset KOI8-ru .koi8-uk .ua<br/>AddCharset ISO-10646-UCS-2 .ucs2<br/>AddCharset ISO-10646-UCS-4 .ucs4<br/>AddCharset UTF-8 .utf8<br/><br/><br/># 下面的字符集没有映射到一个特定的标准(iso)上，但是它们在浏览器<br/># 中被广泛的支持。注意那些大写字母。<br/># (它不应该,但是它是为兼容一些浏览器而做)<br/>#<br/># 参见<a href="http://www.iana.org/assianments/character-sets" target="_blank" rel="external">http://www.iana.org/assianments/character-sets</a>以取得<br/># 它们的列表。但是浏览器支持较少。<br/>#<br/>AddCharset GB2312 .gb2312 .gb<br/>AddCharset utf-7 .utf7<br/>AddCharset utf-8 .utf8<br/>AddCharset big5 .big5 .b5<br/>AddCharset EUC-TW .euc-tw<br/>AddCharset EUC-JP .euc-jp<br/>AddCharset EUC-KR .euc-kr<br/>AddCharset shift_jis .sjis<br/><br/>#<br/># AddType允许你为指定的文件类型添加或覆盖mime.types文件中配置的MIME<br/>#<br/>AddType application/x-tar .tgz<br/>AddType image/x-icon .ico<br/><br/>#<br/># AddHandler允许你映射确定的文件扩展名到“handlers”:<br/># 与文件类型无关的行为。这既能编译到服务器中也可以添加到Action指令<br/># 中（看下面）。<br/># 为了在ScriptAliased指令指定的以外使用CGI脚本：<br/>#（要使它可用，你还需要在Options中添加“ExecCGI”。<br/>#<br/># AddHandler cgi-script .cgi<br/><br/>#<br/># 对于那些包含他们自己的HTTP头的文件<br/>#<br/># AddHandler send-as-is asis<br/><br/>#<br/># 对于server-parsed imagemap文件：<br/>#<br/># AddHandler imap-file map<br/><br/>#<br/># agemap 文件:<br/>#<br/>#AddHandler imap- 文件映像<br/><br/>#<br/># 对于类型映像:(转移资源)<br/>#(这是默认的设定以允许Apache的“It Worked”页能多种语言分发)。<br/>#<br/>AddHandler type-map var<br/><br/>#<br/># 过滤器允许你在将它发送到客户端前进行处理。<br/>#<br/># 为了在服务器端分析包含(SSI)的.shtml文档：<br/># （要执行这个指令，你还需要在Options指令中添加“Includes”。）<br/>#<br/># AddType text/html .shtml<br/># AddOutputFilter INCLUDES .shtml<br/><br/>#<br/># Action让你定义当调用匹配的媒体文件时将要执行的脚本。这将减少<br/># 那些经常使用的CGI脚本的URL路径名的重复输入。<br/># 格式：Action media/type /cgi-script/location<br/># 格式：Action handler-name /cgi-script/location<br/>#<br/><br/>#<br/># 可配置的错误应答有三种风格：<br/># 1）plain text 2)local redirects 3) external redirects<br/>#<br/># 一些示例：<br/># ErrorDocument 500 &#34;The server made a boo boo.&#34;<br/># ErrorDocument 404 /missing.html<br/># ErrorDocument 404 &#34;/cgi-bin/missing_handler.pl&#34;<br/># ErrorDocument 402 <a href="http://www.example.com/subscri&#112;tion_info.html" target="_blank" rel="external">http://www.example.com/subscri&#112;tion_info.html</a><br/>#<br/><br/>#<br/># 综合应用这些指令，我们可以创建一个国际化的出错应答。<br/>#<br/># 我们使用Alias来重定向任意/error/HTTP_&lt;error&gt;.html.var应答到<br/># 我们的多语言错误消息集合。使用正确的文本替代它。<br/>#<br/># 通过加入下面的行，你就能够改变这些消息的显示，而不必改变<br/># HTTP_&lt;error&gt;.html.var文件。<br/>#<br/># Alias /error/include/ &#34;/your/include/path/&#34;<br/>#<br/># 以将/usr/local/apache2/error/include/下的文件拷贝到/your/inclue/path/下<br/># 开始，你可以创建你自己的文件集合，甚至是其于每个虚拟主机的。<br/># 不管你的ServerSignature如何设置，默认的包含文件将显示你的<br/># Aapche版本号和你的ServerAdmin邮件地址<br/>#<br/># 国际化的错误文档需要mod_alias，mod_include和mod_negotiation三个<br/># 模块。要激活它们，取消下面30行的注释符号<br/><br/># Alias /error/ &#34;/usr/local/apache2/error/&#34;<br/>#<br/># &lt;Directory &#34;/usr/local/apache2/error&#34;&gt;<br/># AllowOverride None<br/># Options IncludesNoExec<br/># AddOutputFilter Includes html<br/># AddHandler type-map var<br/># o&#114;der allow,deny<br/># Allow from all<br/># LanguagePriority en de es fr it nl sv<br/># ForceLanguagePriority Prefer Fallback<br/># &lt;/Directory&gt;<br/>#<br/># ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var<br/># ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var<br/>ErrorDocument 403 /error.php<br/># ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var<br/># ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var<br/># ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var<br/># ErrorDocument 410 /error/HTTP_GONE.html.var<br/># ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var<br/># ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var<br/># ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var<br/># ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var<br/># ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var<br/># ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var<br/># ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var<br/># ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var<br/># ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var<br/># ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var<br/><br/>#<br/># 下面的命令更改标准的HTTP应答行为以处理己知的浏览器问题。<br/>#<br/>BrowserMatch &#34;Mozilla/2&#34; nokeepalive<br/>BrowserMatch &#34;MSIE 4\.0b2;&#34; nokeepalive downgrade-1.0 force-response-1.0<br/>BrowserMatch &#34;RealPlayer 4\.0&#34; force-response-1.0<br/>BrowserMatch &#34;Java/1\.0&#34; force-response-1.0<br/>BrowserMatch &#34;JDK/1\.0&#34; force-response-1.0<br/><br/>#<br/># 下面命令关闭对那些没有尾部“/”的目录的非GET请求的重定向，<br/># 这些命令修复了微软的采用DAV方法不能正确处理重定向的WEB文件夹的问题。<br/># Apple下的DAV文件系统和Gnome下的VFS对DAV的支持也是采用这样的方法<br/># 进行处理的。<br/>#<br/>BrowserMatch &#34;Microsoft Data Access Internet Publishing Provider&#34; redirect-carefully<br/>BrowserMatch &#34;^WebDrive&#34; redirect-carefully<br/>BrowserMatch &#34;^WebDAVFS/1.[012]&#34; redirect-carefully<br/>BrowserMatch &#34;^gnome-vfs&#34; redirect-carefully<br/><br/>#<br/># 允许你使用URL：<a href="http://servername/server-status" target="_blank" rel="external">http://servername/server-status</a>来通过mod_status生<br/># 成并报告服务器状态信息。改变.example.com为你自己的域名。<br/>#<br/># &lt;Location /server-status&gt;<br/># SetHandler server-status<br/># o&#114;der deny,allow<br/># Deny from all<br/># Allow from .example.com<br/># &lt;/Location&gt;<br/><br/>#<br/># 允许使用URL:<a href="http://servername/server-info" target="_blank" rel="external">http://servername/server-info</a>来远程报告服务器配置信息<br/># （需要mod_info.c支持）。改变“.example.com”为你自己的域名。<br/>#<br/># &lt;Location /server-info&gt;<br/># SetHandler server-info<br/># o&#114;der deny,allow<br/># Deny from all<br/># Allow from .example.com<br/># &lt;/Location&gt;<br/><br/>#<br/># 代理服务器命令，去掉下面的行使代理服务可用。<br/>#<br/># &lt;IfModule mod_proxy.c&gt;<br/># ProxyRequests On<br/># &lt;Proxy *&gt;<br/># o&#114;der deny,allow<br/># Deny from all<br/># Allow from .example.com<br/># &lt;/Proxy&gt;<br/><br/>#<br/># 安装或关闭HTTP/1.1“通道”头处理。<br/># （“Full”添加服务器版本信息，“Block”移掉所有输出“通道”头信息。<br/># 可以设为下面各选项之一：Off | On | Full | Block<br/>#<br/># ProxyVia On<br/><br/># 最好为代理服务安装高速缓冲，去掉下面几行的注释符号：<br/># （没有CacheRoot则不缓冲）<br/>#<br/># CacheRoot &#34;/usr/local/apache2/proxy&#34;<br/># CacheSize 5<br/># CacheGcInterval 4<br/># CacheMaxExpire 24<br/># CacheLastModifiedFactor 01<br/># CacheDefaultExpire 1<br/># NoCache a-domain.com another-domain.edu joes.garage-sale.com<br/><br/># &lt;/IfModule&gt;<br/># 代理命令结束。<br/><br/>#<br/># 附加的特定模块配置。<br/>#<br/>&lt;IfModule mod_ssl.c&gt;<br/>Include conf/ssl.conf<br/>&lt;/IfModule&gt;<br/><br/>## 第三区：虚拟主机<br/>#<br/># VirtualHost:你可以通过设置虚拟主机容器以实现在你的主机上保有多个<br/># 域名/主机名。大多数配置信息只使用基于名字的虚拟主机，因此服务器<br/># 不必担心IP地址的问题，下面的命令以*号代替虚拟主机名。<br/>#<br/># 在你试着配置你的虚拟主机以前，请参见<br/># URL:<a href="http://httpd.apache.org/docs-2.0/vhosts/" target="_blank" rel="external">http://httpd.apache.org/docs-2.0/vhosts/</a>&gt;以取得更多的信息。<br/>#<br/># 你可以使用命令行选项“-S”来检验你的虚拟主机配置。<br/><br/>#<br/># 使用基于名字的虚拟主机。<br/>#<br/># NameVirtualHost *<br/><br/>#<br/># 虚拟主机示例：<br/># 几乎所有的Apache命令都可以在虚拟主机容器中使用。<br/># 第一个虚拟主机区是用于向服务名未知的请求进行应答的配置。<br/>#<br/># &lt;VirtualHost *&gt;<br/># ServerAdmin webmaster@dummy-host.example.com<br/># DocumentRoot /www/docs/dummy-host.example.com<br/># ServerName dummy-host.example.com<br/># ErrorLog logs/dummy-host.example.com-error_log<br/># CustomLog logs/dummy-host.example.com-access_log commom<br/># &lt;/virtualHost&gt; ]]></description>
		</item>
		
			<item>
			<link>http://www.shuihan.com/article.asp?id=506</link>
			<title><![CDATA[php.ini配置文件中文详细解释]]></title>
			<author>xqlu@shuihan.com(水寒)</author>
			<category><![CDATA[服务器技术]]></category>
			<pubDate>Sat,11 Apr 2009 09:31:24 +0800</pubDate>
			<guid>http://www.shuihan.com/default.asp?id=506</guid>
		<description><![CDATA[;;;;;;;;;;;<br/>; 警告 ;<br/>;;;;;;;;;;;<br/>; 此配置文件是对于新安装的PHP的默认设置.<br/>; <br/>; 此配置针对开发目的,并且*不是*针对生产环境<br/>; 基于一些安全方面的考虑,在你的网站上线之前,请考虑使用php.ini-recommended<br/>; 以及在线文档 <a href="http://php.net/manual/en/security.php." target="_blank" rel="external">http://php.net/manual/en/security.php.</a><br/><br/><br/>;;;;;;;;;;;;;;;;;;;<br/>; 关于 php.ini&nbsp;&nbsp; ;<br/>;;;;;;;;;;;;;;;;;;;<br/>; 此文件控制了PHP行为的很多方面.&nbsp;&nbsp;为了让PHP能够读取它<br/>; 必须命名为 &#39;php.ini&#39;.&nbsp;&nbsp;PHP 在其当前工作目录,由PHPRC环境变量指定目录<br/>; 以及由编译时指定的目录(按此顺序)查找此文件<br/>; 在Windows环境下, 编译时目录是Windows目录.<br/>; 在命令行模式下查找php.ini的目录可以被-c参数覆盖.<br/>;<br/>; 此文件的语法非常简单.<br/>; 空行和由分号开始的行会被忽略(你可能已经猜到了).<br/>; 段的开头(例如 [Foo]) 同样会被悄悄忽略<br/>; 即使在将来他们可能会有其他作用.<br/>;<br/>; 使用以下语法来设定指令:<br/>; directive = value<br/>; 指令 = 值<br/>; 指令名称是 *大小写敏感* - foo=bar 和 FOO=bar 是不同的.<br/>;<br/>; 值可以是字符串,数值,PHP常量 (例如 E_ALL 和 M_PI), <br/>; INI 常量 (On, Off, True, False, Yes, No 和 None) 或者一个表达式<br/>; (例如 E_ALL &amp; ~E_NOTICE), 或者带引号的字串 (&#34;foo&#34;).<br/>;<br/>; 在INI文件中的表达式只能使用逻辑运算和圆括号:<br/>; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;逻辑或<br/>; &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 逻辑与<br/>; ~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 逻辑非<br/>; !&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;取反<br/>;<br/>; 逻辑标志可以使用1,On,True或者Yes来打开.<br/>; 也可以使用0, Off, False 或者 No来关闭.<br/>;<br/>; 在等号后面不写任何内容代表了一个空字符串<br/>; 或者使用 None 关键词:<br/>;<br/>;&nbsp;&nbsp;foo =&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; 将foo设置成一个空字串<br/>;&nbsp;&nbsp;foo = none&nbsp;&nbsp;&nbsp;&nbsp;; 将foo设置成一个空字串<br/>;&nbsp;&nbsp;foo = &#34;none&#34;&nbsp;&nbsp;; 将foo设置成字串 &#39;none&#39;<br/>;<br/>; 如果你在值中使用了常量, 并且这个常量属于一个动态加载的扩展模块<br/>; (不论是PHP扩展还是Zend扩展),<br/>; 那你只能在加载这些扩展 *之后* 使用这些常量.<br/>;<br/>;<br/>;;;;;;;;;;;;;;;;;;;<br/>; 关于这个文件&nbsp;&nbsp;;<br/>;;;;;;;;;;;;;;;;;;;<br/>; 在php.ini-dist 文件中所有的值都相当于内建的默认值<br/>; (就是如果没有使用php.ini, 或者如果你删除了这些行,<br/>; 就和内建的默认值一样).<br/><br/><br/>;;;;;;;;;;;;;;;;;;;;<br/>; 语言选项 ;<br/>;;;;;;;;;;;;;;;;;;;;<br/><br/>; 打开在Apache下的PHP脚本语言引擎<br/>engine = On<br/><br/>; 打开Zend Engine兼容模式(PHP 4.x)<br/>zend.ze1_compatibility_mode = Off<br/><br/>; 允许 &lt;? 标签.&nbsp;&nbsp;否则,只有 &lt;?php 和 &lt;script&gt; 标签被认为是PHP脚本.<br/>; 注意: 尽可能避免在开发可重新发布的程序或者库的时候使用简略标签,或者在不受你控制的服务器下发布,<br/>; 因为简略标签可能不被目标服务器支持.为了可移植性, 可重新发布的代码, 请不要使用简略标签<br/>short_open_tag = On<br/><br/>; 使用ASP风格 &lt;% %&gt; 标签.<br/>asp_tags = Off<br/><br/>; 浮点数中数值的有效位数(浮点数精度).<br/>precision&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;12<br/><br/>; 强制2000年兼容 (可能引起不兼容浏览器的问题)<br/>y2k_compliance = On<br/><br/>; 输出缓冲允许在你发送了body内容之后发送header(包括 cookies) <br/>; 代价是稍稍减缓了PHP输出层<br/>; 你可以在运行时调用 output buffering 函数来打开此功能<br/>; 你也可以将此指令设置为On来对所有文件打开输出缓冲<br/>; 如果你想将这个缓冲区限制到特定大小 - 你可以使用最大的字节数来代替&#39;On&#39;,来作为这个指令的参数 (例如 output_buffering=4096).<br/>output_buffering = Off<br/><br/>; 你可以将所有你脚本输出的内容重定向到指定函数.&nbsp;&nbsp;<br/>; 例如, 如果你设置 output_handler 到 &#34;mb_output_handler&#34;, <br/>; 字符编码会被转换成为指定的编码..<br/>; 设置任何的输出处理句柄会自动打开输出缓冲.<br/>; 注意: 如果想编写可移植脚本就不要依赖此INI配置<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 取而代之的是, 明确的使用 ob_start() 来设置输出处理句柄.<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用此ini指令可能引起问题,除非你很清楚的理解脚本正在做什么.<br/>; 注意: 你不能同时使用 &#34;mb_output_handler&#34; 和 &#34;ob_iconv_handler&#34;<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 并且你不能同时使用 &#34;ob_gzhandler&#34; 和 &#34;zlib.output_compression&#34;.<br/>; 注意: 如果使用zlib.output_handler指令开启zlib输出压缩, 该指令必须为空.<br/>;output_handler =<br/><br/>; 使用zlib库对输出进行压缩<br/>; 对此选项的有效值是 &#39;off&#39;, &#39;on&#39;, 或者字节数 (用来压缩的缓冲大小 , 默认是 4KB)<br/>; 注意: 结果的chunk大小可能由于压缩对象的大小而不同.<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PHP输出块的大小一般压缩之后每个大小时几百个字节.<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果你希望藉由一个大块的堆大小来获取更好的性能, 需要额外的打开 output_buffering 选项.<br/>; 注意: 你必须使用 zlib.output_handler 来替代标准的<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output_handler, 否则输出可能会有问题.<br/>zlib.output_compression = Off<br/>;zlib.output_compression_level = -1<br/><br/>; 这里激活 zlib.output_compression 之后,你无法再指定额外的输出处理.<br/>; 这个设置和 output_handler 一样,但是处理顺序不同.<br/>;zlib.output_handler =<br/><br/>; 立即刷新告知 PHP 让输出层在每次输出块之后立刻自动刷新.<br/>; 这和每次调用print()或者echo()函数以及任何一种HTML块后调用flush()一样. <br/>; 打开此选项会严重导致性能下降,一般只有用于调试情况下才建议打开.<br/>implicit_flush = Off<br/><br/>; 如果反序列器找到一个可以作为示例的未定义类.未序列化的回调函数会被调用(使用未定义的类名作为参数), <br/>; 如果特定的函数未被定义或者如果此函数没有包含/实现丢失的类,则会发生一个警告. <br/>; 如果只有你真想要实现类似的回调函数,才设定此入口.<br/>unserialize_callback_func=<br/><br/>; 当浮点和双精度被序列化后,浮点号后由 serialize_precision 指定存储精确度的有效位数. <br/>; 默认值是当浮点数被反序列解码后,数值仍旧相同.<br/>serialize_precision = 100<br/><br/>; 是否打开强制通过引用传递参数给函数<br/>; 此方法被反对并且很有可能在未来版本的PHP/Zend中不再被支持.<br/>; 被孤立的指定的方法是参数应该在函数被声明的时候按照引用传入.<br/>; 你被鼓励来尝试上述方法并关闭此选项来确保你脚本在今后的新版本中仍旧可以正常工作 ( 每次你使用此特性的时候会受到一个警告<br/>; 并且参数会传值而不是传引用).<br/>allow_call_time_pass_reference = On<br/><br/>;<br/>; 安全模式<br/>;<br/>safe_mode = Off<br/><br/>; 默认情况下,安全模式在打开文件时,使用UID来比对检测.<br/>; 如果你只想使用GID做宽松的比对,<br/>; 打开 safe_mode_gid.<br/>safe_mode_gid = Off<br/><br/>; 当 safe_mode 被打开, 此目录下包含的文件和子文件夹的UID/GID 检测会被绕过.<br/>; (目录必须在 include_path 中存在或者必须在包含时使用全路径)<br/>safe_mode_include_dir =<br/><br/>; 当 safe_mode 被打开, 只有在 safe_mode_exec_dir 中定义的可执行文件能够通过exec函数组打开执行.<br/>safe_mode_exec_dir =<br/><br/>; 设定某些的环境变量可能成为潜在的安全隐患.<br/>; 此指令包含一个逗号分隔的前导列表. <br/>; 在安全模式中, 用户可能只能改变符合这里所给出前导字符的变量. <br/>; 默认情况下,用户只能改变以PHP_开头的变量(例如. PHP_FOO=BAR).<br/>;<br/>; 注意:&nbsp;&nbsp;如果此指令为空, PHP会允许用户修改任何环境变量!<br/>safe_mode_allowed_env_vars = PHP_<br/><br/>; 此指令包含了一个用逗号分隔的环境变量列表, 用户无法通过 putenv() 函数来修改列表中的环境变量.<br/>; 这些变量即便已经在 safe_mode_allowed_env_vars 所设定的列表中,也会被被保护不允许修改.<br/>safe_mode_protected_env_vars = LD_LIBRARY_PATH<br/><br/>; 如果设置了open_basedir, 将会限制文件操作只能是此指令下的目录和子目录. <br/>; 此指令对于每目录或者每虚拟主机配置文件最有意义. 此指令* 不会 *受安全模式开或者关的影响.<br/>;open_basedir =<br/><br/>; 此指令允许你为了安全原因关闭指定的函数.<br/>; 它接受以逗号分隔的函数名的列表.<br/>; 此指令* 不会 *受安全模式开或者关的影响.<br/>disable_functions =<br/><br/>; 此指令允许你由于安全原因关闭指定的类.<br/>; 它接受以逗号分隔的类名的列表.<br/>; 此指令* 不会 *受安全模式开或者关的影响.<br/>disable_classes =<br/><br/>; 语法高亮模式的色彩. 任何在 &lt;span style=&#34;color: ???????&#34;&gt; 中可接受的值都可以使用.<br/>;highlight.string&nbsp;&nbsp;= #DD0000<br/>;highlight.comment = #FF9900<br/>;highlight.keyword = #007700<br/>;highlight.bg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= #FFFFFF<br/>;highlight.default = #0000BB<br/>;highlight.html&nbsp;&nbsp;&nbsp;&nbsp;= #000000<br/><br/>; 如果打开, 即便用户放弃了的请求也会被执行完成. <br/>; 在执行可能被用户打断或者浏览器超时所中断的请求时打开此选项.<br/>; ignore_user_abort = On<br/><br/>; 指定PHP使用的实际路径的缓冲. 对于PHP打开很多文件来处理很多文件操作的系统上,应该增加此值.<br/>; realpath_cache_size=16k<br/><br/>; 对于给定文件或者目录的缓冲真实路径信息的缓冲保留秒数. 对于很少修改文件的系统可以考虑增加此值.<br/>; realpath_cache_ttl=120<br/><br/>;<br/>; 其他<br/>;<br/>; 考虑到PHP可能被其所安装的服务器上暴露的事实(例如. 被web服务器作为头部信息的签名). <br/>; 任何情况下这虽然不是安全威胁, 仍有可能暴露在你的服务器上是否正在使用PHP.<br/>expose_php = On<br/><br/><br/>;;;;;;;;;;;;;;;;;;;<br/>; 资源限制 ;<br/>;;;;;;;;;;;;;;;;;;;<br/><br/>; 每个脚本最大执行秒数<br/>max_execution_time = 30<br/>; 每个脚本用来分析请求数据的最大时间<br/>max_input_time = 60<br/>; 最大输入变量的嵌套级别<br/>;max_input_nesting_level = 64<br/>; 每个脚本能够使用的最大内存数量 (128MB)<br/>memory_limit = 128M <br/><br/><br/>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/>; 错误处理和记录 ;<br/>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/><br/>; 错误报告时一个位. 对每一个数值取或可以得到最终的报告级别<br/>; E_ALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - 所有错误和警告 (不包含 E_STRICT)<br/>; E_ERROR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - 致命的运行时错误<br/>; E_RECOVERABLE_ERROR&nbsp;&nbsp;- 几乎致命的运行时错误<br/>; E_WARNING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - 运行时警告 (非致命错误)<br/>; E_PARSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - 编译时语法错误<br/>; E_NOTICE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 运行时提醒 (这些警告常常由你代码中的bug导致, 但是也有可能是有意的行为 (例如, 使用一个未初始化的变量并依赖于其会被自动初始化成为一个空字符串的事实)<br/>; E_STRICT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 运行时提醒, 打开后PHP会给出针对你代码的最易移植和最好向后兼容性的建议<br/>; E_CORE_ERROR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- PHP初始化启动时的致命错误<br/>; E_CORE_WARNING&nbsp;&nbsp;&nbsp;&nbsp;- 在PHP初始化时发生的警告 (非致命错误) <br/>; E_COMPILE_ERROR&nbsp;&nbsp; - 致命的编译时错误<br/>; E_COMPILE_WARNING - 编译时警告 (非致命)<br/>; E_USER_ERROR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 用户产生的错误信息<br/>; E_USER_WARNING&nbsp;&nbsp;&nbsp;&nbsp;- 用户产生的警告信息<br/>; E_USER_NOTICE&nbsp;&nbsp;&nbsp;&nbsp; - 用户产生的提示信息<br/>;<br/>;例子:<br/>;<br/>;&nbsp;&nbsp; - 显示所有错误, 除了提示以及代码标准警告以外<br/>;<br/>;error_reporting = E_ALL &amp; ~E_NOTICE<br/>;<br/>;&nbsp;&nbsp; - 显示所有错误,除了提示以外<br/>;<br/>;error_reporting = E_ALL &amp; ~E_NOTICE | E_STRICT<br/>;<br/>;&nbsp;&nbsp; - 只显示错误<br/>;<br/>;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR<br/>;<br/>;&nbsp;&nbsp; - 显示出了提示以及代码标准警告之外的错误<br/>;<br/>error_reporting&nbsp;&nbsp;=&nbsp;&nbsp;E_ALL &amp; ~E_NOTICE<br/><br/>; 打印输出错误 (作为输出的一部分).&nbsp;&nbsp;对于生产环境的网站来说,<br/>; 强烈建议你关闭此选项, 使用错误日志来替代 (详情参考下面内容).&nbsp;&nbsp;<br/>; 在一个生产环境下的web站点打开display_errors可能泄漏安全信息给最终用户, 例如web服务器的文件路径,你数据库的结构或者其他信息.<br/>;<br/>; display_errors可用的值:<br/>;<br/>; Off&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 不显示任何错误信息<br/>; stderr&nbsp;&nbsp;&nbsp;&nbsp; - 将错误信息输出到STDERR (只有 CGI/CLI 格式下有效!)<br/>;<br/>;display_errors = &#34;stderr&#34;<br/>;<br/>; stdout (On) - 输出错误信息到STDOUT上<br/>;<br/>display_errors = On<br/><br/>; 即使 display_errors 打开后,PHP启动序列中发生的错误也不会显示.<br/>; 强烈建议你保持 display_startup_errors 关闭状态, 除非在排错<br/>display_startup_errors = Off<br/><br/>; 将错误输入到日志文件 (服务器指定的log,stderr或者error_log (以下指定))<br/>; 和上面提到的一样, 强烈建议你在生产环境的web站点下使用错误日志来代替错误显示.<br/>log_errors = Off<br/><br/>; 设定log_errors的最大长度. 在 error_log 关于源的信息也计算在内.<br/>; 默认是1024, 设置为0可以不限制任何最大长度.<br/>log_errors_max_len = 1024<br/><br/>; 不要记录重复的信息.必须出现在同样文件的相同行之中的才被认为是重复信息,除非 ignore_repeated_source 被设为 true.<br/>ignore_repeated_errors = Off<br/><br/>; 当忽略重复消息时忽略消息的来源. 当此设置打开后,不再记录来自不同文件或者不同行的相同消息.<br/>ignore_repeated_source = Off<br/><br/>; 如果此选项被设置为 Off, 那么内存泄漏不会被显示 (不论在stdout还是在日志中). <br/>; 此项仅在debug编译模式下有效, 并且错误报告需要包含 E_WARNING<br/>report_memleaks = On<br/><br/>;report_zend_debug = 0<br/><br/>; 在$php_errormsg中保存最后一次错误/警告消息 (逻辑值).<br/>track_errors = Off<br/><br/>; 关闭在错误信息中所包含的HTML标签.<br/>; 注意: 永远不要再生产环境中使用此特性.<br/>;html_errors = Off<br/><br/>; 如果html_errors 设置为On, 则PHP产生可点击的错误信息,点击后会跳转到描述此错误或者引起此错误的函数具体信息的页面.<br/>; 你可以从 <a href="http://www.php.net/docs.php" target="_blank" rel="external">http://www.php.net/docs.php</a> 下载一份PHP手册的副本<br/>; 并且将 docref_root指向你放置本地拷贝的以&#39;/&#39;开头的.<br/>; 你同时必须指定文件文件的包含点的扩展名.<br/>; 注意: 永远不要再生产环境中使用此特性.<br/>;docref_root = &#34;/phpmanual/&#34;<br/>;docref_ext = .html<br/><br/>; 在输出的错误信息前加上的字符串.<br/>;error_prepend_string = &#34;&lt;font color=#ff0000&gt;&#34;<br/><br/>; 在输出的错误信息之后加上的字符串.<br/>;error_append_string = &#34;&lt;/font&gt;&#34;<br/><br/>; 将错误记录到指定文件.<br/>;error_log = filename<br/><br/>; 将错误记录到 syslog (NT系统上的Event Log在Windows 95下不可用).<br/>;error_log = syslog<br/><br/><br/>;;;;;;;;;;;;;;;;;<br/>; 文件处理 ;<br/>;;;;;;;;;;;;;;;;;<br/>;<br/>; 注意 - track_vars 在PHP 4.0.3 中总是打开的<br/><br/>; 在PHP产生的URL中用来分隔参数的符号.<br/>; 默认是 &#34;&amp;&#34;.<br/>;arg_separator.output = &#34;&amp;&#34;<br/><br/>; PHP用来将URL分割输入到变量中的分隔符.<br/>; 默认是 &#34;&amp;&#34;.<br/>; 注意: 所有包含在指令内的字符都会被认为是分隔符!<br/>;arg_separator.input = &#34;;&amp;&#34;<br/><br/>; 此指令描述了PHP注册GET, POST, Cookie, 环境 和 内置变量的顺序&nbsp;&nbsp;(各自使用G, P, C, E 和 S , 一般使用 EGPCS 或 GPC).&nbsp;&nbsp;注册使用从左往右的顺序, 新的值会覆盖旧的值.<br/>variables_order = &#34;EGPCS&#34;<br/><br/>; 是否将EGPCS变量注册成为全局变量.<br/>; 如果你不希望由于用户数据而导致你脚本的全局变量变得凌乱,你需要关闭此选项<br/>; 这个一般随着 track_vars 打开 - 在这种情况下你能够通过$HTTP_*_VARS[]存取所有的GPC变量.<br/>;<br/>; 你应该努力写好脚本这样就不必打开register_globals <br/>; 如果代码不是经过详细的斟酌,那将变量作为全局使用可能很容易导致潜在的安全漏洞.<br/>register_globals = Off<br/><br/>; 是否注册老形式的输入数组, HTTP_GET_VARS 和相关数组<br/>; 如果你不使用他们,建议为了提高性能关闭他们.<br/>register_long_arrays = On<br/><br/>; 此指令让PHP确认是否申明 argv&amp;argc 变量 (这些变量会包含GET信息). <br/>; 如果你不使用这些变量,为了提升性能应该关闭此选项.<br/>register_argc_argv = On<br/><br/>; 当打开此项, SERVER 和 ENV 变量将在第一次被使用时而不是脚本一开始时创建(运行时)<br/>; 如果这些变量在脚本中没有被使用过, 打开此项会增加一点性能.<br/>; 为了使此指令有效,PHP指令 register_globals, register_long_arrays,<br/>; 以及 register_argc_argv 必须被关闭.<br/>auto_globals_jit = On<br/><br/>; PHP可以接受的最大的POST数据大小.<br/>post_max_size = 8M<br/><br/>; Magic quotes<br/>;<br/><br/>; 针对GET/POST/Cookie数据打开Magic quotes.<br/>magic_quotes_gpc = On<br/><br/>; 针对实时产生的数据打开Magic quotes, 例如从SQL获取的数据, 从exec()返回的数据等等.<br/>magic_quotes_runtime = Off<br/><br/>; 使用 Sybase 风格的 magic quotes (使用&#34;来引导&#39;替代\&#39;).<br/>magic_quotes_sybase = Off<br/><br/>; 在任何PHP文档之前或之后自动增加文件.<br/>auto_prepend_file =<br/>auto_append_file =<br/><br/>; 和 4.0b4一样, PHP 总是使用默认在头 Content-type: 的编码输出字符. <br/>; 将其设置为空可以禁用发送字符集.<br/>;<br/>; PHP内建默认为text/html<br/>default_mimetype = &#34;text/html&#34;<br/>;default_charset = &#34;iso-8859-1&#34;<br/><br/>; 总是填充 $HTTP_RAW_POST_DATA 变量.<br/>;always_populate_raw_post_data = On<br/><br/><br/>;;;;;;;;;;;;;;;;;;;;;;;;;<br/>; 路径和目录 ;<br/>;;;;;;;;;;;;;;;;;;;;;;;;;<br/><br/>; UNIX: &#34;/path1:/path2&#34;<br/>;include_path = &#34;.:/php/includes&#34;<br/>;<br/>; Windows: &#34;\path1;\path2&#34;<br/>;include_path = &#34;.;c:\php\includes&#34;<br/><br/>; PHP页面的根路径, 只有非空时有效.<br/>; 如果PHP没有使用FORCE_REDIRECT来编译, 如果你将php作为CGI运行在任何web服务器下(除了IIS)的话,你必须设置doc_root<br/>; 针对安全问题查看文档.&nbsp;&nbsp;一种替代方案是使用下面的cgi.force_redirect<br/>doc_root =<br/><br/>; PHP使用/~username打开脚本的目录,非空时才有效.<br/>user_dir =<br/><br/>; 可加载的扩展(模块)的目录位置.<br/>extension_dir = &#34;./&#34;<br/><br/>; 是否启用 dl() 函数.&nbsp;&nbsp;dl() 函数无法正常的在多线程服务下运行, 例如IIS或者Zeus, 并在在这些服务软件下会自动禁用.<br/>enable_dl = On<br/><br/>; 在绝大多数web服务器下,cgi.force_redirect 对于提供安全执行PHP作为CGI来说是很有必要的. <br/>; 没有配置的情况下,PHP会默认打开此项.<br/>; 你可以在这里关闭此项并且自己承担风险<br/>; **你可以在IIS安全的关闭此项,事实上,你必须关闭此项.**<br/>; cgi.force_redirect = 1<br/><br/>; 如果 cgi.nph 被打开,就会强制CGI在每个请求时发送Status: 200.<br/>; cgi.nph = 1<br/><br/>; 如果cgi.force_redirect被打开,并且你没有在Apache或者Netscape(iPlanet) web服务器下运行, <br/>; 你也许需要设置一个环境变量名让PHP来查找让其可以获取后继续执行. 设置此变量可能引起安全问题, 在设置之前请先了解可能引起的后果.<br/>; cgi.redirect_status_env = ;<br/><br/>; cgi.fix_pathinfo 为CGI提供 *真实* PATH_INFO/PATH_TRANSLATED 支持.&nbsp;&nbsp;<br/>; PHP的预处理行为是设置 PATH_TRANSLATED 到 SCRIPT_FILENAME, 并且不去猜测 PATH_INFO 是什么. <br/>; 想获取关于 PATH_INFO 更多的信息, 查看 cgi 规范.&nbsp;&nbsp;<br/>; 将此值设置为1会引起PHP CGI修正它的路径来符合规范.<br/>; 设置为0会引起PHP类似前面的行为. 默认是1. 你应该修正你的脚本来使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED.<br/>; cgi.fix_pathinfo=0<br/><br/>; 在IIS下的FastCGI (在基于 WINNT 的操作系统下) 支持莫让呼叫客户端的安全令牌的能力.<br/>; 这使得IIS能够定义其下运行的安全上下文.<br/>; 在Apache下的mod_fastcgi 目前不支持此特性 (03/17/2002)<br/>; 如果运行在IIS下设置为1. 默认是0.<br/>; fastcgi.impersonate = 1;<br/><br/>; 关闭通过 FastCGI 连接的日志<br/>; fastcgi.logging = 0<br/><br/>; cgi.rfc2616_headers 配置选项告知 PHP 当发送HTTP响应代码时使用什么类型的头<br/>; 如果设置为0,PHP发送被Apache支持的 Status: 头信息.<br/>; 当设置为1, PHP会发送 RFC2616 兼容的头信息.<br/>; 默认为0.<br/>; cgi.rfc2616_headers = 0<br/><br/><br/>;;;;;;;;;;;;;;;;<br/>; 文件上传 ;<br/>;;;;;;;;;;;;;;;;<br/><br/>; 是否允许HTTP文件上传.<br/>file_uploads = On<br/><br/>; 对于HTTP上传文件的临时文件目录 (如果没有指定则会使用系统默认).<br/>;upload_tmp_dir =<br/><br/>; 允许上传的最大文件大小.<br/>upload_max_filesize = 2M<br/><br/><br/>;;;;;;;;;;;;;;;;;;<br/>; Fopen 包装 ;<br/>;;;;;;;;;;;;;;;;;;<br/><br/>; 是否允许将URL作为文件 (例如 <a href="http://" target="_blank" rel="external">http://</a> 或者 <a href="ftp://" target="_blank" rel="external">ftp://</a>) .<br/>allow_url_fopen = On<br/><br/>; 是否允许 include/require 将URL作为文件 (例如 <a href="http://" target="_blank" rel="external">http://</a> 或者 <a href="ftp://" target="_blank" rel="external">ftp://</a>) .<br/>allow_url_include = Off<br/><br/>; 定义匿名ftp密码 (你的电子邮件地址)<br/>;from=&#34;john@doe.com&#34;<br/><br/>; 定义 User-Agent 字符串<br/>; user_agent=&#34;PHP&#34;<br/><br/>; 定义基于流的socket接口的超时时间 (秒)<br/>default_socket_timeout = 60<br/><br/>; 如果你的脚本必须处理从 Macintosh 系统来的文件,<br/>; 或者你运行在一台Mac并且需要从unix或者win32系统上处理文件,<br/>; 设置此标志会引起PHP自动检测这些文件的EOL字符,这样fgets() 和 file() 就可以不用管文件的来源而直接处理了.<br/>; auto_detect_line_endings = Off<br/><br/><br/>;;;;;;;;;;;;;;;;;;;;;;<br/>; 动态扩展 ;<br/>;;;;;;;;;;;;;;;;;;;;;;<br/>;<br/>; 如果你希望扩展自动加载, 使用下列语法:<br/>;<br/>;&nbsp;&nbsp; extension=modulename.extension<br/>;<br/>; 例如,在Windows系统上:<br/>;<br/>;&nbsp;&nbsp; extension=msql.dll<br/>;<br/>; ... 或者在 UNIX 下:<br/>;<br/>;&nbsp;&nbsp; extension=msql.so<br/>;<br/>; 注意: 这里应该只是模块的名字; <br/>; 这里不需要模块的目录信息.<br/>; 使用上面的 extension_dir 指令来指定扩展的位置.<br/><br/><br/>; Windows Extensions<br/>; 注意:已经内建了ODBC支持,所以不需要针对ODBC的dll.<br/>; 注意:许多DLL文件位于 extensions/ (PHP 4) 或者 ext/ (PHP 5)目录中,和分割的PECL DLL下载在一起 (PHP 5).<br/>; 确定设置了正确的 extension_dir 指令.<br/><br/>;extension=php_bz2.dll<br/>;extension=php_curl.dll<br/>;extension=php_dba.dll<br/>;extension=php_dbase.dll<br/>;extension=php_exif.dll<br/>;extension=php_fdf.dll<br/>;extension=php_gd2.dll<br/>;extension=php_gettext.dll<br/>;extension=php_gmp.dll<br/>;extension=php_ifx.dll<br/>;extension=php_imap.dll<br/>;extension=php_interbase.dll<br/>;extension=php_ldap.dll<br/>;extension=php_mbstring.dll<br/>;extension=php_mcrypt.dll<br/>;extension=php_mhash.dll<br/>;extension=php_mime_magic.dll<br/>;extension=php_ming.dll<br/>;extension=php_msql.dll<br/>;extension=php_mssql.dll<br/>;extension=php_mysql.dll<br/>;extension=php_mysqli.dll<br/>;extension=php_oci8.dll<br/>;extension=php_openssl.dll<br/>;extension=php_pdo.dll<br/>;extension=php_pdo_firebird.dll<br/>;extension=php_pdo_mssql.dll<br/>;extension=php_pdo_mysql.dll<br/>;extension=php_pdo_oci.dll<br/>;extension=php_pdo_oci8.dll<br/>;extension=php_pdo_odbc.dll<br/>;extension=php_pdo_pgsql.dll<br/>;extension=php_pdo_sqlite.dll<br/>;extension=php_pgsql.dll<br/>;extension=php_pspell.dll<br/>;extension=php_shmop.dll<br/>;extension=php_snmp.dll<br/>;extension=php_soap.dll<br/>;extension=php_sockets.dll<br/>;extension=php_sqlite.dll<br/>;extension=php_sybase_ct.dll<br/>;extension=php_tidy.dll<br/>;extension=php_xmlrpc.dll<br/>;extension=php_xsl.dll<br/>;extension=php_zip.dll<br/><br/>;;;;;;;;;;;;;;;;;;;<br/>; 模块设置 ;<br/>;;;;;;;;;;;;;;;;;;;<br/><br/>[Date]<br/>; 定义date函数使用的默认时区<br/>;date.timezone =<br/><br/>;date.default_latitude = 31.7667<br/>;date.default_longitude = 35.2333<br/><br/>;date.sunrise_zenith = 90.583333<br/>;date.sunset_zenith = 90.583333<br/><br/>[filter]<br/>;filter.default = unsafe_raw<br/>;filter.default_flags =<br/><br/>[iconv]<br/>;iconv.input_encoding = ISO-8859-1<br/>;iconv.internal_encoding = ISO-8859-1<br/>;iconv.output_encoding = ISO-8859-1<br/><br/>[sqlite]<br/>;sqlite.assoc_case = 0<br/><br/>[xmlrpc]<br/>;xmlrpc_error_number = 0<br/>;xmlrpc_errors = 0<br/><br/>[Pcre]<br/>;PCRE 库反响追踪限制.<br/>;pcre.backtrack_limit=100000<br/><br/>;PCRE 库递归限制. <br/>;请注意如果你设置此项到一个很高的值, 你可能耗尽所有的可用的进程堆并且最终弄宕PHP(由于到达了操作系统强制的堆大小的限制).<br/>;pcre.recursion_limit=100000<br/><br/>[Syslog]<br/>; 是否定义不同的syslog变量 (例如. $LOG_PID,<br/>; $LOG_CRON, 等等.).&nbsp;&nbsp;关闭此选项对性能有益. <br/>; 在运行时, 你可以调用 define_syslog_variables() 函数来定义这些变量.<br/>define_syslog_variables&nbsp;&nbsp;= Off<br/><br/>[mail function]<br/>; 针对Win32.<br/>SMTP = localhost<br/>smtp_port = 25<br/><br/>; 针对Win32.<br/>;sendmail_from = me@example.com<br/><br/>; 针对Unix.&nbsp;&nbsp;可以支持参数 (默认: &#34;sendmail -t -i&#34;).<br/>;sendmail_path =<br/><br/>; 强制额外的指定的参数被作为扩展参数传送给sendmail执行文件.<br/>; 这些参数总是替代mail()函数的第五个参数值, 甚至是在安全模式内.<br/>;mail.force_extra_parameters =<br/><br/>[SQL]<br/>sql.safe_mode = Off<br/><br/>[ODBC]<br/>;odbc.default_db&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;目前无效<br/>;odbc.default_user&nbsp;&nbsp;=&nbsp;&nbsp;目前无效<br/>;odbc.default_pw&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;目前无效<br/><br/>; 允许或阻止持久连接.<br/>odbc.allow_persistent = On<br/><br/>; 在重用前检查连接是否可用.<br/>odbc.check_persistent = On<br/><br/>; 持久连接的最大数目.&nbsp;&nbsp;-1 意味着没有限制.<br/>odbc.max_persistent = -1<br/><br/>; 最大连接数 (持久 + 非持久).&nbsp;&nbsp;-1 意味着没有限制.<br/>odbc.max_links = -1<br/><br/>; 长字段处理.&nbsp;&nbsp;返回变量的字节数.&nbsp;&nbsp;0 意味着略过.<br/>odbc.defaultlrl = 4096<br/><br/>; 二进制数据处理. 0 意味着略过, 1按照实际返回, 2 转换到字符.<br/>; 查看 odbc_binmode 和 odbc_longreadlen 的文档来获取针对 uodbc.defaultlrl 和 uodbc.defaultbinmode的解释<br/>odbc.defaultbinmode = 1<br/><br/>[MySQL]<br/>; 允许或阻止持久连接.<br/>mysql.allow_persistent = On<br/><br/>; 持久连接的最大数目.&nbsp;&nbsp;-1 意味着没有限制.<br/>mysql.max_persistent = -1<br/><br/>; 最大连接数 (持久 + 非持久).&nbsp;&nbsp;-1 意味着没有限制.<br/>mysql.max_links = -1<br/><br/>; mysql_connect()默认的端口号.&nbsp;&nbsp;如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT <br/>; 或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找). <br/>; Win32 只会查找MYSQL_PORT值.<br/>mysql.default_port =<br/><br/>; 对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值.<br/>mysql.default_socket =<br/><br/>; mysql_connect() 的默认host值(在安全模式中不会生效).<br/>mysql.default_host =<br/><br/>; mysql_connect() 的默认user值(在安全模式中不会生效).<br/>mysql.default_user =<br/><br/>; mysql_connect() 的默认password值(在安全模式中不会生效).<br/>; 注意在此文件中保存密码一般来说是 *糟糕* 的主义.<br/>; *任何* 使用PHP的用户可以执行 &#39;echo get_cfg_var(&#34;mysql.default_password&#34;)<br/>; 并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码.<br/>mysql.default_password =<br/><br/>; 连接超时的最大时间 (秒) , -1 意味着没有限制.<br/>mysql.connect_timeout = 60<br/><br/>; 追踪模式. 当 trace_mode 被打开 (=On), table/index 扫描的警告和SQL错误会被显示出来.<br/>mysql.trace_mode = Off<br/><br/>[MySQLi]<br/><br/>; 最大连接数.&nbsp;&nbsp;-1 意味着没有限制.<br/>mysqli.max_links = -1<br/><br/>; mysqli_connect()默认的端口号.&nbsp;&nbsp;如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT <br/>; 或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找). <br/>; Win32 只会查找MYSQL_PORT值.<br/>mysqli.default_port = 3306<br/><br/>; 对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值.<br/>mysqli.default_socket =<br/><br/>; mysqli_connect() 的默认host值(在安全模式中不会生效).<br/>mysqli.default_host =<br/><br/>; mysqli_connect() 的默认user值(在安全模式中不会生效).<br/>mysqli.default_user =<br/><br/>; mysqli_connect() 的默认password值(在安全模式中不会生效).<br/>; 注意在此文件中保存密码一般来说是 *糟糕* 的主义.<br/>; *任何* 使用PHP的用户可以执行 &#39;echo get_cfg_var(&#34;mysqli.default_password&#34;)<br/>; 并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码.<br/>mysqli.default_pw =<br/><br/>; 允许或阻止持久连接.<br/>mysqli.reconnect = Off<br/><br/>[mSQL]<br/>; 允许或阻止持久连接.<br/>msql.allow_persistent = On<br/><br/>; 持久连接的最大数目.&nbsp;&nbsp;-1 意味着没有限制.<br/>msql.max_persistent = -1<br/><br/>; 最大连接数 (持久 + 非持久).&nbsp;&nbsp;-1 意味着没有限制.<br/>msql.max_links = -1<br/><br/>[OCI8]<br/>; 打开使用外部认证的授权连接 (OCI_SYSOPER, OCI_SYSDBA)<br/>;oci8.privileged_connect = Off<br/><br/>; 连接: 每个进程的持久OCI8连接的最大数, -1 意味着没有限制.<br/>;oci8.max_persistent = -1<br/><br/>; 连接: 一个进程允许保持一个空闲持久连接的最大秒数.<br/>; -1意味着空闲持久连接会永远被保持.<br/>;oci8.persistent_timeout = -1<br/><br/>; 连接: 当oci_pconnect() 检测一个连接是否有效时每次发起ping之间必须通过的秒数. <br/>; 当设置为0后, 每个oci_pconnect() 会发起一个ping. Using -1 完全关闭ping.<br/>;oci8.ping_interval = 60<br/><br/>; 调优: 此选项打开声明缓冲(statement cache), 并且指定缓冲多少声明. 使用0关闭声明缓冲.<br/>;oci8.statement_cache_size = 20<br/><br/>; 调优: 打开声明预取(statement prefetch) 并且设置自动在声明执行后被取到行的数量.<br/>;oci8.default_prefetch = 10<br/><br/>; 兼容性: 设置为On 意味着 oci_close() 不会关闭 oci_connect() 和 oci_new_connect() 的连接.<br/>;oci8.old_oci_close_semantics = Off<br/><br/>[PostgresSQL]<br/>; 允许或阻止持久连接.<br/>pgsql.allow_persistent = On<br/><br/>; 总是在 pg_pconnect() 时检测断开的持久连接.<br/>; 自动重置特性会引起一点开销.<br/>pgsql.auto_reset_persistent = Off<br/><br/>; 持久连接的最大数目.&nbsp;&nbsp;-1 意味着没有限制.<br/>pgsql.max_persistent = -1<br/><br/>; 最大连接数 (持久 + 非持久).&nbsp;&nbsp;-1 意味着没有限制.<br/>pgsql.max_links = -1<br/><br/>; 是否忽略 PostgreSQL 后端通告消息.<br/>; 通告消息记录会需要一点开销.<br/>pgsql.ignore_notice = 0<br/><br/>; 是否记录 PostgreSQL 后端通告消息.<br/>; 除非 pgsql.ignore_notice=0, 否则模块无法记录通告消息<br/>pgsql.log_notice = 0<br/><br/>[Sybase]<br/>; 允许或阻止持久连接.<br/>sybase.allow_persistent = On<br/><br/>; 持久连接的最大数目.&nbsp;&nbsp;-1 意味着没有限制.<br/>sybase.max_persistent = -1<br/><br/>; 最大连接数 (持久 + 非持久).&nbsp;&nbsp;-1 意味着没有限制.<br/>sybase.max_links = -1<br/><br/>;sybase.interface_file = &#34;/usr/sybase/interfaces&#34;<br/><br/>; 显示出的消息最小严重程度.<br/>sybase.min_error_severity = 10<br/><br/>; 显示出的消息最小严重程度.<br/>sybase.min_message_severity = 10<br/><br/>; 兼容老版本PHP 3.0的模式.<br/>; 如果设为 on, 会引起 PHP 自动绑定结果记录的类型到Sybase的类型,而不是将他们全部按照字符串处理. <br/>; 此兼容模式可能不会永久存在, 所以最好尝试在你代码中需要的地方作出必要的修改, 然后关闭此选项.<br/>sybase.compatability_mode = Off<br/><br/>[Sybase-CT]<br/>; 允许或阻止持久连接.<br/>sybct.allow_persistent = On<br/><br/>; 持久连接的最大数目.&nbsp;&nbsp;-1 意味着没有限制.<br/>sybct.max_persistent = -1<br/><br/>; 最大连接数 (持久 + 非持久).&nbsp;&nbsp;-1 意味着没有限制.<br/>sybct.max_links = -1<br/><br/>; 显示出的错误最小严重程度.<br/>sybct.min_server_severity = 10<br/><br/>; 显示出的消息最小严重程度.<br/>sybct.min_client_severity = 10<br/><br/>[bcmath]<br/>; 所有bcmath函数的小数位数<br/>bcmath.scale = 0<br/><br/>[browscap]<br/>;browscap = extra/browscap.ini<br/><br/>[Informix]<br/>; 对于 ifx_connect() 的默认host (不会在安全模式被应用).<br/>ifx.default_host =<br/><br/>; 对于 ifx_connect() 的默认user (不会在安全模式被应用).<br/>ifx.default_user =<br/><br/>; 对于 ifx_connect() 的默认password (不会在安全模式被应用).<br/>ifx.default_password =<br/><br/>; 允许或阻止持久连接.<br/>ifx.allow_persistent = On<br/><br/>; 持久连接的最大数目.&nbsp;&nbsp;-1 意味着没有限制.<br/>ifx.max_persistent = -1<br/><br/>; 最大连接数 (持久 + 非持久).&nbsp;&nbsp;-1 意味着没有限制.<br/>ifx.max_links = -1<br/><br/>; 如果设为 on, sel&#101;ct 声明返回 text 段的内容而不是它的id.<br/>ifx.textasvarchar = 0<br/><br/>; 如果设为 on, sel&#101;ct 声明返回 byte 段的内容而不是它的id.<br/>ifx.byteasvarchar = 0<br/><br/>; 固定长度字符列的尾部空格会被截去.&nbsp;&nbsp;可能对 Informix SE 用户有帮助.<br/>ifx.charasvarchar = 0<br/><br/>; 如果设为 on, text 和 byte 段会被dump到一个文件而不是在内存中保留它们.<br/>ifx.blobinfile = 0<br/><br/>; NULL会被作为一个空字符串返回, 除非被设为1. 如果设为1, NULL会被作为字符串&#39;NULL&#39;返回.<br/>ifx.nullformat = 0<br/><br/>[Session]<br/>; 用来存储/获取数据的处理方法.<br/>session.save_handler = files<br/><br/>; 传送到save_handler的参数.&nbsp;&nbsp;在使用文件的情况下, 这里是数据文件被保存的路径.<br/>; 注意: Windows 用户必须改变此值来使用PHP的会话函数.<br/>;<br/>; 和在 4.0.1一样, 你可以定义如下路径:<br/>;<br/>;&nbsp;&nbsp;&nbsp;&nbsp; session.save_path = &#34;N;/path&#34;<br/>;<br/>; 这里的 N 是一个整数.&nbsp;&nbsp;使用此参数会在目录内建立一个N层深度的子目录用来保存session文件,<br/>; 而不是将所有session文件保存在同一个/path目录内.&nbsp;&nbsp;<br/>; 这对你或当你的操作系统在一个目录内保存太多文件时出现问题很有帮助.<br/>; 并且对于处理大量session的服务器提供更高的效率.<br/>;<br/>; 注意 1: PHP不会自动创建目录结构. 你可以使用在ext/session目录内的脚本来创建目录结构.<br/>; 注意 2: 如果你选择使用子目录来保存session,请检查下面关于垃圾回收的配置段<br/>;<br/>; 文件存储模块默认使用600模式来创建文件,在使用中你可以改变此选项<br/>;<br/>;&nbsp;&nbsp;&nbsp;&nbsp; session.save_path = &#34;N;MODE;/path&#34;<br/>;<br/>; 这里的MODE由8进制来表示. 注意这里不会覆盖进程的umask.<br/>;session.save_path = &#34;/tmp&#34;<br/><br/>; 是否使用cookie.<br/>session.use_cookies = 1<br/><br/>;session.cookie_secure = <br/><br/>; 这个选项允许管理员去保护那些在URL中传送session id的用户免于被攻击<br/>; 默认是 0.<br/>; session.use_only_cookies = 1<br/><br/>; session的名称 (作为cookie名称来使用).<br/>session.name = PHPSESSID<br/><br/>; 在请求开始的时候初始化session.<br/>session.auto_start = 0<br/><br/>; cookie的生存秒数,或者如果为0就直到浏览器重启.<br/>session.cookie_lifetime = 0<br/><br/>; cookie有效的路径.<br/>session.cookie_path = /<br/><br/>; cookie有效的域名.<br/>session.cookie_domain =<br/><br/>; 是否将httpOnly标志增加到cookie上, 增加后则cookie无法被浏览器的脚本语言(例如JavaScript)存取.<br/>session.cookie_httponly = <br/><br/>; 用于序列化数据的处理器. php是标准的PHP序列化器.<br/>session.serialize_handler = php<br/><br/>; 定义&#39;垃圾回收&#39;进程在每次session初始化时开始的比例.<br/>; 比例由 gc_probability/gc_divisor来得出,<br/>; 例如. 1/100 意味着在每次请求时有1%的机会启动&#39;垃圾回收&#39;进程.<br/><br/>session.gc_probability = 1<br/>session.gc_divisor&nbsp;&nbsp;&nbsp;&nbsp; = 100<br/><br/>; 在经过以下秒数之后, 存储的数据会被认为是&#39;垃圾&#39;并且被垃圾回收进程清理掉.<br/>session.gc_maxlifetime = 1440<br/><br/>; 注意: 如果你使用子目录选项来保存session文件<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (查看在上面的session.save_path), 那么垃圾回收就 *不会* 自动发生.<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 你需要通过一个shell脚本,cron或者其他方法来自行处理垃圾回收.<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如, 下面的脚本相当于将session.gc_maxlifetime设置为 1440 (1440 秒 = 24 分钟):<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cd /path/to/sessions; find -cmin +24 | xargs rm<br/><br/>; PHP 4.2 和更早版本有一个未公开的 特性/bug , 此特性允许你在全局初始化一个session变量,即便 register_globals 已经被关闭.<br/>; 如果此特性被使用,PHP 4.3 和更早版本会警告你.<br/>; 你可以关闭此特性并且隔离此警告. 这时候,如果打开bug_compat_42,那此警告只是被显示出来.<br/><br/>session.bug_compat_42 = 1<br/>session.bug_compat_warn = 1<br/><br/>; 检查HTTP Referer来防止带有id的外部URL.<br/>; HTTP_REFERER 必须包含从session来的这个字段才会被认为是合法的.<br/>session.referer_check =<br/><br/>; 从此文件读取多少字节.<br/>session.entropy_length = 0<br/><br/>; 在这里指定创建session id.<br/>session.entropy_file =<br/><br/>;session.entropy_length = 16<br/><br/>;session.entropy_file = /dev/urandom<br/><br/>; 设置为 {nocache,private,public,} 来决定HTTP缓冲的类型<br/>; 留空则防止发送 anti-caching 头.<br/>session.cache_limiter = nocache<br/><br/>; 文档在n分钟之后过期.<br/>session.cache_expire = 180<br/><br/>; trans sid 支持默认关闭.<br/>; 使用 trans sid 可能让你的用户承担安全风险.<br/>; 使用此项必须小心.<br/>; - 用户也许通过email/irc/其他途径发送包含有效的session ID的URL给其他人.<br/>; - 包含有效session ID的URL可能被存放在容易被公共存取的电脑上.<br/>; - 用户可能通过在浏览器历史记录或者收藏夹里面的包含相同的session ID的URL来访问你的站点.<br/>session.use_trans_sid = 0<br/><br/>; 选择hash方法<br/>; 0: MD5&nbsp;&nbsp; (128 bits)<br/>; 1: SHA-1 (160 bits)<br/>session.hash_function = 0<br/><br/>; 当转换二进制hash数据到可读形式时,每个字符保存时有几位.<br/>;<br/>; 4 bits: 0-9, a-f<br/>; 5 bits: 0-9, a-v<br/>; 6 bits: 0-9, a-z, A-Z, &#34;-&#34;, &#34;,&#34;<br/>session.hash_bits_per_character = 4<br/><br/>; URL rewriter会在已经定义的一组HTML标签内查找URL.<br/>; form/fieldset 是特殊字符; 如果你在这里包含他们, rewriter会增加一个包含信息的隐藏&lt;input&gt;字段否则就是在URL中附加信息.<br/>; 如果你你想遵守XHTML, 删除form的入口.<br/>; 注意 所有合法的入口都需要一个&#34;=&#34;符号, 甚至是没有任何值的.<br/>url_rewriter.tags = &#34;a=href,area=href,frame=src,input=src,form=,fieldset=&#34;<br/><br/>[MSSQL]<br/>; 允许或阻止持久连接.<br/>mssql.allow_persistent = On<br/><br/>; 持久连接的最大数目.&nbsp;&nbsp;-1 意味着没有限制.<br/>mssql.max_persistent = -1<br/><br/>; 最大连接数 (持久 + 非持久).&nbsp;&nbsp;-1 意味着没有限制.<br/>mssql.max_links = -1<br/><br/>; 显示出的错误最小严重程度.<br/>mssql.min_error_severity = 10<br/><br/>; 显示出的消息最小严重程度.<br/>mssql.min_message_severity = 10<br/><br/>; PHP 3.0 老版本的兼容模式.<br/>mssql.compatability_mode = Off<br/><br/>; 连接超时<br/>;mssql.connect_timeout = 5<br/><br/>; 查询超时<br/>;mssql.timeout = 60<br/><br/>; 有效范围 0 - 2147483647.&nbsp;&nbsp;默认 = 4096.<br/>;mssql.textlimit = 4096<br/><br/>; 有效范围 0 - 2147483647.&nbsp;&nbsp;默认 = 4096.<br/>;mssql.textsize = 4096<br/><br/>; 每批记录的数量限制.&nbsp;&nbsp;0 = 所有记录在一批内.<br/>;mssql.batchsize = 0<br/><br/>; 指定 datetime 和 datetim4 栏如何返回<br/>; On =&gt; 返回数据转换到SQL服务器设置的格式<br/>; Off =&gt; 使用 YYYY-MM-DD hh:mm:ss 返回<br/>;mssql.datetimeconvert = On<br/><br/>; 当连接到服务器时使用NT验证<br/>mssql.secure_connection = Off<br/><br/>; 指定最大进程数. -1 = 库默认<br/>; msdlib 默认 25<br/>; FreeTDS 默认 4096<br/>;mssql.max_procs = -1<br/><br/>; 指定客户端字符集. <br/>; 如果为空或者没有指定,客户端字符集将会使用freetds.conf的配置<br/>; 只有和FreeTDS编译时会被使用<br/>;mssql.charset = &#34;ISO-8859-1&#34;<br/><br/>[Assertion]<br/>; 断言(expr); 默认打开.<br/>;assert.active = On<br/><br/>; 对于每个失败断言发起一个PHP警告.<br/>;assert.warning = On<br/><br/>; 默认不要保释.<br/>;assert.bail = Off<br/><br/>; 如果断言失败则调用用户自定义函数.<br/>;assert.callback = 0<br/><br/>; 使用当前 error_reporting() Eval一个表达式.&nbsp;&nbsp;如果你想要在eval()附近error_reporting(0) ,那设置为true.<br/>;assert.quiet_eval = 0<br/><br/>[COM]<br/>; 包含GUID,IID或者TypeLibs的文件的文件名的文件的路径<br/>;com.typelib_file =<br/>; 允许 Distributed-COM 调用<br/>;com.allow_dcom = true<br/>; 自动注册位于com_load()函数的组件typlib的常量<br/>;com.autoregister_typelib = true<br/>; 注册常量大小写敏感<br/>;com.autoregister_casesensitive = false<br/>; 当有重复常量注册时显示警告<br/>;com.autoregister_verbose = true<br/><br/>[mbstring]<br/>; 内部字符表示的语言.<br/>;mbstring.language = Japanese<br/><br/>; 内部/脚本编码.<br/>; 部分编码无法作为内部编码使用.<br/>; (例如. SJIS, BIG5, ISO-2022-*)<br/>;mbstring.internal_encoding = EUC-JP<br/><br/>; http 输入编码.<br/>;mbstring.http_input = auto<br/><br/>; http 输出编码. mb_output_handler 必须作为函数被注册为输出缓冲<br/>;mbstring.http_output = SJIS<br/><br/>; 按照mbstring.internal_encoding的设置打开自动编码转换<br/>; 当设置为On时,输入字符被转换为内部编码.<br/>; 注意: 不要针对可移植库/应用使用自动编码转换.<br/>;mbstring.encoding_translation = Off<br/><br/>; 自动编码检测序列<br/>; 自动意味着<br/>;mbstring.detect_order = auto<br/><br/>; 当无法将字符从一种转换到另一种时使用的置换符号<br/>;mbstring.substitute_character = none;<br/><br/>; 使用mbstring函数 覆盖(替换) 单字节函数.<br/>; mail(), ereg(), 等等都会被 mb_send_mail(), mb_ereg() 等等覆盖,<br/>; 可以取的值是 0,1,2,4 或者他们的组合.<br/>; 例如, 7 就是覆盖所有函数.<br/>; 0: 不覆盖<br/>; 1: 覆盖 mail() 函数<br/>; 2: 覆盖 str*() 函数<br/>; 4: 覆盖 ereg*() 函数<br/>;mbstring.func_overload = 0<br/><br/>[FrontBase]<br/>;fbsql.allow_persistent = On<br/>;fbsql.autocommit = On<br/>;fbsql.show_timestamp_decimals = Off<br/>;fbsql.default_database =<br/>;fbsql.default_database_password =<br/>;fbsql.default_host =<br/>;fbsql.default_password =<br/>;fbsql.default_user = &#34;_SYSTEM&#34;<br/>;fbsql.generate_warnings = Off<br/>;fbsql.max_connections = 128<br/>;fbsql.max_links = 128<br/>;fbsql.max_persistent = -1<br/>;fbsql.max_results = 128<br/><br/>[gd]<br/>; 告知jpeg解码器libjpeg警告并且尝试创建一个gd图像. 此警告会被作为一个通告显示<br/>; 默认为关闭<br/>;gd.jpeg_ignore_warning = 0<br/><br/>[exif]<br/>; Exif UNICODE 用户注释会被作为UCS-2BE/UCS-2LE 和 JIS 来进行 JIS处理.<br/>; 当 mbstring.internal_encoding 设置为空,如果有 mbstring 支持,则会自动转换到给出的对应编码设置的编码.<br/>; 对于解码设置你可以在motorola和intel字符序列上进行选择. 解码设置不能设置为空.<br/>;exif.encode_unicode = ISO-8859-15<br/>;exif.decode_unicode_motorola = UCS-2BE<br/>;exif.decode_unicode_intel&nbsp;&nbsp;&nbsp;&nbsp;= UCS-2LE<br/>;exif.encode_jis =<br/>;exif.decode_jis_motorola = JIS<br/>;exif.decode_jis_intel&nbsp;&nbsp;&nbsp;&nbsp;= JIS<br/><br/>[Tidy]<br/>; 当调用tidy时,默认指向tidy配置文件的路径<br/>;tidy.default_config = /usr/local/lib/php/default.tcfg<br/><br/>; tidy是否自动清除和修复输出?<br/>; 警告: 不要在你产生非html内容时使用此项,例如产生动态图片时<br/>tidy.clean_output = Off<br/><br/>[soap]<br/>; 打开或关闭WSDL缓冲特性.<br/>soap.wsdl_cache_enabled=1<br/>; 设置SOAP扩展存放缓冲文件的目录.<br/>soap.wsdl_cache_dir=&#34;/tmp&#34;<br/>; (存活时间) 设置当缓冲文件被用来替换原有缓冲文件的秒数.<br/>soap.wsdl_cache_ttl=86400<br/><br/>; Local Variables:<br/>; tab-width: 4<br/>; End:]]></description>
		</item>
		
</channel>
</rss>
