<?xml version="1.0" encoding="utf-8" ?>
<!-- generator="FEEDCREATOR_VERSION" -->
<rss version="2.0" xmlns:sns="http://blog.sina.com.cn/sns">
    <channel>
        <title>难得糊涂的江湖</title>
        <description></description>
        <link>http://blog.sina.com.cn/dearyzy</link>
        <lastBuildDate>Sun, 06 Jul 2008 05:42:48 GMT+8</lastBuildDate>
        <generator>FEEDCREATOR_VERSION</generator>
        <language>zh-cn</language>
        <copyright>Copyright 1996 - 2008 SINA Inc. All Rights Reserved.</copyright>
        <pubDate>Sat, 05 Jul 2008 21:42:48 GMT+8</pubDate>
        <item>
            <title>PDF转换成Word文档</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a01009ocy.html</link>
            <description><![CDATA[<div CLASS="t_msgfont" ID="postmessage_450115"><font STYLE="FONT-SIZE: 12px"><font STYLE="FONT-SIZE: 12px"><font STYLE="FONT-SIZE: 12px"><font STYLE="FONT-SIZE: 10px"><font STYLE="FONT-SIZE: 12px"><font SIZE="3">应该说，PDF文档的规范性使得浏览者在阅读上方便了许多，但倘若要从里面提取些资料，实在是麻烦的可以。回忆起当初做毕业设计时规定的英文翻译，痛苦的要命，竟然傻到用Print
Screen截取画面到画图板，再回粘到word中，够白了：（最近连做几份商务标书，从Honeywell本部获取的业绩资料全部是英文版的PDF，为了不再被折磨，花费了一个晚上的<span CLASS="t_tag" HREF="tag.php?name=%CA%B1%BC%E4">时间</SPAN>研究PDF和Word文件的转换，找到下面2种方法，出于无产阶级所谓的同甘共苦之心，共享下：）</FONT><br/>

<font SIZE="3">1、实现工具：Office 2003中自带的Microsoft
Office Document Imaging</FONT><br/>
<font SIZE="3">应用情景：目前国外很多<span CLASS="t_tag" HREF="tag.php?name=%C8%ED%BC%FE">软件</SPAN>的支持信息都使用PDF方式进行发布，如果没有<span CLASS="t_tag" HREF="tag.php?name=Adobe">Adobe</SPAN>
<span CLASS="t_tag" HREF="tag.php?name=Reader">Reader</SPAN>，无法查看其内容，如果没有相关的编辑软件又无法编辑PDF文件。转换为DOC格式则可以实现编辑功能。尽管有些软件也可以完成PDF转换为DOC的工作，但很多都不支持中文，我们利用Office
2003中的Microsoft Office Document
Imaging组件来实现这一要求最为方便。</FONT></FONT></FONT></FONT></FONT></FONT>
<font STYLE="FONT-SIZE: 12px" SIZE="3"><br/>
<br/>
　　使用方法：</FONT> <font STYLE="FONT-SIZE: 12px" SIZE="3"><br/>
<br/>
　　第一步：首先使用Adobe
Reader打开待转换的PDF文件，接下来选择“文件→打印”菜单，在打开的“打印”设置窗口中将“打印机”栏中的“名称”设置为“Microsoft
Office Document Image
Writer”，确认后将该PDF文件输出为MDI格式的虚拟打印文件。</FONT>
<font STYLE="FONT-SIZE: 12px" SIZE="3"><br/>
<br/>
　　编辑提示：如果你在“名称”设置的下拉列表中没有找到“Microsoft
Office Document Image Writer”项，那证明你在安装Office
2003的时候没有安装该组件，请使用Office
2003安装<span CLASS="t_tag" HREF="tag.php?name=%B9%E2%C5%CC">光盘</SPAN>中的“添加/删除组件”更新安装该组件。</FONT>
<font STYLE="FONT-SIZE: 12px" SIZE="3"><br/>
<br/>
　　第二步：运行Microsoft Office Document
Imaging，并利用它来打开刚才保存的MDI文件，选择“工具→将文本发送到Word”菜单，并在弹出的窗口中勾选“在输出时保持<span CLASS="t_tag" HREF="tag.php?name=%CD%BC%C6%AC">图片</SPAN>版式不变”，确认后<span CLASS="t_tag" HREF="tag.php?name=%CF%B5%CD%B3">系统</SPAN>提示“必须在执行此操作前重新运行OCR。这可能需要一些时间”，不管它，确认即可。</FONT>
<font STYLE="FONT-SIZE: 12px"><font STYLE="FONT-SIZE: 12px"><font STYLE="FONT-SIZE: 12px"><font STYLE="FONT-SIZE: 10px"><font STYLE="FONT-SIZE: 12px"><font SIZE="3"><br/>
<br/>
　　编辑提示：目前，包括此工具在内的所有软件对PDF转DOC的识别率都不是特别完美，而且转换后会丢失原来的排版格式，所以大家在转换后还需要手工对其进行后期排版和校对工作。</FONT><br/>

<font SIZE="3">2、实现工具：Solid Converter PDF</FONT><br/>
<font SIZE="3">应用情景：利用Office 2003中的Microsoft
Office Document
Imaging组件来实现PDF转Word文档在一定程度上的确可以实现PDF文档到Word文档的转换，但是对于很多“不规则”的PDF文档来说，利用上面的方法转换出来的Word文档中常常是乱码一片。为了<span CLASS="t_tag" HREF="tag.php?name=%BB%D6%B8%B4">恢复</SPAN>PDF的原貌，推荐的这种软件可以很好地实现版式的完全保留，无需调整，而且可以调整成需要的样板形式。</FONT><br/>

<font SIZE="3">&nbsp;
&nbsp;&nbsp;
&nbsp;使用方法：&nbsp;&nbsp;</FONT><br/>

<font SIZE="3">&nbsp;
&nbsp;&nbsp;
&nbsp;1、下载安装文件Solid Converter
PDF,点击安装。</FONT><br/>
<font SIZE="3">&nbsp;
&nbsp;&nbsp;
&nbsp;编辑提示：安装前有个下载安装插件的过程，因此需要保证<span CLASS="t_tag" HREF="tag.php?name=%CD%F8%C2%E7">网络</SPAN>连接通畅。</FONT><br/>

<font SIZE="3">&nbsp;
&nbsp;&nbsp;
&nbsp;2、运行软件，按工具栏要求选择需要转换的PDF文档，点击右下的“转换”（Convert）按扭，选择自己需要的版式，根据提示完成转换。</FONT></FONT></FONT></FONT></FONT></FONT></DIV>]]></description>
            <author>难得糊涂</author>
            <category>Design 日记</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a01009ocy.html#comment</comments>
            <pubDate>Thu, 26 Jun 2008 17:10:20 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a01009ocy.html</guid>
        </item>
        <item>
            <title>Bonjour service是什么程序啊?</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a01009ocp.html</link>
            <description><![CDATA[Bonjour，原名Rendezvous，是苹果电脑公司在其开发的操作系统Mac
OS
X10.2版本之后引入的服务器搜索协议所使用的一个商标名。适用于LAN，
Bonjour使用多点传送域名系统服务记录来定位各种设备，比如打印机或者其他计算机，以及另外设备上的服务。<br/>

<br/>
先结束进程，再删除，发现删不了，肯定是装成了什么服务或者注入到其他程序了。先看前面这个简单的，呵呵。<br/>

<br/>
<br/>
点击&gt;开始&gt;运行,输入:services.msc打开服务管理,就发现一个怪怪的服务，<br/>

“##Id_String1.6844F930_1628_4223_B5CC_5BB94B879762##”，看名字叫“Bonjour
Service”，文件名也对得上，哈哈，就是他。看我的操作：<br/>

<br/>
C:\Program Files\Bonjour&gt;dir<br/>
驱动器 C 中的卷是 SYSTEM<br/>
卷的序列号是 44F3-5A14<br/>
<br/>
C:\Program Files\Bonjour 的目录<br/>
<br/>
2007-05-21 13:32 &lt;DIR&gt; .<br/>
2007-05-21 13:32 &lt;DIR&gt; ..<br/>
2006-02-28 12:42 94,208 mdnsNSP.dll<br/>
2006-02-28 12:42 229,376 mDNSResponder.exe<br/>
2 个文件 323,584 字节<br/>
2 个目录 3,942,105,088 可用字节<br/>
<br/>
C:\Program Files\Bonjour&gt;regsvr32 /s /u
mdnsNSP.dll<br/>
<br/>
C:\Program Files\Bonjour&gt;sc delete “Bonjour
Service”<br/>
[SC] DeleteService SUCCESS<br/>
<br/>
重启计算机,删除目录C:\Program Files\Bonjour,搞定.<br/>
<br/>
另外:还有一个叫“FLEXnet Licensing
Service”服务，看他是手动启动的，而且已停止就算了，又不占用资源。实际上据我了解，这个和以前几个版本一样，这个应该是反盗版检查许可的。留着吧，呵呵。<br/>]]></description>
            <author>难得糊涂</author>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a01009ocp.html#comment</comments>
            <pubDate>Thu, 26 Jun 2008 16:19:59 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a01009ocp.html</guid>
        </item>
        <item>
            <title>解决&quot;无法打开虚拟机: x:xxx.vmx。该虚拟机似乎正在</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a01009k7y.html</link>
            <description><![CDATA[<p STYLE="TEXT-INDENT: 2em" ALIGN="center"><strong><font COLOR="#000000" SIZE="5">解决"无法打开虚拟机:
x:xxx.vmx。该虚拟机似乎正在被使用。虚拟机配置文件x:xxx.vmx</FONT></STRONG><br/>
</P>
<p STYLE="TEXT-INDENT: 2em">&nbsp;</P>
<p STYLE="TEXT-INDENT: 2em">（一）</P>
<p STYLE="TEXT-INDENT: 2em">
安装的vm6，重启vm后有时候在标签处找不到已经建好的虚拟机，需要导入的时候发现，无法打开虚拟机，该虚拟机正在陪使用。以前的做法是在vm中再配置，然后把已经建好的直接拷贝进去覆盖掉，比较麻烦。现在的做法是：找到虚拟机系统的文件夹，修改下面的*.lck
文件夹名称。修改为随意。然后再启动vm6导入就好了。</P>
<p STYLE="TEXT-INDENT: 2em">&nbsp;</P>
<p STYLE="TEXT-INDENT: 2em">（二）</P>
<p STYLE="TEXT-INDENT: 2em">
找到此VM安装的文件夹。在此文件夹下，将名字以“.lck
”结尾的文件夹全部重命名，重命名的名字随意好了。然后再到VMWARE里启动你的VM。<br/>

会提示找不到VM的目录，然后关闭虚拟机，重新把所有改掉的文件名改回去，再启动虚拟机应该就可以了</P>
<p STYLE="TEXT-INDENT: 2em">
而我是只执行了第一步就OK了就是将名字以“.lck
”结尾的文件夹全部重命名。</P>
<p STYLE="TEXT-INDENT: 2em">&nbsp;</P>
<p STYLE="TEXT-INDENT: 2em">&nbsp;</P>
<p STYLE="TEXT-INDENT: 2em">&nbsp;</P>
<p STYLE="TEXT-INDENT: 2em">&nbsp;</P>]]></description>
            <author>难得糊涂</author>
            <category>Design 日记</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a01009k7y.html#comment</comments>
            <pubDate>Mon, 16 Jun 2008 22:56:18 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a01009k7y.html</guid>
        </item>
        <item>
            <title>mDNSResponder.exe 的删除</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a01009jbx.html</link>
            <description><![CDATA[<p><font COLOR="#000000"><strong>mDNSResponder.exe</STRONG><br/>
进程文件：mDNSResponder 或者 mDNSResponder.exe<br/>
进程名称： Bonjour for Windows Component<br/>
&nbsp;&nbsp;<br/>
描述：<br/>
mDNSResponder.exe是一款名为Bonjour的音乐分享软件相关程序。<br/>

<br/>
<br/>
出品者： Apple<br/>
属于： Bonjour for Windows<br/>
<br/>
系统进程： 否<br/>
后台程序： 否<br/>
使用网络： 否<br/>
硬件相关： 否<br/>
常见错误： 未知N/A<br/>
内存使用： 未知N/A<br/>
&nbsp;&nbsp;<br/>
安全等级 (0-5): 2<br/>
间谍软件： 否<br/>
广告软件： 否<br/>
病毒： 否<br/>
木马： 否<br/>
这个进程很多时候是安装了ADOBE CS3
之后出现的。不过，苹果公司的一些产品（如 Safari
浏览器）中也捆绑有它，不过在安装前会询问，而且在系统的“添加或者删除程序”中也有卸载入口。<br/>

<br/>
它在windows服务里面加了一个服务项。进程为mDNSResponder.exe。<br/>

解决方法：<br/>
运行"C:\Program Files\Bonjour\mDNSResponder.exe" -remove<br/>
打开 C:\Program Files\Bonjour ，重命名 mdnsNSP.dll 为
mdnsNSP.old<br/>
重启电脑<br/>
删除 Program Files\Bonjour 文件夹<br/>
到此清理完毕。<br/>
<br/>
<br/>
有用的清除方法&nbsp;&nbsp;&nbsp;<br/>

<strong>１</STRONG>.开始→控制面板→管理工具→服务,把那个像乱码一样的服务停止并禁用.这样开机就不加载这项服务了,并不能完全杀灭,还需继续进行下一步.<br/>

<strong>２</STRONG>.重启,删除 C:\Program Files目录下的
Bonjour文件夹,如遇无法删除请重复第一步后将此文件夹下的DLL文件改名,将后缀改为.old文件,重启后再删除即可.<br/>

<strong>３</STRONG>.最后清理注册表,开始→运行→regedit,搜索Bonjour,将搜索到的键值删除.次服务到此全部清理完毕.</FONT></P>]]></description>
            <author>难得糊涂</author>
            <category>Design 日记</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a01009jbx.html#comment</comments>
            <pubDate>Sat, 14 Jun 2008 13:54:27 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a01009jbx.html</guid>
        </item>
        <item>
            <title>百度PHP/JSP职位在线笔试真题详解</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a01009hjh.html</link>
            <description><![CDATA[1、请写一个程序，随机打印“0”、“1”、“2”，但保证“0”、“1”、“2”出现的概率是可配置的，例如2：1：3。
<p>
　　2、有一个基于数据库的通知发布系统，需要能够灵活配置通知生效的时间：</P>
<p>
　　a)可以设置在某几个小时内生效，如指定"2046年12月24日&nbsp;18时到25日0时生效</P>
<p>
　　b)可以设置在一周的某几天发布，如可以设置周六、周日生效</P>
<p>
　　c)可以设置一月的某几天生效，如可以设置5号、6号生效</P>
<p>
　　d)可以设置某一月的奇数日或者偶数日生效，如1、3、5号生效</P>
<p>
　　请设计数据库表结构，并简要说明设计思路。</P>
<p>
　　3、为某图书馆开发在线浏览系统，使用户可以通过自定义的图书别名浏览相关联的图书内容。假设该图书馆有1000万注册用户，馆藏图书1000万部。在线浏览系统允许用户自定义分类名称，每个分类可以包含若干部书籍。用户可以添加、删除分类，修改分类的名称(同一用户不允许有名称相同的分类)，可以在分类下添加、删除书籍，修改书籍的别名(同一分类下不允许有名称相同的别名)。现在设定每个用户最多可以自定义100个分类，每个分类最多可以包含100部书籍。</P>
<p>
　　A、假定用数据库解决存储问题，请设计相关的数据表结构，并给出设计考虑。</P>
<p>　　B、请给出下列操作的SQL语句</P>
<p>　　展示用户A的所有分类</P>
<p>
　　展示用户A所设置的分类F下的所有书籍信息</P>
<p>
　　C、请根据题目A的结果，尝试分析一下当用户数目增长到1亿，馆藏图书达到10亿册，每天访问用户达到500万，平均每人有10次操作时，系统应当做哪些改进或优化。</P>
<p>
　　注1：假定用户表、书籍表已经存在，且用户表中包含用户ID等必要信息，书籍表中包含书籍名称、作者等必要信息</P>
<p>
　　注2：图书别名是用户对某部图书自定义的名称。在不同的分类中，相同的别名可能对应不同的书籍</P>
<p>
　　4、一个数据文件，每条记录内容包括：时间、IP地址、关键词。记录是无序排列的，条数超过2000万条。</P>
<p>
　　要求对该数据文件按检索词的顺序进行排序，并保持时间、IP地址和关键词的关联关系。请设计一个程序，实现上述功能，并分析时间复杂度和空间复杂度。运行程序所使用的服务器的内存为1G，硬盘足够大。(至少要给出关键算法和设计思路)</P>
<p></P>
<table STYLE="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" CELLSPACING="0" CELLPADDING="6" WIDTH="95%" ALIGN="center" BORDER="0">
<tbody>
<tr>
<td STYLE="WORD-WRAP: break-word" BGCOLOR="#F3F3F3"><font FACE="Verdana">package edu.ruc.ydl;</FONT>
<p><font FACE="Verdana">import java.util.*;</FONT></P>
<p><font FACE="Verdana">public class RandomNumbers {<br/>
&nbsp;int firstProbability;<br/>
&nbsp;int secondProbability;<br/>
&nbsp;int thirdProbability;<br/>
&nbsp;<br/>
&nbsp;public void configProbability(int
firstProbability,int secondProbability,int
thirdProbability)//配置出现概率比<br/>
&nbsp;{<br/>
&nbsp;&nbsp;this.firstProbability=firstProbability;<br/>

&nbsp;&nbsp;this.secondProbability=secondProbability;<br/>

&nbsp;&nbsp;this.thirdProbability=thirdProbability;<br/>

&nbsp;}<br/>
&nbsp;<br/>
&nbsp;public int
getRandom()//随机输出录入的数字如（0,1,2）<br/>
&nbsp;{<br/>
&nbsp;&nbsp;Random ram=new Random();<br/>
&nbsp;&nbsp;int
tempRamdom=ram.nextInt(firstProbability+secondProbability+thirdProbability);<br/>

&nbsp;&nbsp;if
(tempRamdom&gt;=0 &amp;&amp;
tempRamdom&lt;firstProbability)<br/>
&nbsp;&nbsp;&nbsp;return
0;<br/>
&nbsp;&nbsp;else
if(tempRamdom&gt;=firstProbability
&amp;&amp;
tempRamdom&lt;secondProbability)<br/>
&nbsp;&nbsp;&nbsp;return
1;<br/>
&nbsp;&nbsp;else<br/>
&nbsp;&nbsp;&nbsp;return
2;<br/>
&nbsp;}<br/>
&nbsp;<br/>
&nbsp;public static void main(String[]
args)//main<br/>
&nbsp;{<br/>
&nbsp;&nbsp;RandomNumbers randomNumbers=new
RandomNumbers();<br/>
&nbsp;&nbsp;randomNumbers.configProbability(2,1,3);<br/>

&nbsp;&nbsp;System.out.println(randomNumbers.getRandom());<br/>

&nbsp;}</FONT></P>
<p><font FACE="Verdana">}</FONT></P>
</TD>
</TR>
</TBODY>
</TABLE>
<p></P>
<p>　　<strong>第二题.专家解答</STRONG></P>
<p>　　表名：Publish</P>
<p>　　字段名 类型 缺省值 中文含义 约束 备注</P>
<p>　　id Int 0 编号 PRI</P>
<p>　　title Varchar(30) 发布内容的标题</P>
<p>　　content Varchar(50) 发布的内容</P>
<p>　　time Varchar(200)</P>
<p>　　day Varchar(200)</P>
<p>　　date Varchar(200)</P>
<p>　　pdouble int 0 1表示奇数，2表示偶数 奇偶日</P>
<p>　　choice Int 0 表示选择以上哪几种组合</P>
<p>　　Publish表由下列字段组成</P>
<p>　　Publish_id 发布内容的唯一标识;</P>
<p>　　Publish_title 发布内容的标题</P>
<p>　　Publish_content 发布的内容</P>
<p>　　...... 其他与内容相关的字段</P>
<p>&nbsp;</P>
<p>&nbsp;</P>
<p>　　</P>
<p>　　Publish_time
有效时间段，由时间型和|构成的字符串，默认为'1975-1-1
12:00:00|3000-1-1 12:00:00')</P>
<p>
　　Publish_day(表示周几，int，2^0=1表示周一，2^1=2表示周二，
2^2=4表示周三，......2^7=128表
示星期天，0为默认),</P>
<p>
　　Publish_date(表示日期，由1-31构成并用|分开的字符串，‘0’为默认,如2|5|15|31)，</P>
<p>　　Publish_double
(表选择奇偶日，int，1表示奇数，2表示偶数，0为默认)</P>
<p>　　Publish_choice
(表示选择以上哪几种组合,int,2^0=1表示采用第一种控制，2^2表示采用第二种控
制...)</P>
<p>　<strong>　设计思路：</STRONG></P>
<p>
　　1，要满足以上四个要求并能够让以上要求任意组合，可以选4个独立的表来存储不同的要求，也可以
用4个字段来存储以上四个要求;选择4个不同的表来控制，表中的数据满足数据原子性的要求，但如
果这样，发布一条内容需要连接4个表来查询，查询效率低，所以我选择采取4个拼凑字段来进行控制
;这样的话，我们可以将数据字段和控制字段整合到一条记录中，查询数据的同时可以查询出控制字
段，尽管这样需要在程序中分割字符串;
所以我采用(Publish_time Publish_day Publish_date
choice)4个字段来表示,另外再采用Publish_choice表示选取哪种控制。</P>
<p>
　　2，Publish_time采用时间型和|构成的字符串，如2002-1-1
10:20|2002-1-1 12:20|2007-2-2 08:20|2007-2-2
12:20.程序读取的时候先把该字符串用|分开到一个数组a,其中a[0]表示开始时间，
a[1]表示a[0]的结束时间，其中a[2]表示开始时间，a[3]表示a[2]的结束时间......;这样便可以满
足一条内容在多个时间串内有效。</P>
<p>　　3，Publish_day
为了提高效率，采用二进制位的方法控制，即2^0=1表示周一，2^1=2表示周二，
2^2=4表示周三，......2^7=128表示星期天。如果周一周二周三同时有效，则
Publish_day=2^0+2^1+2^2=7,这样的设计比拼凑字符串效率要高，程序设计更简单。</P>
<p>　　4，Publish_date
如果像Publish_day一样采用二进制位的方法控制，将达到2^31，数据太大，有些
数据类型可能不支持，所以采用|分开的字符串，‘0’为默认,如2|5|15|31)，程序读取采用|分开到
一个数组，再操作数组。</P>
<p>　　5，Publish_double
选择奇偶日情况只有两种，非奇即偶，用1表示奇数，2表示偶数</P>
<p>
　　6，为了加强控制，另外再设一个字段Publish_choice表示采取上叙哪些控制的组合;原理如3，都采
用二进制位表示。</P>
<p>
　　7，为了防止程序读取null的时候出错，对每个字段都采用了默认值。</P>
<p>&nbsp;</P>
<p>&nbsp;</P>]]></description>
            <author>难得糊涂</author>
            <category>Design 日记</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a01009hjh.html#comment</comments>
            <pubDate>Tue, 10 Jun 2008 06:32:26 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a01009hjh.html</guid>
        </item>
        <item>
            <title>IE6、IE7和FF之CSS兼容和区分的总结</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a01009eyn.html</link>
            <description><![CDATA[区别IE6与FF：<br/>
background:orange;*background:blue;<br/>
<br/>
区别IE6与IE7：<br/>
background:green !important;background:blue;<br/>
<br/>
区别IE7与FF：<br/>
background:orange; *background:green;<br/>
<br/>
区别FF，IE7，IE6：<br/>
background:orange;*background:green
!important;*background:blue;<br/>
<br/>
注：IE都能识别*;标准浏览器(如FF)不能识别*；<br/>
<br/>
IE6能识别*，但不能识别 !important,<br/>
IE7能识别*，也能识别!important;<br/>
FF不能识别*，但能识别!important;<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
------------------------------------------------------<br/>
另外再补充一个，下划线"_",<br/>
IE6支持下划线，IE7和firefox均不支持下划线。<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
于是大家还可以这样来区分IE6，IE7，firefox<br/>
: background:orange;*background:green;_background:blue;<br/>
<br/>
注：不管是什么方法，书写的顺序都是firefox的写在前面，IE7的写在中间，IE6的写在最后面。<br/>

<br/>
<br/>
<br/>
一、CSS HACK<br/>
以下两种方法几乎能解决现今所有HACK.<br/>
<br/>
1, !important<br/>
<br/>
随着IE7对!important的支持, !important
方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.)<br/>

&lt;stylegt;<br/>
#wrapper<br/>
{<br/>
width: 100px!important;<br/>
width: 80px;<br/>
}<br/>
&lt;/stylegt;<br/>
<br/>
<br/>
2, IE6/IE77对FireFox<br/>
<br/>
*+html 与 *html 是IE特有的标签, firefox
暂不支持.而*+html 又为 IE7特有标签.<br/>
&lt;style&gt;<br/>
#wrapper<br/>
{<br/>
#wrapper { width: 120px; }<br/>
*html #wrapper { width: 80px;}<br/>
*+html #wrapper { width: 60px;}<br/>
}<br/>
&lt;/style&gt;<br/>
<br/>
<br/>
注意:<br/>
*+html 对IE7的HACK 必须保证HTML顶部有如下声明：<br/>
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"　"http://www.w3.org/TR/html4/loose.dtd"&gt;<br/>

<br/>
二、万能 float 闭合(非常重要!)<br/>
<br/>
关于 clear float 的原理可参见 [How To Clear Floats Without
Structural Markup]<br/>
将以下代码加入Global CSS 中,给需要闭合的div加上
&gt;&lt;style&gt;<br/>
<br/>
<br/>
.clearfix:after<br/>
{<br/>
content:".";<br/>
display:block;<br/>
height:0;<br/>
clear:both;<br/>
visibility:hidden;<br/>
}<br/>
.clearfix<br/>
{<br/>
display:inline-block;<br/>
}<br/>
<br/>
.clearfix {display:block;}<br/>
<br/>
<br/>
&lt;/style&gt;<br/>
<br/>
关于闭合浮动元素（clearing
float）的方法现在已经很多了，个人认为简单实用的方法就是使用:after伪类动态的嵌入一个用于清除浮动的元素，可惜代码量太大了，看上去不够简洁。<br/>

<br/>
现在看到有个方法超级简单。介绍一下这个方法。原文在：<a STYLE="TOP: 1px" HREF="http://annevankesteren.nl/2005/03/clearing-floats" TARGET="_blank">http://annevankesteren.nl/2005/03/clearing-floats</A><br/>

<br/>
这
一方面的原理是，外围元素之所以不能很好的延伸，问题出在了overflow上，因为overflow不可见（见W3C的解释）。现在只要将给外围元素添
加一个“overflow:auto”，就可以解决问题，结果是除了IE，真的可以解决。下来就要解决ID的问题了，再加上“_height:1%”，这
个问题就完全解决了。<br/>
<br/>
下面的例子作为比较<br/>
1、没有闭合浮动元素；2、非IE下闭合浮动元素；3、完全闭合元素。相关代码如下：<br/>

<br/>
XHTML代码：<br/>
<br/>
Example Source Code [ww<br/>
w.52css.com]&lt;div id="wrap"&gt;<br/>
&lt;div class="column_left"&gt;<br/>
&lt;h1&gt;Float
left&lt;/h1&gt;<br/>
&lt;/div&gt;<br/>
&lt;div class="column_right"&gt;<br/>
&lt;h1&gt;Float
right&lt;/h1&gt;<br/>
&lt;/div&gt;<br/>
&lt;/div&gt;<br/>
<br/>
CSS样式：<br/>
<br/>
Example Source Code [ww<br/>
w.52css.com]#wrap{ border:6px #ccc solid; overflow:auto;
_height:1%;}<br/>
.column_left{ float:left; width:20%; padding:10px;}<br/>
.column_right{ float:right; width:75%; padding:10px;
border-left:6px #eee solid;}<br/>
<br/>
<br/>
三、其他兼容技巧(再次啰嗦)<br/>
<br/>
1, FF下给 div 设置 padding 后会导致 width 和 height
增加, 但IE不会.(可用!important解决)<br/>
2, 居中问题.<br/>
1).垂直居中.将 line-height 设置为 当前 div
相同的高度, 再通过 vertical-align: middle.(
注意内容不要换行.)<br/>
2).水平居中. margin: 0 auto;(当然不是万能)<br/>
3, 若需给 a 标签内内容加上 样式, 需要设置 display:
block;(常见于导航标签)<br/>
4, FF 和 IE 对 BOX 理解的差异导致相差 2px
的还有设为 float的div在ie下 margin加倍等问题.<br/>
5, ul 标签在 FF 下面默认有 list-style 和 padding .
最好事先声明, 以避免不必要的麻烦.
(常见于导航标签和内容列表)<br/>
6, 作为外部 wrapper 的 div 不要定死高度, 最好还加上
overflow: hidden.以达到高度自适应.<br/>
7, 关于手形光标. cursor: pointer. 而hand 只适用于
IE.<br/>
<br/>
1 针对firefox ie6 ie7的css样式<br/>
现在大部分都是用!important来hack，对于ie6和firefox测试可以正常显示，<br/>

但是ie7对!important可以正确解释，会导致页面没按要求显示！找到一个针<br/>

对IE7不错的hack方式就是使用“*+html”，现在用IE7浏览一下，应该没有问题了。<br/>

现在写一个CSS可以这样：<br/>
<br/>
#1 { color: #333; }<br/>
* html #1 { color: #666; }<br/>
*+html #1 { color: #999; }<br/>
那么在firefox下字体颜色显示为#333，IE6下字体颜色显示为#666，IE7下字体颜色显示为#999。<br/>

<br/>
2 css布局中的居中问题<br/>
主要的样式定义如下：<br/>
<br/>
body {TEXT-ALIGN: center;}<br/>
#center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; }<br/>
说明：<br/>
首先在父级元素定义TEXT-ALIGN:
center;这个的意思就是在父级元素内的内容居中；对于IE这样设定就已经可以了。<br/>

但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT:
auto;MARGIN-LEFT: auto; ”<br/>
需要说明的是，如果你想用这个方法使整个页面要居中，建议不要套在一个DIV里，你可以依次拆出多个div，<br/>

只要在每个拆出的div里定义MARGIN-RIGHT: auto;MARGIN-LEFT:
auto; 就可以了。<br/>
<br/>
3 盒模型不同解释.<br/>
<br/>
#box{ width:600px; //for ie6.0- w\idth:500px; //for ff+ie6.0}<br/>
#box{ width:600px!important //for ff width:600px; //for ff+ie6.0
width :500px; //for ie6.0-}<br/>
<br/>
4 浮动ie产生的双倍距离<br/>
<br/>
#box{ float:left; width:100px; margin:0 0 0 100px;
//这种情况之下IE会产生200px的距离 display:inline;
//使浮动忽略}<br/>
这里细说一下block,inline两个元素,Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,...不可控制(内嵌元素);<br/>

<br/>
#box{ display:block; //可以为内嵌元素模拟为块元素
display:inline; //实现同一行排列的的效果
diplay:table;<br/>
<br/>
5 IE与宽度和高度的问题<br/>
<br/>
IE不认得min-这个定义，但实际上它把正常的width和height当作有min的情况来使。这样问题就大了，如果只用宽度和高度，<br/>

正常的浏览器里这两个值就不会变，如果只用min-width和min-height的话，IE下面根本等于没有设置宽度和高度。<br/>

比如要设置背景图片，这个宽度是比较重要的。要解决这个问题，可以这样：<br/>

#box{ width: 80px; height: 35px;}html&gt;body #box{
width: auto; height: auto; min-width: 80px; min-height:
35px;}<br/>
<br/>
6 页面的最小宽度<br/>
<br/>
min-width是个非常方便的CSS命令，它可以指定元素最小也不能小于某个宽度，这样就能保证排版一直正确。但IE不认得这个，<br/>

而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用，可以把一个&lt;div&gt;
放到 &lt;body&gt;
标签下，然后为div指定一个类：<br/>
然后CSS这样设计：<br/>
#container{ min-width: 600px;
width:expression(document.body.clientWidth &lt; 600?
"600px": "auto" );}<br/>
第一个min-width是正常的；但第2行的width使用了Javascript，这只有IE才认得，这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。<br/>

<br/>
7 清除浮动<br/>
<br/>
.hackbox{ display:table;
//将对象作为块元素级的表格显示}或者.hackbox{
clear:both;}<br/>
或者加入:after（伪对象）,设置在对象后发生的内容，通常和content配合使用，IE不支持此伪对象，非Ie
浏览器支持，<br/>
所以并不影响到IE/WIN浏览器。这种的最麻烦的......#box:after{
content: "."; display: block; height: 0; clear: both; visibility:
hidden;}<br/>
<br/>
8 DIV浮动IE文本产生3象素的bug<br/>
<br/>
左边对象浮动，右边采用外补丁的左边距来定位，右边对象内的文本会离左边有3px的间距.<br/>

<br/>
#box{ float:left; width:800px;}#left{ float:left;
width:50%;}#right{ width:50%;}*html #left{ margin-right:-3px;
//这句是关键}<br/>
HTML代码&lt;div id="box"&gt;
&lt;div
id="left"&gt;&lt;/div&gt;
&lt;div
id="right"&gt;&lt;/div&gt;&lt;/div&gt;<br/>

<br/>
9
属性选择器(这个不能算是兼容,是隐藏css的一个bug)<br/>

<br/>
p[id]{}div[id]{}<br/>
这个对于IE6.0和IE6.0以下的版本都隐藏,FF和OPera作用<br/>

属性选择器和子选择器还是有区别的,子选择器的范围从形式来说缩小了,属性选择器的范围比较大,如p[id]中,所有p标签中有id的都是同样式的.<br/>

<br/>
10 IE捉迷藏的问题<br/>
<br/>
当div应用复杂的时候每个栏中又有一些链接，DIV等这个时候容易发生捉迷藏的问题。<br/>

有些内容显示不出来，当鼠标选择这个区域是发现内容确实在页面。<br/>

解决办法：对#layout使用line-height属性
或者给#layout使用固定高和宽。页面结构尽量简单。<br/>

<br/>
11 高度不适应<br/>
<br/>
高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节，特别是当内层对象使用<br/>

margin 或paddign 时。<br/>
例：<br/>
&lt;div id="box"&gt;<br/>
p对象中的内容<br/>
&lt;/div&gt;<br/>
CSS：#box {background-color<img ALT="" SRC="http://share.zcool.com.cn/images/smilies/default/em03.gif" BORDER="0" SMILIEID="32" />eee; }<br/>
#box p {margin-top: 20px;margin-bottom: 20px; text-align:center;
}<br/>
解决方法：在P对象上下各加2个空的div对象CSS代码：.1{height:0px;overflow:hidden;}或者为DIV加上border属性。]]></description>
            <author>难得糊涂</author>
            <category>设计知识</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a01009eyn.html#comment</comments>
            <pubDate>Mon, 02 Jun 2008 19:22:47 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a01009eyn.html</guid>
        </item>
        <item>
            <title>GD+APACHE+PHP+MYSQL 在RH下的实现</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a010099dz.html</link>
            <description><![CDATA[<p><font STYLE="FONT-SIZE: 12px">redhat linux 9下<br/>
apache2.2.0+php5.1.2+mysql5.0.21+gd配置，安装GD库(让PHP支持GIF,PNG,JPEG)<br/>

其中安装中见到的问题见文章最后！<br/>
一：准备软件包，存放/home/xiutuo/software/目录下。<br/>

主要软件包，<br/>
（这里没有选择mysql-standard-5.0.20-linux-i686.tar.gz，<br/>

呆会再说明原因。）<br/>
httpd-2.2.0.tar.gz<br/>
mysql-max-5.0.21-linux-i686-glibc23.tar.gz<br/>
php-5.1.2.tar.gz<br/>
安装php所需的软件包<br/>
（其中libxml2是安装php5必须的，为什么还需要perl呆会说明原因。）<br/>

libxml2-2.6.19.tar.gz<br/>
libxslt-1.1.15.tar.gz<br/>
ActivePerl-5.8.8.817-i686-linux-2.2.17-gcc-257965.rpm<br/>
curl-7.15.0.tar.gz<br/>
GD库所需要软件包<br/>
（有人说PHP源码包里自带了GD2.0.28和zlib，<br/>
只要安装GD的三个支持包：jpg,png和freetype，但是我们还是下载）<br/>

gd-2.0.33.tar.gz<br/>
freetype-2.1.10.tar.gz<br/>
jpegsrc.v6b.tar.gz<br/>
libpng-1.2.8.tar.gz<br/>
zlib-1.2.3.tar.gz<br/>
相关下载<br/>
（根据自己的linux版本下载相应的包，<br/>
查看操作系统版本：<br/>
# uname -r ）<br/></FONT><a TITLE="http://ftp.gnome.org/pub/GNOME/sour...2-2.6.19.tar.gz" HREF="http://ftp.gnome.org/pub/GNOME/sour...2-2.6.19.tar.gz"><font STYLE="FONT-SIZE: 12px">http://ftp.gnome.org/pub/GNOME/sour...2-2.6.19.tar.gz</FONT></A><br/>

<a TITLE="http://ftp.gnome.org/pub/GNOME/sour...t-1.1.15.tar.gz" HREF="http://ftp.gnome.org/pub/GNOME/sour...t-1.1.15.tar.gz"><font STYLE="FONT-SIZE: 12px">
http://ftp.gnome.org/pub/GNOME/sour...t-1.1.15.tar.gz</FONT></A><br/>

<a TITLE="http://downloads.activestate.com/Ac...-i686-linux.rpm" HREF="http://downloads.activestate.com/Ac...-i686-linux.rpm"><font STYLE="FONT-SIZE: 12px">
http://downloads.activestate.com/Ac...-i686-linux.rpm</FONT></A><br/>

<a TITLE="http://curl.haxx.se/download/curl-7.15.0.tar.gz" HREF="http://curl.haxx.se/download/curl-7.15.0.tar.gz"><font STYLE="FONT-SIZE: 12px">http://curl.haxx.se/download/curl-7.15.0.tar.gz</FONT></A><br/>

<a TITLE="http://www.boutell.com/gd/http/gd-2.0.33.tar.gz" HREF="http://www.boutell.com/gd/http/gd-2.0.33.tar.gz"><font STYLE="FONT-SIZE: 12px">http://www.boutell.com/gd/http/gd-2.0.33.tar.gz</FONT></A><br/>

<a TITLE="http://keihanna.dl.sourceforge.net/...e-2.1.10.tar.gz" HREF="http://keihanna.dl.sourceforge.net/...e-2.1.10.tar.gz"><font STYLE="FONT-SIZE: 12px">
http://keihanna.dl.sourceforge.net/...e-2.1.10.tar.gz</FONT></A><br/>

<a TITLE="http://www.ijg.org/files/jpegsrc.v6b.tar.gz" HREF="http://www.ijg.org/files/jpegsrc.v6b.tar.gz"><font STYLE="FONT-SIZE: 12px">http://www.ijg.org/files/jpegsrc.v6b.tar.gz</FONT></A><br/>

<a TITLE="http://nchc.dl.sourceforge.net/sour...ng-1.2.8.tar.gz" HREF="http://nchc.dl.sourceforge.net/sour...ng-1.2.8.tar.gz"><font STYLE="FONT-SIZE: 12px">
http://nchc.dl.sourceforge.net/sour...ng-1.2.8.tar.gz</FONT></A><br/>

<a TITLE="http://www.zlib.net/zlib-1.2.3.tar.gz" HREF="http://www.zlib.net/zlib-1.2.3.tar.gz"><font STYLE="FONT-SIZE: 12px">http://www.zlib.net/zlib-1.2.3.tar.gz</FONT></A><br/>

<font STYLE="FONT-SIZE: 12px">把以上所有软件包下载到：/home/xiutuo/software/目录下。<br/>

二：安装apache2。<br/>
# cd /home/xiutuo/software/<br/>
进入目录/home/xiutuo/software/<br/>
# tar -zvxf httpd-2.2.0.tar.gz<br/>
解压httpd-2.2.0.tar.gz<br/>
# cd httpd-2.2.0<br/>
进入httpd-2.2.0目录<br/>
# mkdir -p /usr/local/apache2<br/>
生成/usr/local/apache2目录<br/>
# ./configure --prefix=/usr/local/apache<br/>
或者<br/>
# ./configure --prefix=/usr/local/apache --enable-modules=so
--enable-rewrite<br/>
# make; make install<br/>
安装apache<br/>
# vi /usr/local/apache/conf/httpd.conf<br/>
#ServerName</FONT> <a TITLE="www.example.com:80" HREF="http://www.example.com/"><font STYLE="FONT-SIZE: 12px">www.example.com:80</FONT></A> <font STYLE="FONT-SIZE: 12px">在其下增加<br/>
ServerName</FONT> <a TITLE="www.xiutuo.com:80" HREF="http://www.xiutuo.com/"><font STYLE="FONT-SIZE: 12px">www.xiutuo.com:80</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">保存退出，现在就这么简单配置apache。<br/>

# /usr/local/apache/bin/apachectl -k start<br/>
启动apahce，<br/>
用浏览器查看http://www.xiutuo.com,得到it
works，说明apache已经配置成功了。<br/>
# /usr/local/apache/bin/apachectl -k stop<br/>
停止apache。<br/>
三：安装mysql<br/>
# cd /home/xiutuo/software/<br/>
# tar -zvxf mysql-max-5.0.21-linux-i686-glibc23.tar.gz<br/>
# mkdir -p /usr/local/mysql （省略也可）<br/>
# cp -r mysql-max-5.0.21-linux-i686-glibc23.tar.gz
/usr/local/mysql<br/>
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf<br/>
添加mysql用户及用户组<br/>
# groupadd mysql<br/>
# useradd -g mysql mysql<br/>
修改mysql目录权限<br/>
# chown -R root /usr/local/mysql<br/>
# chgrp -R mysql /usr/local/mysql<br/>
# chown -R mysql /usr/local/mysql/data<br/>
生成mysql系统数据库<br/>
# /usr/local/mysql/scripts/mysql_install_db
--user=mysql&amp;<br/>
启动mysql服务<br/>
# /usr/local/mysql/bin/mysqld_safe
--user=mysql&amp;<br/>
如出现 Starting mysqld daemon with databases from
/usr/local/mysql/data<br/>
代表正常启动mysql服务了, 按Ctrl + C 跳出<br/>
修改 mysql 的 root 密码<br/>
# /usr/local/mysql/bin/mysqladmin -u root -p password
"123456"<br/>
四：安装GD库(让PHP支持GIF,PNG,JPEG)<br/>
a.安装 jpeg6<br/>
建立目录：<br/>
# mkdir -p /usr/local/jpeg6<br/>
# mkdir -p /usr/local/jpeg6/bin<br/>
# mkdir -p /usr/local/jpeg6/lib<br/>
# mkdir -p /usr/local/jpeg6/include<br/>
# mkdir -p /usr/local/jpeg6/man<br/>
# mkdir -p /usr/local/jpeg6/man1<br/>
# mkdir -p /usr/local/jpeg6/man/man1<br/>
# cd /home/xiutuo/software/<br/>
# tar -zvxf jpegsrc.v6b.tar.gz<br/>
# cd jpeg-6b<br/>
# ./configure --prefix=/usr/local/jpeg6/ --enable-shared
--enable-static<br/>
# make; make install<br/>
b.安装libpng<br/>
# cd /home/xiutuo/software/<br/>
# tar -zvxf libpng-1.2.8.tar.gz<br/>
# cd libpng-1.2.8<br/>
# cp scripts/makefile.std makefile<br/>
# make; make install<br/>
c.安装 freetype<br/>
# cd /home/xiutuo/software/<br/>
# tar -zvxf freetype-2.1.10.tar.gz<br/>
# cd freetype-2.1.10<br/>
# mkdir -p /usr/local/freetype<br/>
# ./configure --prefix=/usr/local/freetype<br/>
# make;make install<br/>
d.:安装zlib<br/>
# cd /home/xiutuo/software/<br/>
#tar -zxvf zlib-1.2.3.tar.gz<br/>
#cd zlib.1.2.3<br/>
# ./configure<br/>
# make;make install<br/>
e.安装GD库<br/>
# cd /home/xiutuo/software/<br/>
# tar -zvxf gd-2.0.33.tar.gz<br/>
# mkdir -p /usr/local/gd2<br/>
# cd gd-2.0.33<br/>
# ./configure --prefix=/usr/local/gd2
--with-jpeg=/usr/local/jpeg6/<br/>
--with-png=/usr/local/lib/<br/>
--with-zlib=/usr/local/lib/<br/>
--with-freetype=/usr/local/freetype/<br/>
# make; make install<br/>
e.安装Curl库<br/>
# cd /home/xiutuo/software/<br/>
# tar -zxf curl-7.15.0.tar.gz<br/>
# mkdir -p /usr/local/curl<br/>
# ./configure --prefix=/usr/local/curl<br/>
# make; make install<br/>
五：安装php5，php5必须有libxml2支持！<br/>
a.安装libxml2<br/>
# cd /home/xiutuo/software/<br/>
# tar -zxf libxml2-2.6.19.tar.gz<br/>
# cd libxml2-2.6.19<br/>
# mkdir -p /usr/local/libxml2<br/>
# ./configure --prefix=/usr/local/libxml2<br/>
# make; make install<br/>
b.安装 libxslt（可选安装，你可以不安装）<br/>
# cd /home/xiutuo/software/<br/>
# tar -zxf libxslt-1.1.15.tar.gz<br/>
# mkdir -p /usr/local/libxslt<br/>
# cd libxslt-1.1.15<br/>
# ./configure --prefix=/usr/local/libxslt
--with-libxml-prefix=/usr/local/libxml2<br/>
# make; make install<br/>
c.安装php5<br/>
# cd /home/xiutuo/software/<br/>
# tar -zvxf php-5.1.2.tar.gz<br/>
# mkdir -p /usr/local/php<br/>
# cd php-5.05<br/>
# ./configure --prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs<br/>
--with-mysql=/usr/local/mysql/<br/>
--with-curl=/usr/local/curl --enable-ftp<br/>
--with-libxml-dir=/usr/local/libxml2<br/>
--with-expat-dir=/usr/lib --enable-soap<br/>
--with-xsl=/usr/local/libxslt --enable-xslt<br/>
--with-gd=/usr/local/gd2/<br/>
--with-jpeg-dir=/usr/local/jpeg6/<br/>
--with-zlib-dir=/usr/local/lib/<br/>
--with-png=/usr/local/lib/<br/>
--with-freetype-dir=/usr/local/freetype/<br/>
# make<br/>
# make install<br/>
# cp php.ini-dist /usr/local/php/lib/php.ini
（别忘记了呵呵）<br/>
其中./configure 后的<br/>
--prefix=/usr/local/php<br/>
--with-apxs2=/usr/local/apache/bin/apxs<br/>
--with-mysql=/usr/local/mysql/<br/>
--with-libxml-dir=/usr/local/libxml2<br/>
是必要的选项<br/>
--with-gd=/usr/local/gd2/<br/>
--with-jpeg-dir=/usr/local/jpeg6/<br/>
--with-png=/usr/local/lib<br/>
--with-zlib-dir=/usr/lib<br/>
--with-freetype-dir=/usr/local/freetype<br/>
这是让PHP支持GD库的配置选项<br/>
--with-curl=/usr/local/curl 支持CURL库<br/>
--enable-ftp 打开FTP库函数支持<br/>
--enable-soap --with-xsl=/usr/local/libxslt --enable-xslt<br/>
让PHP支持SOAP, 上面这些一般用得少, 可以去掉<br/>
六：重新配置apache2让他支持php。<br/>
配置 httpd.conf 让apache支持PHP<br/>
# vi /usr/local/apache/conf/httpd.conf<br/>
找到 AddType application/x-gzip .gz .tgz
在其下添加如下内容<br/>
AddType application/x-httpd-php .php<br/>
AddType application/x-httpd-php-source .phps<br/>
重启apache<br/>
# /usr/local/apache/bin/apachectl restart<br/>
在htdocs目录里建一内容为</FONT></P>
<p><font STYLE="FONT-SIZE: 12px">进行php.ini文件的配置工作<br/>
查找safe_mode=Off,更改为safe_mode=On<br/>
1）查找max_execution_time = 30，更改为max_execution_time =
600<br/>
（2）查找max_input_time = 60，更改为max_input_time =
600<br/>
（3）查找memory_limit = 8M ，更改为memory_limit = 20M<br/>
（4）查找display_errors = On，更改为display_errors =
Off<br/>
（5）查找register_globals = Off，更改为register_globals =
On<br/>
（6）查找post_max</FONT></P>]]></description>
            <author>难得糊涂</author>
            <category>php专栏</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a010099dz.html#comment</comments>
            <pubDate>Mon, 19 May 2008 02:29:35 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a010099dz.html</guid>
        </item>
        <item>
            <title>Apache与Tomcat的整合 ON RHEL5</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a01009906.html</link>
            <description><![CDATA[<div ID="art" WIDTH="100%" STYLE="margin: 15px;">
<div>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span STYLE="font-family: 宋体;">系统环境：</SPAN><span LANG="EN-US"><font FACE="Times New Roman">Red Hat Enterprise Linux
Server release 5 (kernel 2.6.18-8.el5xen)</FONT></SPAN></FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span STYLE="font-family: 宋体;">软件环境：</SPAN>
</FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">httpd-2.2.3-6.el5.i386.rpm</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">apache-tomcat-6.0.14.tar.gz</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">jdk-6u2-linux-i586.bin</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">mod_jk-1.2.25-httpd-2.2.4.so</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span STYLE="font-family: 宋体;">——参考下载地址：</SPAN>
</FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">http://apache.cs.utah.edu/tomcat/tomcat-6/v6.0.14/bin/apache-tomcat-6.0.14.tar.gz</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">http://www.java.com/zh_CN/</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.25/i386/mod_jk-1.2.25-httpd-2.2.4.so</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">&nbsp;</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span STYLE="font-family: 宋体;">目标功能：</SPAN>
</FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span STYLE="font-family: 宋体;">将</SPAN><span LANG="EN-US"><font FACE="Times New Roman">tomcat</FONT></SPAN><span STYLE="font-family: 宋体;">整合到</SPAN><span LANG="EN-US"><font FACE="Times New Roman">apache</FONT></SPAN><span STYLE="font-family: 宋体;">服务器中，当通过</SPAN><span LANG="EN-US"><font FACE="Times New Roman">apache</FONT></SPAN><span STYLE="font-family: 宋体;">访问</SPAN><span LANG="EN-US"><font FACE="Times New Roman">.jsp</FONT></SPAN><span STYLE="font-family: 宋体;">文件时自动调用</SPAN><span LANG="EN-US"><font FACE="Times New Roman">tomcat</FONT></SPAN><span STYLE="font-family: 宋体;">解释执行。</SPAN> </FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">##########################################################################</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span STYLE="font-family: 宋体;">注：为简单起见，</SPAN><span LANG="EN-US"><font FACE="Times New Roman">httpd</FONT></SPAN><span STYLE="font-family: 宋体;">使用</SPAN><span LANG="EN-US"><font FACE="Times New Roman">RHEL5</FONT></SPAN><span STYLE="font-family: 宋体;">系统自带的软件包，并基于默认配置。关于</SPAN><span LANG="EN-US"><font FACE="Times New Roman">LAMP</FONT></SPAN><span STYLE="font-family: 宋体;">的</SPAN></FONT><font SIZE="3"><span STYLE="font-family: 宋体;">整合安装请参考其它资料。</SPAN>
</FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">&nbsp;</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span STYLE="font-family: 宋体;">一、安装配置</SPAN><span LANG="EN-US"><font FACE="Times New Roman">jdk</FONT></SPAN><span STYLE="font-family: 宋体;">及</SPAN><span LANG="EN-US"><font FACE="Times New Roman">tomcat</FONT></SPAN></FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">&nbsp;</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman">1</FONT></SPAN><span STYLE="font-family: 宋体;">、安装</SPAN><span LANG="EN-US"><font FACE="Times New Roman">jdk</FONT></SPAN><span STYLE="font-family: 宋体;">及</SPAN><span LANG="EN-US"><font FACE="Times New Roman">tomcat</FONT></SPAN></FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">&nbsp;</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># tar zxvf
apache-tomcat-6.0.14.tar.gz -C /usr/local/</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># mv
jdk-6u2-linux-i586.bin /usr/local/</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># cd
/usr/local</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># chmod a+x
jdk-6u2-linux-i586.bin</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">#
./jdk-6u2-linux-i586.bin</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;">
&nbsp;</P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman">2</FONT></SPAN><span STYLE="font-family: 宋体;">、配置环境变量</SPAN> </FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">&nbsp;</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># ln -sf
/usr/local/apache-tomcat-6.0.14 /usr/local/tomcat</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># ln -sf
/usr/local/jdk1.6.0_02 /usr/local/jdk6</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># ln -sf
/usr/local/jdk6/bin/java /usr/bin/</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># ln -sf
/usr/local/tomcat/bin/startup.sh
/usr/bin/tomcat-up</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># ln -sf
/usr/local/tomcat/bin/shutdown.sh
/usr/bin/tomcat-down</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman"># vi
/usr/local/tomcat/conf/tomcat-users.xml<span STYLE="">&nbsp;&nbsp;&nbsp;</SPAN>
//</FONT></SPAN><span STYLE="font-family: 宋体;">添加一个名为“</SPAN><span LANG="EN-US"><font FACE="Times New Roman">zhangsan</FONT></SPAN><span STYLE="font-family: 宋体;">”的管理员用户</SPAN></FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">&lt;user
username="zhangsan" password="123456"
roles="manager,admin"/&gt;</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># vi
/etc/profile</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">JAVA_HOME=/usr/local/jdk6</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">CATALINA_HOME=/usr/local/tomcat</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/servlet-api.jar</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">PATH=$JAVA_HOME/bin:$PATH</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">export JAVA_HOME
CATALINA_HOME CLASSPATH PATH</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman">#
logout<span STYLE="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>
//</FONT></SPAN><span STYLE="font-family: 宋体;">注销后重新登陆，以便环境变量生效</SPAN></FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">&nbsp;</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman">3</FONT></SPAN><span STYLE="font-family: 宋体;">、测试</SPAN><span LANG="EN-US"><font FACE="Times New Roman">tomcat</FONT></SPAN><span STYLE="font-family: 宋体;">服务</SPAN> </FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman">#
/usr/bin/tomcat-up //</FONT></SPAN><span STYLE="font-family: 宋体;">或者直接执行</SPAN><span LANG="EN-US"><font FACE="Times New Roman">/usr/local/tomcat/bin/startup.sh</FONT></SPAN></FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman"># netstat -anp
| grep :8080 //</FONT></SPAN><span STYLE="font-family: 宋体;">检查</SPAN><span LANG="EN-US"><font FACE="Times New Roman">tomcat</FONT></SPAN><span STYLE="font-family: 宋体;">是否启动</SPAN> </FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span STYLE="font-family: 宋体;">在浏览器里访问</SPAN><span LANG="EN-US"><font FACE="Times New Roman">http://localhost:8080/</FONT></SPAN><span STYLE="font-family: 宋体;">，应能看到</SPAN><span LANG="EN-US"><font FACE="Times New Roman">tomcat</FONT></SPAN><span STYLE="font-family: 宋体;">的网页界面，并可以使用</SPAN></FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span STYLE="font-family: 宋体;">用户“</SPAN><span LANG="EN-US"><font FACE="Times New Roman">zhangsan</FONT></SPAN><span STYLE="font-family: 宋体;">”登陆管理</SPAN> </FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman"># tomcat-down
//</FONT></SPAN><span STYLE="font-family: 宋体;">使用关闭脚本可以停止</SPAN><span LANG="EN-US"><font FACE="Times New Roman">tomcat</FONT></SPAN><span STYLE="font-family: 宋体;">服务</SPAN>
</FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span STYLE="font-family: 宋体;">二、连接</SPAN><span LANG="EN-US"><font FACE="Times New Roman">tomcat</FONT></SPAN><span STYLE="font-family: 宋体;">到</SPAN><span LANG="EN-US"><font FACE="Times New Roman">apache</FONT></SPAN></FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">&nbsp;</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman">1</FONT></SPAN><span STYLE="font-family: 宋体;">、安装</SPAN><span LANG="EN-US"><font FACE="Times New Roman">mod_jk</FONT></SPAN><span STYLE="font-family: 宋体;">模块</SPAN> </FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman"># cp
mod_jk-1.2.25-httpd-2.2.4.so /etc/httpd/modules/
//</FONT></SPAN><span STYLE="font-family: 宋体;">将模块文件放置到</SPAN></FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman">apache</FONT></SPAN><span STYLE="font-family: 宋体;">的模块目录</SPAN> </FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman">2</FONT></SPAN><span STYLE="font-family: 宋体;">、修改</SPAN><span LANG="EN-US"><font FACE="Times New Roman">apache</FONT></SPAN><span STYLE="font-family: 宋体;">配置文件</SPAN> </FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># cd
/etc/httpd/conf/</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># cp -pf httpd.conf
httpd.conf.bak</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># vi
httpd.conf</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">LoadModule jk_module
modules/mod_jk-1.2.25-httpd-2.2.4.so</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">JkWorkersFile
"/usr/local/tomcat/conf/workers.properties"</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">JkLogFile
"/usr/local/tomcat/logs/mod_jk2.log"</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">JkLogLevel
info</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">JkMount /*/servlet/*
ajp13</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">JkMount /*.jsp
ajp13</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">JkMount /*.do
ajp13</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">AddType
application/x-jsp .jsp</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman">3</FONT></SPAN><span STYLE="font-family: 宋体;">、添加</SPAN><span LANG="EN-US"><font FACE="Times New Roman">tomcat</FONT></SPAN><span STYLE="font-family: 宋体;">配置文件</SPAN> </FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># vi
/usr/local/tomcat/conf/workers.properties</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">workers.tomcat_home=/usr/local/tomcat</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">workers.java_home=/usr/local/jdk6</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">ps=\</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">worker.list=ajp13</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">worker.ajp13.port=8009</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">worker.ajp13.host=localhost</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">worker.ajp13.type=ajp13</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">worker.ajp13.lbfactor=1</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman">4</FONT></SPAN><span STYLE="font-family: 宋体;">、确认</SPAN><span LANG="EN-US"><font FACE="Times New Roman">apache</FONT></SPAN><span STYLE="font-family: 宋体;">、</SPAN><span LANG="EN-US"><font FACE="Times New Roman">tomcat</FONT></SPAN><span STYLE="font-family: 宋体;">启动</SPAN> </FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman">#
/usr/sbin/apachectl -t //</FONT></SPAN><span STYLE="font-family: 宋体;">对</SPAN><span LANG="EN-US"><font FACE="Times New Roman">httpd.conf</FONT></SPAN><span STYLE="font-family: 宋体;">配置文件作语法检查</SPAN>
</FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3"># service httpd
restart</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">#
/usr/bin/tomcat-up</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman">5</FONT></SPAN><span STYLE="font-family: 宋体;">、测试访问</SPAN><span LANG="EN-US"><font FACE="Times New Roman">.jsp</FONT></SPAN><span STYLE="font-family: 宋体;">网页</SPAN> </FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span LANG="EN-US"><font FACE="Times New Roman"># vi
/var/www/html/showtime.jsp<span STYLE="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>
//</FONT></SPAN><span STYLE="font-family: 宋体;">创建简单的</SPAN><span LANG="EN-US"><font FACE="Times New Roman">jsp</FONT></SPAN><span STYLE="font-family: 宋体;">测试页面</SPAN></FONT></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">&lt;%@page language="java"
import="java.util.*"%&gt;</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><span LANG="EN-US"><font FACE="Times New Roman" SIZE="3">Now Time is :
&lt;% out.println(new Date());
%&gt;</FONT></SPAN></P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;">
&nbsp;</P>
<p CLASS="MsoNormal" STYLE="margin: 0cm 0cm 0pt;"><font SIZE="3"><span STYLE="font-family: 宋体;">在浏览器中访问</SPAN><span LANG="EN-US"><font FACE="Times New Roman">http://localhost/showtime.jsp</FONT></SPAN><span STYLE="font-family: 宋体;">，应在网页中显示系统时间。</SPAN></FONT></P>
</DIV>
</DIV>]]></description>
            <author>难得糊涂</author>
            <category>jsp专栏</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a01009906.html#comment</comments>
            <pubDate>Sun, 18 May 2008 01:14:09 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a01009906.html</guid>
        </item>
        <item>
            <title>关于php生成excel文件</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a01009839.html</link>
            <description><![CDATA[<font STYLE="FONT-SIZE: 12px">&lt;?php<br/>
header("Pragma: public");<br/>
header("Pragma: no-cache");<br/>
header("Expires: 0");<br/>
header("Cache-Control: must-revalidate, post-check=0,
pre-check=0");<br/>
header("Content-Type: application/vnd.ms-excel");<br/>
header("Content-Disposition: attachment;
filename=mydowns.xls");<br/>
<br/>
echo "PHP输出EXCEL文件\n";<br/>
for($i=0;$i&lt;10;$i++){<br/>
echo $i."\n";<br/>
}<br/>
echo "\n";<br/>
?&gt;<br/></FONT>]]></description>
            <author>难得糊涂</author>
            <category>php专栏</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a01009839.html#comment</comments>
            <pubDate>Thu, 15 May 2008 23:20:32 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a01009839.html</guid>
        </item>
        <item>
            <title>兼容问题 CSS浏览器 IE6.0,ie7.0与Firefox的CSS兼容</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a0100960r.html</link>
            <description><![CDATA[<font STYLE="FONT-SIZE: 12px"><strong><font SIZE="2">兼容问题
CSS浏览器 <font COLOR="#99CC00">IE6.0</FONT>,<font COLOR="#99CC00">ie7.0</FONT>与<font COLOR="#99CC00">Firefox</FONT>的CSS兼容性问题<br/>
<br/>
</FONT></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1.DOCTYPE 影响 CSS 处理<br/>
<br/>
　　2.FF: div 设置 margin-left, margin-right 为 auto
时已经居中, IE 不行<br/>
<br/>
　　3.FF: body 设置 text-align 时, div 需要设置 margin:
auto(主要是 margin-left,margin-right) 方可居中<br/>
<br/>
　　4.FF: 设置 padding 后, div 会增加 height 和 width, 但
IE 不会, 故需要用 !important 多设一个 height 和
width<br/>
<br/>
　　5.FF: 支持 !important, IE 则忽略, 可用 !important 为
FF 特别设置样式，值得注意的是，一定要将xxxx
!important 这句放置在另一句之上<br/>
<br/>
　　6.div 的垂直居中问题: vertical-align:middle;
将行距增加到和整个DIV一样高 line-height:200px;
然后插入文字，就垂直居中了。缺点是要控制内容不要换行<br/>

<br/>
　　7.cursor: pointer 可以同时在 IE FF
中显示游标手指状， hand 仅 IE 可以<br/>
<br/>
　&nbsp; &nbsp;8.FF:
链接加边框和背景色，需设置 display: block,
同时设置 float: left 保证不换行。参照 menubar, 给 a
和 menubar 设置高度是为了避免底边显示错位,
若不设 height, 可以在 menubar 中插入一个空格。<br/>
<br/>
　　9.在mozilla
firefox和IE中的BOX模型解释不一致导致相差2px解决方法：div{margin:30px!important;margin:28px;}<br/>

<br/>
　　</FONT><font STYLE="FONT-SIZE: 12px"><strong>注意:<br/></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
这两个margin的顺序一定<u><font COLOR="#FF0000">不能</FONT></U>写反，据阿捷的说法!important这个属性IE不能识别，但别的浏览器可以识别。所以在IE下其实解释成这样：div{maring:30px;margin:28px}<br/>

　　重复定义的话按照最后一个来执行，所以不可以只写margin:XXpx!important;<br/>

<br/>
　　10.</FONT><font STYLE="FONT-SIZE: 12px"><strong>IE5
和IE6的BOX解释不一致<br/></STRONG><br/>
　　IE5下&nbsp; div{width:300px;margin:0 10px 0
10px;}<br/>
　　div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px，而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改div{width:300px!important;width
:340px;margin:0 10px 0 10px}<br/>
　　关于这个是什么我也不太明白，只知道IE5和firefox都支持但IE6不支持，如果有人理解的话，请告诉我一声，谢了！：）<br/>

<br/>
　　11.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义ul{margin:0;padding:0;}
就能解决大部分问题<br/>
<br/>
<br/>
<strong><font COLOR="#FF9900">相关兼容问题的文章链接：</FONT></STRONG><br/>

&nbsp;&nbsp;&nbsp;</FONT><a HREF="http://www.fooool.cn/blog/index.php?load=read&amp;id=38" TARGET="_blank"><font STYLE="FONT-SIZE: 12px">CSS兼容方案
最新的一些技巧</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">&nbsp;&nbsp;&nbsp;</FONT><a HREF="http://www.fooool.cn/blog/index.php?load=read&amp;id=20" TARGET="_blank"><font STYLE="FONT-SIZE: 12px">针对于IE6、IE7、Firefox如何运用CSS
hack</FONT></A><br/>
<br/>
<font STYLE="FONT-SIZE: 12px">　　<br/>
&nbsp;&nbsp;&nbsp;&nbsp;
<strong>注意事项：</STRONG><br/>
<br/>
　　<font COLOR="#FF0000">1、float的div一定要闭合。</FONT><br/>
<br/>
　　例如：(其中floatA、floatB的属性已经设置为float:left;)<br/>

<br/>
　　这里的NOTfloatC并不希望继续平移，而是希望往下排。<br/>

　　这段代码在IE中毫无问题，问题出在FF。原因是NOTfloatC并非float标签，必须将float标签闭合。<br/>

　　在<br/>
<br/>
　　之间加上<br/>
　　这个div一定要注意声明位置，一定要放在最恰当的地方，而且必须与两个具有float属性的div同级，之间不能存在嵌套关系，否则会产生异常。<br/>

　　并且将clear这种样式定义为为如下即可：.clear{<br/>

clear:both;}<br/>
　　此外，为了让高度能自动适应，要在wrapper里面加上overflow:hidden;<br/>

　　当包含float的box的时候，高度自动适应在IE下无效，这时候应该触发IE的layout私有属性(万恶的IE啊！)用zoom:1;可以做到，这样就达到了兼容。<br/>

　　例如某一个wrapper如下定义：<br/>
&nbsp;&nbsp;&nbsp;&nbsp;.colwrapper{
overflow:hidden;zoom:1;margin:5px auto;}<br/>
<br/>
　　<font COLOR="#FF0000">2、margin加倍的问题。</FONT><br/>
<br/>
　　设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。<br/>

　　解决方案是在这个div里面加上display:inline;<br/>
例如：<br/>
　　相应的css为<br/>
&nbsp;&nbsp;&nbsp;&nbsp;#IamFloat{<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float:left;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;margin:5px;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display:inline;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>

<br/>
　　<font COLOR="#FF0000">3、关于容器的包涵关系</FONT><br/>
<br/>
　　很多时候，尤其是容器内有平行布局，例如两、三个float的div时，宽度很容易出现问题。在IE中，外层的宽度会被内层更宽的div挤破。一定要用Photoshop或者Firework量取像素级的精度。<br/>

<br/>
　　</FONT><font STYLE="FONT-SIZE: 12px"><font COLOR="#FF0000">4、关于高度的问题<br/></FONT><br/>
　　如果是动态地添加内容，高度最好不要定义。浏览器可以自动伸缩，然而如果是静态的内容，高度最好定好。（似乎有时候不会自动往下撑开，不知道具体怎么回事）<br/>

<br/>
　　</FONT><font STYLE="FONT-SIZE: 12px"><font COLOR="#FF0000">5、最狠的手段 - !important;<br/></FONT><br/>
　　如果实在没有办法解决一些细节问题,可以用这个方法.FF对于"!important"会自动优先解析,然而IE则会忽略.如下.tabd1{<br/>

background:url(/res/images/up/tab1.gif) no-repeat 0px 0px
!important;<br/>
background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; }<br/>
<br/>
　　值得注意的是，一定要将xxxx !important
这句放置在另一句之上，上面已经提过IE7.0出来了，对CSS的支持又有新问题。浏览器多了，网页兼容性更差了，疲于奔命的还是我们
，为解决IE7.0的兼容问题，找来了下面这篇文章：<br/>

<br/>
<br/>
现在我大部分都是用!important来hack，对于ie6和firefox测试可以正常显示，但是ie7对!important可以正确解释，会导致页面没按要求显示！搜索了一下，找到一个针对IE7不错的hack方式就是使用“*+html”，现在用IE7浏览一下，应该没有问题了。<br/>

<br/>
现在写一个CSS可以这样：<br/>
#example { color: #333; }<br/>
* html #example { color: #666; }<br/>
*+html #example { color: #999; }<br/>
<br/>
那么在firefox下字体颜色显示为#333，IE6下字体颜色显示为#666，IE7下字体颜色显示为#999，他们都互不干扰。<br/>

<br/></FONT><font STYLE="FONT-SIZE: 12px"><strong>XHTML标签<br/></STRONG>XHTML里有很多的标签，但是经常用到的也就是那么几个，也只要掌握这几个也就可以了。下面我们一一列举：div,p,span,ul,li,dl,dt,dd,a,img,h,strong,em<br/>

<br/>
<strong><font SIZE="3">div</FONT></STRONG>
在我的脑子里我一直把他想作是一个瓶子或是箱子，我的感觉它挺硬的。这个div没有什么特性的意义，可以使用在很多地方，也就是说他可以装不同的东西。他的正确的写法是&lt;div&gt;&lt;/div&gt;必需要有封口。大家都用来做布局之用，也有用来作为存放文章形成段落，实际上，这个做法并不是很好，因为作为文章的分段自然有一个特定的标签来用。那就是下面要讲的&lt;p&gt;&lt;/p&gt;标签，不过用DIV来再整体的包住所有的段落。这是非常实用的。<br/>

<br/>
<font COLOR="#000000" SIZE="3"><strong>p</STRONG></FONT>&nbsp;&nbsp;
这是一个有特定语义的标签，表示段落，是用来区分段落的。在大部分的浏览器中对P基本上都有一个上下的边距。但是没有行首缩进，因为行首缩进只是表示段落的方式但是不是一定或是必需的。所以在用P标签的时候如果需要可以针对P设定一下行首缩进，我是推荐在文章以外的地方不要使用P，因为P是有一定语义的，如果用在别的地方恐不合适。正确的写法是&lt;p&gt;&lt;/p&gt;<br/>

<br/>
<font COLOR="#000000" SIZE="3"><strong>span</STRONG></FONT>&nbsp;
这也是一个非常常用的标签，这个标签可以说与div很像，没有什么特定的意义，只是他是一个级联元素，不是块级元素。我一直把它看作是一个袋子，他不像箱子那样可以有自己的宽高，他的宽高只能随着内容的多少而定，所以很像是袋子。这个标签与div正好互补。<br/>

<br/>
<strong><font SIZE="3">ul,li</FONT></STRONG>&nbsp;&nbsp;
这是一个列表，在列表中，除了UL还OL，不过我觉得OL有点像是鸡肋。因为UL通过CSS定义一样可以有OL的数字排序效果。所以一般我不推荐使用
OL，有UL就可以了。UL是块级的，他的子级li也是块级标签。正确的写法是&lt;ul&gt;&lt;li&gt;&lt;/li&gt;&lt;
/ul&gt;
LI标签是被UL标签包裹的，在UL标签里可以有无数个LI标签，LI标签不能独立使用。并且LI标签一定要封口，这不光是美观问题，对于后期的维护也很有好处。很多程序员都不喜欢把这个LI封口。UL列表的用处主要是列举出一维的，同一类型的数据。具体的比如使用在菜单上，文章中列数的一些条例等等。在列表中有一种特别的形式与UL是不一样的。那就是下面的DL<br/>

<br/>
<strong><font SIZE="3">dl,dt,dd&nbsp;</FONT></STRONG>
&nbsp;这是一个很特别的三个标签的组合。这里的DT是指标题，DD是指内容。DL是包课他们的容器。正确的写法是&lt;dl&gt;&lt;dt&gt;
&lt;/dt&gt;&lt;dd&gt;&lt;/dd&gt;&lt;/dl&gt;在DL里可以有很多组的DT，DD，当出现很多组的时候尽量是一个DT配一个DD，如果DD中内容很多，可以在DD里加P标签配合使用。DL列表是一个非常好的列表形式，可以多加利用。<br/>

<strong><font SIZE="3">a</FONT></STRONG>&nbsp;&nbsp;&nbsp;
&nbsp;这表示链接，是一个特定属性的，也是网页中最为神奇的标签。因为它才让无数的网页都连在了一起。正确的写法是：&lt;a
href=""
title=""&gt;&lt;/a&gt;其中的href是表示目标地址，TITLE是鼠标悬停提示文字，这是可有可无的。但是有必是利大于无。<br/>

<br/>
<strong><font SIZE="3">img</FONT></STRONG>&nbsp;
&nbsp;这是图片标签，也是个特定属性的标签。正常写法是：&lt;img
src="" alt="" title=""/&gt;
这里的src是目标地址，ALT与TITLE是替换文字，ALT是
IE特定的，TITLE是其它浏览器的通用的。不过记得后面的反斜线那是一定要有的。<br/>

<br/>
<strong><font SIZE="3">H</FONT></STRONG>&nbsp;
&nbsp;这是一个系列的标签，从H1到H6，一共六个，有人说太少了，有人说正好用，有人说用不了这么多。反正我是觉得差不多。正确写法是：&lt;h&gt;
&lt;/h&gt;主要是用来存放标题，也有一些朋友用来作它用，个人觉得这个标签还是让他安生一点，就让他做标题的作用。这六个标签之间最好不要出现什么相互包含的事。<br/>

<br/>
<strong><font SIZE="3">strong</FONT></STRONG>&nbsp;
&nbsp;这个意思是着重，这是有语义的，作用也很简单。至于样工，是加粗着重，还是用色彩表明着重，那都是自行选择。正确的写法是&lt;strong&gt;&lt;/strong&gt;<br/>

<br/>
<strong><font SIZE="3">em</FONT></STRONG>&nbsp;
&nbsp;这个与strong很像，是表示强调。一般浏览器的默认值是斜体。使用方式与strong一样。写法是：&lt;em&gt;&lt;/em&gt;</FONT>]]></description>
            <author>难得糊涂</author>
            <category>设计知识</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a0100960r.html#comment</comments>
            <pubDate>Sat, 10 May 2008 21:20:20 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a0100960r.html</guid>
        </item>
        <item>
            <title>apache下运行jsp</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a010094sx.html</link>
            <description><![CDATA[<div CLASS="tpc_content" ID="read_tpc"><font STYLE="FONT-SIZE: 12px">以下的配置操作都在win2000系统下进行，当然它也适用于winxp。配置JSP的运行环境并不需要什么高性能硬件支持，关键是安装一些必须的软件或插件，然后对这些软件或插件的文件配置过程。<br/>

　　<br/>
　　第一步：网上搜索获取为建立JSP环境所需要的文件<br/>

　　<br/>
　　1、 apache_2.0.46-win32-X86-no_src.msi<br/>
　　下载地址：</FONT><a STYLE="TOP: 1px" HREF="http://archive.apache.org/dist/httpd/binaries/win32/apache_2.0.46-win32-x86-no_src.msi" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://archive.apache.org/dist/httpd/binaries/win32/apache_2.0.46-win32-x86-no_src.msi</FONT></A>
<font STYLE="FONT-SIZE: 12px"><br/>
　　<br/>
　　或下载Apache V2.0.54 For Windows<br/>
　　下载地址：</FONT><a STYLE="TOP: 1px" HREF="http://softdown.it168.com/1003/IT168.com-16584apache_2.0.54-win32-x86-no_ssl.msi" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://softdown.it168.com/1003/IT168.com-16584apache_2.0.54-win32-x86-no_ssl.msi</FONT></A>
<font STYLE="FONT-SIZE: 12px"><br/>
　　<br/>
　　2、 j2sdk-1_4_1_02_windows_i586.exe<br/>
　　下载地址：</FONT><a STYLE="TOP: 1px" HREF="http://java.sun.com/j2se/downloads.html" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://java.sun.com/j2se/downloads.html</FONT></A>
<font STYLE="FONT-SIZE: 12px"><br/>
　　<br/>
　　3、 resin_2.1.9.zip<br/>
　　下载地址：</FONT><a STYLE="TOP: 1px" HREF="http://www.caucho.com/download/resin-2.1.9.zip" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://www.caucho.com/download/resin-2.1.9.zip</FONT></A>
<font STYLE="FONT-SIZE: 12px"><br/>
　　第二步：首先双击运行j2sdk-1_4_1_02-windows-i586.exe文件，安装JSDK。<br/>

　　<br/>
　 <img SRC="http://www.webdn.com/web_file/program/jsp/0602080231/images/20051117210045_1.jpg" BORDER="0" /><br/>
<br/>
　　我们这里假设安装目录为D:\jsdk，其他都使用默认，安装完成如下图：<br/>

　　<br/>
　 <img SRC="http://www.webdn.com/web_file/program/jsp/0602080231/images/20051117210332_2.jpg" BORDER="0" /><br/>
<br/>
　　第三步：配置JSDK。<br/>
　　<br/>
　　安装完JSDK后，对其配置下面的内容：<br/>
　　<br/>
　　按下图所示首先在系统变量中找到ClassPath并加入下面内容(如果你找不到ClassPath，就新建一个)：<br/>

　　D:\jsdk\LIB\dt.JAR;D:\jsdk\LIB\TOOLS.JAR;D:\jsdk\BIN;.;<br/>
　　接着再在系统变量中找到Path并加入下面内容：<br/>

　　D:\jsdk\;D:\jsdk\bin;<br/>
　　<br/>
　 <img SRC="http://www.webdn.com/web_file/program/jsp/0602080231/images/20051117210423_3.jpg" BORDER="0" /><br/>
<br/>
　　【提示】ClassPath最后的".;"表示当前目录，而不是多了一个点和分号。如果大家实际的jsdk安装路径与本文不一致，请改成你的安装路径即可，最后再重启电脑使配置生效。<br/>

　　<br/>
　　第四步：调试JSDK配置环境。<br/>
　　<br/>
　　经过第三步的配置后应该就可以正确运行java程序了。我们可以在JSDK所在磁盘分区的的根目录下新建一个文本文件，输入下面代码验证：<br/>

　　<br/>
　　public class hello{<br/>
　　public static void main(String arg[]){<br/>
　　System.out.print("Hi! JAVA!");<br/>
　　}<br/>
　　}<br/>
　　<br/>
　　注意一定要将此java文件命名为hello.java，而且要区分大小写！接下来在MS-DOS方式下进入D盘根目录，输入以下命令：<br/>

　　<br/>
　　javac hello.java 回车<br/>
　　<br/>
　　如果正常的话，是没有任何内容显示的，但会在同一目录下编译成一个hello.class的文件，接下来再输入以下命令：<br/>

　　<br/>
　　java hello 回车<br/>
　　<br/>
　　如果也正常的话，应该会显示"Hi!
JAVA!"，这代表你的java环境OK了，才可进行下一步。<br/>

　　第五步：运行apache_2.0.46-win32-x86-no_src.msi安装Apache。<br/>

　　<br/>
　　如下图所示：<br/>
　　 <img SRC="http://www.webdn.com/web_file/program/jsp/0602080231/images/20051117210436_4.jpg" BORDER="0" /><br/>
　<br/>
<br/>
　　保持默认选项连按3个"next"后，出现下面的界面，按图所示设置即可：<br/>

　　<br/>
　 <img SRC="http://www.webdn.com/web_file/program/jsp/0602080231/images/20051117210452_5.jpg" BORDER="0" /><br/>
<br/>
　　第六步：完成Apache安装。<br/>
　　<br/>
　　在上一步的图示中再连按2个“next”后出现选择安装目录的界面，这里要把目录改成D:（在上面选择D盘即可，不需要输入目录名，安装程序会自动生成一个"Apache2"目录），其他的就按"next"或finish就行了。这样Apache也安装完毕了，Apache会在安装后自动启动一个Monitor程序在任务栏的右下角，但此时Apache的服务并未启动，因为我们还没将Apache安装成服务。如下图所示：<br/>

　　<br/>
　 <img SRC="http://www.webdn.com/web_file/program/jsp/0602080231/images/20051117210509_6.jpg" BORDER="0" /><br/>
<br/>
　　第七步：配置Apache。<br/>
　　<br/>
　　1、
进入Apache所在目录，找到打开Apache2\conf\httpd.conf文件，查找以下内容：<br/>

　　<br/>
　　# If your host doesn't have a registered DNS name, enter its
IP address here.<br/>
　　# You will have to access it by its address anyway, and this
will make<br/>
　　# redirections work in a sensible way.<br/>
　　#<br/>
　　ServerName 127.0.0.1:8080<br/>
　　<br/>
　　【提示】如果你需要改服务器的IP，则修改上面红色代码即可（修改127.0.0.1为你服务器IP地址并确认web端口<br/>

　　<br/>
　　2、 继续查找以下内容：<br/>
　　<br/>
　　# DocumentRoot: The directory out of which you will serve
your<br/>
　　# documents. By default, all requests are taken from this
directory, but<br/>
　　# symbolic links and aliases may be used to point to other
locations.<br/>
　　#<br/>
　　DocumentRoot "D:/apache2/htdocs"<br/>
　　<br/>
　　【提示】如果你想改变放置运行JSP文件的目录，就将上面红色的代码修改为：
DocumentRoot
"盘符:/路径"，注意，要使用"/"而不是"\"。<br/>
　　<br/>
　　3、 最后查找下面内容：<br/>
　　<br/>
　　#Listen 12.34.56.78:80<br/>
　　Listen 8080<br/>
　　<br/>
　　【提示】如果你想修改Apache的监听端口，就在这里进行。<br/>

　　<br/>
　　OK，到这里就算完成了。因为简单的说来，配置Apache就是配置httpd.conf文件。如果你想进行更详细深入的配置，请自行查阅相关文章，这里不再一一列举。<br/>

　　<br/>
　　第八步：测试Apache服务。<br/>
　　<br/>
　　1、进入MS-DOS方式，再进入D:\apache2\bin\目录下，输入下面命令将Apache安装成服务：<br/>

　　apache -k install 回车。<br/>
　　<br/>
　　2、双击任务栏右下角的Apache
Monitor，即可在窗口里看到一个“Apache2”（如下图所示），再按右边的Start按钮启动Apache2。<br/>

　　<br/>
　<img SRC="http://www.webdn.com/web_file/program/jsp/0602080231/images/20051117210520_7.jpg" BORDER="0" /><br/>
　　3、打开IE，在地址栏中输入：</FONT><a STYLE="TOP: 1px" HREF="http://127.0.0.1:8080/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://127.0.0.1:8080/</FONT></A><font STYLE="FONT-SIZE: 12px">（如果在配置httpd.conf时你修改过此IP地址，就请输入你修改后的地址），如果出现下图所示的页面，表示一切OK！至此，已经成功安装了Apache，现在我们只需把html文件放到apache2/htdocs/目录下即可访问。例如该目录下有一个文件叫hello.htm，那么在地址栏的输入格式就为：</FONT><a STYLE="TOP: 1px" HREF="http://127.0.0.1:8080/hello.htm" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://127.0.0.1:8080/hello.htm</FONT></A> <font STYLE="FONT-SIZE: 12px"><br/>
　　<br/>
<img SRC="http://www.webdn.com/web_file/program/jsp/0602080231/images/20051117210534_8.jpg" BORDER="0" /><br/>
<br/>
　　第九步：安装Resin<br/>
　　<br/>
　　Apache只是一个Web服务器，没有解析器的支持是没法运行JSP的，所以我们还需要安装一个解析器，这里我们选择Resin。双击下载到的压缩文件resin-2.1.9.zip，再将它解压到任意目录下（D:\Resin-2.1.9）进行相应配置即可，因为Resin是不需要安装的绿色程序。<br/>

　　<br/>
　　1、
用任意网页编写软件（推荐使用Dreamweaver）打开解压目录里的resin-2.1.9\conf\resin.conf文件，查找到以下内容：<br/>

　　&lt;doc-dir&gt;doc&lt;/doc-dir&gt;<br/>

　　然后将其修改为：
&lt;doc-dir&gt;D:/apache2/htdocs/&lt;/doc-dir&gt;<br/>

　　<br/>
　　【提示】此目录是Resin运行JSP文件的目录，也就是说JSP文件必须放在这个目录下才能正常运行。<br/>

　　<br/>
　　2、 接着再查找到下面内容：<br/>
　　&lt;http port='8080'/&gt;<br/>
　　然后将其修改为：&lt;http
port='7070'/&gt;<br/>
　　<br/>
　　【提示】因为8080端口已经在前面配置给Apache服务了，如果这里不作修改，Apache和Resin就会产生端口冲突而导致运行异常。<br/>

　　<br/>
　　3、
最后一步是进入刚才安装Apache服务的目录，打开Apache2\conf\httpd.conf文件，在最未端加入以下代码：<br/>

　　# Resin的结合配置部分：<br/>
　　LoadModule caucho_module
"D:/resin-2.1.9/libexec/apache-2.0/mod_caucho.dll"<br/>
　　#上面的路径改成你自己的路径<br/>
　　&lt;IfModule mod_caucho.c&gt;<br/>
　　CauchoHost localhost 6802<br/>
　　AddHandler caucho-request jsp<br/>
　　&lt;Location /servlet/*&gt;<br/>
　　SetHandler caucho-request<br/>
　　&lt;/Location&gt;<br/>
　　&lt;/IfModule&gt;<br/>
　　<br/>
　　4、
OK，准备好没？我们要开始测试刚刚建立的JSP运行环境了！先启动Resin（双击运行Resin-2.1.9\bin\httpd.exe文件即可启动Resin），当然Apache服务也要一起启动。然后在Apache2\htdocs\目录下新建一个叫后缀名为jsp的文本文件，比如first.jsp，然后输入简单的网页代码，做个测试的页面：<br/>

　　&lt;%@ page language="java"
contentType="text/html;charset=gb2312"%&gt;<br/>
　　&lt;%<br/>
　　out.print("我爱jsp!");<br/>
　　%&gt;<br/>
　　<br/>
　　赶快打开IE，输入：</FONT><a STYLE="TOP: 1px" HREF="http://127.0.0.1:8080/first.jsp" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://127.0.0.1:8080/first.jsp</FONT></A><font STYLE="FONT-SIZE: 12px">试试吧！如果你看到"我爱jsp!"几个字赫然在目，那么恭喜你，大功告成！<br/>
</FONT></DIV>]]></description>
            <author>难得糊涂</author>
            <category>设计知识</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a010094sx.html#comment</comments>
            <pubDate>Wed, 07 May 2008 16:32:41 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a010094sx.html</guid>
        </item>
        <item>
            <title>Win2003完美配置Apache+IIS+Tomcat多站点</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a010094so.html</link>
            <description><![CDATA[<font STYLE="FONT-SIZE: 12px">本来以为上一次的配置就搞定了，结果本地测试好好的，到了服务器上调试就完蛋了，本地只测试了一个asp站和一个jsp站，而实际情况是多个asp站和jsp站，又试了两次还是不行，终于在第三次尝试后搞定了，写下来做个纪念。<br/>

　　第一次尝试使用：<br/>
&lt;VirtualHost *:80&gt;<br/>
ServerAdmin</FONT> <a STYLE="TOP: 1px" HREF="mailto:feifei0658@sina.com"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">feifei0658@sina.com</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">ServerName</FONT> <a STYLE="TOP: 1px" HREF="http://www.5hope.com/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">www.5hope.com</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">DcumentRoot "G:\5hope<br/>
DirectoryIndex index.html index.htm index.asp<br/>
ProxyPass /</FONT> <a STYLE="TOP: 1px" HREF="http://www.5hope.com:88/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://www.5hope.com:88/</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">ProxyPassReverse /</FONT> <a STYLE="TOP: 1px" HREF="http://www.5hope.com:88/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">www.5hope.com:88/</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">&lt;/VirtualHost&gt;<br/>

<br/>
&lt;VirtualHost *:80&gt;<br/>
ServerAdmin</FONT> <a STYLE="TOP: 1px" HREF="mailto:feifei0658@sina.com"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">feifei0658@sina.com</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">ServerName</FONT> <a STYLE="TOP: 1px" HREF="http://www.shundabanjia.com/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">www.shundabanjia.com</FONT></A>
<font STYLE="FONT-SIZE: 12px"><br/>
DocumentRoot "G:\wuyubing\www"<br/>
DirectoryIndex index.html index.htm index.asp<br/>
ProxyPass /</FONT> <a STYLE="TOP: 1px" HREF="http://www.shundabanjia.com:88/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://www.shundabanjia.com:88/</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">ProxyPassReverse /</FONT> <a STYLE="TOP: 1px" HREF="http://www.shundabanjia.com:88/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://www.shundabanjia.com:88/</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">&lt;/VirtualHost&gt;<br/>

　　本以为这样设置多站点就搞定了，结果发现只识别第一个站点，访问别的站点都是这个站的内容，折腾了一上午，没成功。<br/>

　　第二次尝试使用：<br/>
&lt;VirtualHost *:80&gt;<br/>
#添加了这个属性**********<br/>
ProxyPreserveHost On<br/>
ServerAdmin</FONT> <a STYLE="TOP: 1px" HREF="mailto:feifei0658@sina.com"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">feifei0658@sina.com</FONT></A> <font STYLE="FONT-SIZE: 12px"><br/>
ServerName</FONT> <a STYLE="TOP: 1px" HREF="http://www.shundabanjia.com/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">www.shundabanjia.com</FONT></A>
<font STYLE="FONT-SIZE: 12px"><br/>
DocumentRoot "G:\wuyubing\www"<br/>
DirectoryIndex index.html index.htm index.asp<br/>
ProxyPass /</FONT> <a STYLE="TOP: 1px" HREF="http://www.shundabanjia.com:88/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://www.shundabanjia.com:88/</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">ProxyPassReverse /</FONT> <a STYLE="TOP: 1px" HREF="http://www.shundabanjia.com:88/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://www.shundabanjia.com:88/</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">&lt;/VirtualHost&gt;<br/>

<br/>
LoadModule jk_module modules/mod_jk.so<br/>
JkWorkersFile "D:\tomcat5.0.28\conf\workers.properties"<br/>
&lt;VirtualHost *:80&gt;<br/>
ServerAdmin</FONT> <a STYLE="TOP: 1px" HREF="mailto:feifei0658@sina.com"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">feifei0658@sina.com</FONT></A> <font STYLE="FONT-SIZE: 12px"><br/>
ServerName</FONT> <a STYLE="TOP: 1px" HREF="http://www.openria.cn/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">www.openria.cn</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">DirectoryIndex index.html index.htm
index.jsp<br/>
JkMount /* ajp13<br/>
JkAutoAlias "D:\tomcat-5.0.28\webapps\ria"<br/>
&lt;Directory
"D:\tomcat-5.0.28\webapps\ria"&gt;<br/>
Options Indexes FollowSymLinks<br/>
allow from all<br/>
&lt;/Directory&gt;<br/>
&lt;/VirtualHost&gt;<br/>
　　这回经过查官方资料，发现了一个属性，叫ProxyPreserveHost
On，试了一下，是可以用实现多个虚拟的asp站点了，但是和我的tomcat站点定义冲突，访问不了jsp站，又不行，只好再找。<br/>

　　第三次尝试使用：<br/>
NameVirtualHost *:80<br/>
<br/>
&lt;VirtualHost *:80&gt;<br/>
ProxyPreserveHost On<br/>
ServerAdmin</FONT> <a STYLE="TOP: 1px" HREF="mailto:feifei0658@sina.com"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">feifei0658@sina.com</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">ServerName</FONT> <a STYLE="TOP: 1px" HREF="http://www.shundabanjia.com/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">www.shundabanjia.com</FONT></A>
<font STYLE="FONT-SIZE: 12px"><br/>
DocumentRoot "G:\wuyubing\www"<br/>
DirectoryIndex index.html index.htm index.asp<br/>
ProxyPass /</FONT> <a STYLE="TOP: 1px" HREF="http://www.shundabanjia.com:88/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://www.shundabanjia.com:88/</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">ProxyPassReverse /</FONT> <a STYLE="TOP: 1px" HREF="http://www.shundabanjia.com:88/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">http://www.shundabanjia.com:88/</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">&lt;/VirtualHost&gt;<br/>

<br/>
LoadModule jk_module modules/mod_jk.so<br/>
JkWorkersFile "D:\tomcat5.0.28\conf\workers.properties"<br/>
&lt;VirtualHost *:80&gt;<br/>
ServerAdmin</FONT> <a STYLE="TOP: 1px" HREF="mailto:feifei0658@sina.com"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">feifei0658@sina.com</FONT></A> <font STYLE="FONT-SIZE: 12px"><br/>
ServerName</FONT> <a STYLE="TOP: 1px" HREF="http://www.openria.cn/" TARGET="_blank"><font STYLE="FONT-SIZE: 12px" COLOR="#2F5FA1">www.openria.cn</FONT></A><br/>
<font STYLE="FONT-SIZE: 12px">DirectoryIndex index.html index.htm
index.jsp<br/>
JkMount /* ajp13<br/>
JkAutoAlias "D:\tomcat-5.0.28\webapps\ria"<br/>
&lt;Directory
"D:\tomcat-5.0.28\webapps\ria"&gt;<br/>
Options Indexes FollowSymLinks<br/>
allow from all<br/>
&lt;/Directory&gt;<br/>
&lt;/VirtualHost&gt;<br/>
　　经过反复看文档，这回终于搞定了，原来是没有吧"Use
name-based virtual hosting."打开，去掉NameVirtualHost
*:80前面的#号就可以了，真是晕啊。<br/>
　　总算成功了，看来有问题还需要看官方资料，网友的资料还是不完整啊，通过自己的努力，发现新的线索：<br/>

ProxyPreserveHost On<br/>
NameVirtualHost *:80<br/>
　　这也是自己的收获啊，希望这些经历能帮助需要他的人。</FONT>]]></description>
            <author>难得糊涂</author>
            <category>Design 日记</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a010094so.html#comment</comments>
            <pubDate>Wed, 07 May 2008 16:14:54 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a010094so.html</guid>
        </item>
        <item>
            <title>35个问题，买本扫盲</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a010093nj.html</link>
            <description><![CDATA[<br/>
<div CLASS="t_msgfont" ID="message4053610">
希望对朋友有点帮助。CPU,GPU的资料有点老了，好像是05-06的。不过其他的东西还是很有帮助的。本本就这么多东西，大家看了基本的了解也就有。<br/>

希望大家买到如愿的本子。<br/>
<br/>
<br/>
<p ALIGN="left"><font COLOR="black"><b>CPU篇</B></FONT><br/>
<br/>
&nbsp; &nbsp;
Q1：&ldquo;迅弛&rdquo;到底是什么，用奔腾-M处理器的就是迅弛吗？<br/>

<br/>
&nbsp; &nbsp;
答：&ldquo;迅弛&rdquo;并不是简单地只指处理器，它是一个包括处理器、芯片组、无线网卡的系统总称。严格意义上来说，&ldquo;迅弛&rdquo;这个系统中的处理器只能是奔腾-M处理器，不包括赛扬-M处理器。因此只有采用&ldquo;奔腾-M处理器+Intel
855/915芯片组+无线网卡&rdquo;配置的机型才能称为&ldquo;迅弛&rdquo;。消费者可以通过笔记本电脑上的蝴蝶标志来辨认&ldquo;迅弛&rdquo;机型。<br/>

<br/>
&nbsp; &nbsp; Q2：
奔腾-M处理器与赛扬-M处理器的有什么区别？<br/>
<br/>
&nbsp; &nbsp;
答：奔腾-M与赛扬-M处理器的核心、构架上都是相同的，区别主要有两个：奔腾-M支持自动降频节电的Intel
SpeedStep技术，可以带来更长的电池使用时间，而赛扬-M则不支持该技术；奔腾-M比同核心的赛扬M处理器的二级缓存高出一倍，比如采用Banias核心的奔腾-M的二级缓存为1M，而赛扬-M仅为512K。<br/>

<br/>
&nbsp; &nbsp;
Q3：奔腾M处理器与赛扬M处理器性能差别大吗？<br/>
<br/>
&nbsp; &nbsp;
答：和台机上赛扬处理器与奔腾处理器性能的巨大差距不同，赛扬M处理器的性能比同频率的奔腾M处理器仅低10%左右。<br/>

<br/>
&nbsp; &nbsp;
Q4：为什么有的赛扬-M处理器能自动降频？<br/>
<br/>
&nbsp; &nbsp;
答：个别机型采用了相关软件对赛扬M处理器进行了降频，与奔腾M处理器采用降低倍频达到降频的原理不同，塞扬M是通过降低外频来实现频率的下降，这样会导致系统性能下降。对台机熟悉的朋友知道，外频的频繁更换对一些设备会有不良的影响。<br/>

<br/>
&nbsp; &nbsp;
Q5：AMD的处理器能自动降频吗？<br/>
<br/>
&nbsp; &nbsp;
答：AMD的处理器都支持类似SpeedStep的&ldquo;PowerNow！&rdquo;技术，能够自动降频，但效果与Speedstep还有一定的差距。<br/>

<br/>
&nbsp; &nbsp;
Q6：赛扬M处理器能无线上网吗？<br/>
<br/>
&nbsp; &nbsp;
答：能不能无线上网只与机型是否配备无线网卡有关，而与处理器没有任何关系。比如Apple的iBook
G4系列，虽然没采用奔腾M处理器，但能通过AirPort
Extreme无线网卡进行无线上网。<br/></P>
<p ALIGN="left"><br/>
<b>显卡篇</B><br/>
<br/>
&nbsp; &nbsp;
Q1：独立显卡和集成显卡的区别是什么，各自的特点是什么？<br/>

<br/>
&nbsp; &nbsp;
答：集成显卡的显示芯片是集成在主板上，没有显存，只能是靠共享一定的内存作为显存；独立显卡的显示芯片并不集成在主板上，显存是独立的，不需要占用内存。<br/>

<br/>
&nbsp; &nbsp;
集成显卡的特点是性能一般，但基本能满足一些日常应用，发热量和耗电量相对于独立显卡来说较低，需要占用内存。独立显卡的性能虽强，但发热量和功耗比较高，不占用内存。<br/>

<br/>
&nbsp; &nbsp;
Q2：目前的独立显卡型号有哪些？性能如何？<br/>
<br/>
&nbsp; &nbsp; 答：ATI的 MOBILITY
Radeon系列：9200、9600、9700（9700se）、X300、X600、X700；nVidia的
GeForce Go 系列：6200TC、6600。<br/>
<br/>
&nbsp; &nbsp;
性能上的比较（同为64M显存的情况下）：<br/>
<br/>
&nbsp; &nbsp;
X700(128bit)&gt;6600&gt;X700(64bit)&gt;9700&gt;X600&gt;9600&gt;6200TC&gt;X300&gt;9700se&gt;9200<br/>

<br/>
&nbsp; &nbsp;
Q3：为什么用电池测试显卡的时候分数很低？<br/>
<br/>
&nbsp; &nbsp;
答：在使用电池的环境下，显卡会降低显示芯片的频率，自然测出来的分数不高。<br/>

<br/>
&nbsp; &nbsp;
Q4：集成显卡的显存可以更改吗？<br/>
<br/>
&nbsp; &nbsp;
答：集成显卡的显存容量可以在BIOS里面设置，而最大的显存容量要看芯片组的支持程度。比如Intel
855GM/GME最大只支持64M，而915GM可以支持到128M。<br/>
<br/>
&nbsp; &nbsp;
Q5：笔记本的显卡能升级吗？<br/>
<br/>
&nbsp; &nbsp;
答：不管是独立显卡还是集成显卡，目前而言基本上无法升级（排除采用特殊接口的独立显卡）。因此选购的之前一定要想好，根据自己的需要来购买。<br/>
</P>
<p ALIGN="left"><br/>
<b>内存篇</B><br/>
<br/>
&nbsp; &nbsp;
Q1：我现在的机型上用的是DDR内存，能升级到DDR2吗？<br/>

<br/>
&nbsp; &nbsp;
答：不能。最主要的原因就是两者在金手指上的缺口不同，造成了无法兼容。而笔记本的内存插槽是固定在主板上的，所以更换插槽基本上是无法实现。<br/>

<br/>
&nbsp; &nbsp;
Q2：内存怎么少了？<br/>
<br/>
&nbsp; &nbsp;
答：集成显卡占用了一定的内存。此外如果选购nVidia的
GeForce Go
6200TC显卡，6200虽然为独立显卡，但它支持&ldquo;TurboCache&rdquo;技术，允许分配一定的内存来提高性能。<br/>

<br/>
&nbsp; &nbsp;
Q3：怎么才能打开双通道？<br/>
<br/>
&nbsp; &nbsp;
答：首先明确支持双通道的只有Intel的915GM/PM芯片组，对与855系列芯片组来说是没有这项技术的。其次915芯片组只支持DDR2内存的双通道，意味着DDR内存是无法打开双通道的。最后双通道在BIOS里面打开。<br/>

<br/>
&nbsp; &nbsp;
Q4：AMD的机型支持双通道吗？<br/>
<br/>
&nbsp; &nbsp;
答：AMD的机型是否支持双通道关键是看AMD的处理器是否支持，与芯片组是否支持无关。不过现在发布的AMD移动处理器都不支持双通道。<br/>

<br/>
&nbsp;
&nbsp;Q5：升级内存后，原配内存要保留吗？<br/>

<br/>
&nbsp; &nbsp;
答：最好保留，因为有些品牌对保修有比较严格的要求，如果更换内存可能会失去保修的权利。（当然这也不是绝对的，有些品牌在维修的时候仅仅是对消费者自行更换的内存不予保修。</P>
<p ALIGN="left"><br/>
<br/>
<b>屏幕篇</B><br/>
<br/>
&nbsp; &nbsp;
Q1：亮点、暗点、坏点各指什么？<br/>
<br/>
&nbsp; &nbsp;
答：亮点就是我们俗称的彩点，暗点则是在屏幕全白时出现的黑点。坏点则包括了亮点和暗点。坏点在液晶屏制造时产生，是不可修复的。关于液晶屏的坏点的国家标准很低，12个坏点都算合格。<br/>

<br/>
&nbsp; &nbsp;
Q2：什么是可视角度？<br/>
<br/>
&nbsp; &nbsp;
答：可视角度大小决定了用户可视范围的大小以及最佳观赏角度。如果太小，用户稍微偏离屏幕正面，画面就会失色。一般用户可以以120度的可视角度来作为选择标准。<br/>

<br/>
&nbsp; &nbsp;
Q3：笔记本液晶屏的响应时间大概是多少？<br/>
<br/>
&nbsp; &nbsp;
答：一般来说响应时间越短越好。响应时间越短，在看高速移动的画面时就不会感到&ldquo;拖影&rdquo;的痕迹。按照人眼的反应时间，响应时间如果超过40ms，就会出现运动图像的迟滞现象。如今大多数的笔记本所采用液晶屏响应时间都在25~30ms左右。<br/>

<br/>
&nbsp; &nbsp;
Q4：笔记本液晶屏的亮度足够吗？<br/>
<br/>
&nbsp; &nbsp;
答：如今一般的笔记本液晶屏亮度在150流明左右，对于日常应用已经足够。采用高亮设计的液晶屏亮度在250流明，而采用WSSV技术的NEC的液晶屏达到了320流明的高亮度。<br/>

<br/>
&nbsp; &nbsp;
Q5：液晶屏使用时有哪些需要注意的问题？<br/>
<br/>
&nbsp; &nbsp;
答：液晶屏是很脆弱的部件，如果顶盖硬度不够，注意不要让重物压在上面；对于液晶屏的表面注意不要划伤，最好能贴上保护膜；笔记本空闲时，最好关掉液晶屏以延长寿命。<br/>
</P>
<p ALIGN="left"><br/>
<b>重量篇</B><br/>
<br/>
&nbsp; &nbsp;
Q1：什么是机身重量？<br/>
<br/>
&nbsp; &nbsp;
答：不包括电池和电源适配器时笔记本的重量，又称为裸机重量。<br/>

<br/>
&nbsp; &nbsp;
Q2：什么是旅行重量？<br/>
<br/>
&nbsp; &nbsp;
答：机身重量、电池重量、电源适配器重量的总和。如果是外置光驱机型，则不包括光驱的重量。<br/>

<br/>
&nbsp; &nbsp;
Q3：电池的重量有多少？电源适配器呢？<br/>
<br/>
&nbsp; &nbsp;
答：电池的重量与电芯的数目有关。3芯电池重量在0.2Kg左右，6芯电池重量在0.3~0.4Kg之间，12芯电池重量则达到0.6Kg。而电源适配器的重量一般在0.4~0.5kg之间。<br/>

<br/>
&nbsp; &nbsp;
Q4：什么是带旅行匣的重量？<br/>
<br/>
&nbsp; &nbsp;
答：为了更方便携带，可抽取式光驱可以换成旅行匣，重量可以减轻0.4Kg左右。</P>
<p ALIGN="left"><br/>
<br/>
<b>电池篇</B><br/>
<br/>
&nbsp; &nbsp;
Q1：平常所说的3芯、6芯电池指的什么？与电池容量有关吗？<br/>

<br/>
&nbsp; &nbsp;
答：3芯、6芯是指电池中的电芯数目。电芯越多电池的容量越大，使用时间也就越长。<br/>

<br/>
&nbsp; &nbsp;
Q2：笔记本的电池有哪些类型？<br/>
<br/>
&nbsp; &nbsp;
答：主要有镍铬电池，镍氢电池，锂电池，它们一般表示为：镍镉Ni-Cd、镍氢Ni-MH、锂电Li。最近几年，在笔记本领域还出现了一种燃料电池。如今的笔记本一般采用锂电池，但少数机型还再使用淘汰掉的镍氢电池，消费者可以从电池的标记上来进行识别。<br/>

<br/>
&nbsp; &nbsp;
Q3：为什么厂家只对电池实行一年的保修？<br/>
<br/>
&nbsp; &nbsp;
答：锂电的使用寿命比较短。一般锂电的充电次数为只有400－600次，经过特殊改进的产品也不过800多次，使用2年左右就报废了。<br/>

<br/>
&nbsp; &nbsp;
Q4：电池为什么用不到厂商标称的时间？<br/>
<br/>
&nbsp; &nbsp;
答：测试的条件不一样。有的厂商是用8芯电池进行测试，而给用户的却是6芯电池；有的厂商采用关掉所有程序、调低液晶屏亮度、禁用耗电的接口等手段测出使用时间，而在日常应用中根本不可能达到；有的厂商仅用软件测试，软件可能导致误差。<br/>

<br/>
&nbsp; &nbsp;
Q5：电池的使用和保存要注意什么？<br/>
<br/>
&nbsp; &nbsp;
答：使用时注意这些问题：开始的几次充电一定要充满8个小时以上，充分激活锂电池；注意不要过度放电；最好不要在使用电源适配器的同时使用电池。<br/>

<br/>
&nbsp; &nbsp;
保存注意的问题：一个月最好拿出来充一次；保存时电池不要充满，充入40%~50%的电量为宜；放在干燥阴凉的地方。</P>
<p ALIGN="left"><br/>
<br/>
<b>接口篇</B><br/>
<br/>
&nbsp; &nbsp;
Q1：1394接口有什么用途？<br/>
<br/>
&nbsp; &nbsp;
答：1394接口分为4针和6针两种接口，主要用途是与数码摄象机连接传输影像数据。如今一般的笔记本上采用4针的接口，对于外置光驱的机型来说，一般采用6针的接口来连接光驱。当然，苹果笔记本电脑上所采用的就是6针1394接口。<br/>

<br/>
&nbsp; &nbsp;
Q2：S端子有什么用途？<br/>
<br/>
&nbsp; &nbsp;
答：S端子的主要用途是将笔记本与电视连接起来，将电脑上的画面输入到电视上。<br/>

<br/>
&nbsp; &nbsp;
Q3：读卡器有什么用途？<br/>
<br/>
&nbsp; &nbsp;
答：读卡器的主要用途是实现数码相机与笔记本电脑的影象数据传输。如今很多数码相机采用存储卡或记忆棒，读卡器可以将这些存储卡和记忆棒中的数据读出传输到笔记本电脑上。<br/>

<br/>
&nbsp; &nbsp;
Q4：PC卡插槽有什么用途？<br/>
<br/>
&nbsp; &nbsp;
答：PC卡插槽相当于台式机的PCI插槽，不同之处在于PC卡插槽可以即插即用。因此结合不同用途的PC卡，可以实现一定的功能。比如采用PC无线网卡，可以实现无线上网；采用PC电视接受卡，可以收看电视；采用PC声卡，可以增强音效等等。<br/>

<br/>
&nbsp; &nbsp;
Q5：USB接口分布很重要吗？<br/>
<br/>
&nbsp; &nbsp;
答：比较重要，直接关系到使用的舒适性。如果设计得太挤，在使用多个USB设备时会有冲突；如果只设计在左侧，鼠标使用起来不方便。因此一台好的机型，USB接口的分布也很重要。</P>
<p ALIGN="left"></P>
<p ALIGN="left"></P>
<p ALIGN="left">【转自】PCONLINE.COM</P>
<br/></DIV>]]></description>
            <author>难得糊涂</author>
            <category>Design 日记</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a010093nj.html#comment</comments>
            <pubDate>Sun, 04 May 2008 05:31:30 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a010093nj.html</guid>
        </item>
        <item>
            <title>今天需要配置一个php4的环境遇到的问题</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a0100907p.html</link>
            <description><![CDATA[今天需要配置一个php4的环境遇到的问题<br/>
Cannot load C:/php/php4apache2.dll into server<br/>
是由于PHP4的这个模块不支持apache2.2版，因此只要下载这个模块就可以解决此问题。]]></description>
            <author>难得糊涂</author>
            <category>php专栏</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a0100907p.html#comment</comments>
            <pubDate>Fri, 25 Apr 2008 02:19:54 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a0100907p.html</guid>
        </item>
        <item>
            <title>今天需要配置一个php4的环境遇到的问题</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a0100907m.html</link>
            <description><![CDATA[今天需要配置一个php4的环境遇到的问题 Cannot load
C:/php/php4apache2.dll into server
是由于PHP4的这个模块不支持apache2.2版，因此只要下载这个模块就可以解决此问题。]]></description>
            <author>难得糊涂</author>
            <category>php专栏</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a0100907m.html#comment</comments>
            <pubDate>Fri, 25 Apr 2008 02:16:16 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a0100907m.html</guid>
        </item>
        <item>
            <title>今天需要配置一个php4的环境遇到的问题</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a0100907o.html</link>
            <description><![CDATA[今天需要配置一个php4的环境遇到的问题 Cannot load
C:/php/php4apache2.dll into server
是由于PHP4的这个模块不支持apache2.2版，因此只要下载这个模块就可以解决此问题。]]></description>
            <author>难得糊涂</author>
            <category>php专栏</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a0100907o.html#comment</comments>
            <pubDate>Fri, 25 Apr 2008 02:16:16 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a0100907o.html</guid>
        </item>
        <item>
            <title>今天需要配置一个php4的环境遇到的问题</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a0100907n.html</link>
            <description><![CDATA[今天需要配置一个php4的环境遇到的问题 Cannot load
C:/php/php4apache2.dll into server
是由于PHP4的这个模块不支持apache2.2版，因此只要下载这个模块就可以解决此问题。]]></description>
            <author>难得糊涂</author>
            <category>php专栏</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a0100907n.html#comment</comments>
            <pubDate>Fri, 25 Apr 2008 02:16:16 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a0100907n.html</guid>
        </item>
        <item>
            <title>java script验证表单时常用：</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a01009063.html</link>
            <description><![CDATA[<font SIZE="2">"^-[0-9]*[1-9][0-9]*$"　　//负整数&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^-?\\d+$"　　　　//整数&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^\\d+(\\.\\d+)?$"　　//非负浮点数（正浮点数&nbsp;+&nbsp;0）&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"　　//正浮点数&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"　　//非正浮点数（负浮点数&nbsp;+&nbsp;0）&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"　　//负浮点数&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^(-?\\d+)(\\.\\d+)?$"　　//浮点数&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^[A-Za-z]+$"　　//由26个英文字母组成的字符串&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^[A-Z]+$"　　//由26个英文字母的大写组成的字符串&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^[a-z]+$"　　//由26个英文字母的小写组成的字符串&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^[A-Za-z0-9]+$"　　//由数字和26个英文字母组成的字符串&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^\\w+$"　　//由数字、26个英文字母或者下划线组成的字符串&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"　　　　//email地址&nbsp;&nbsp;&nbsp;<br/>

<br/>
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"　　//url&nbsp;&nbsp;&nbsp;&nbsp;<br/>

<br/>
<strong>应用实例</STRONG><br/>
<br/>
用户名：<br/>
/^[a-zA-Z]{1}([a-zA-Z0-9]|[_]){4,19}$/<br/>
<br/>
无符号字符串：<br/>
/^[^\s]{1}[^-_\~!@#\$%\^&amp;\*\.\(\)\[\]\{\}&lt;&gt;\?\\\/\'\"]*$/<br/>

<br/>
Email：<br/>
/^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/<br/>
<br/>
电话号码：<br/>
/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/<br/>

<br/>
手机号码：<br/>
/^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/<br/>
<br/>
URL：<br/>
/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&amp;_~`@[\]\':+!]*([^&lt;&gt;\"\"])*$/<br/>

<br/>
身份证：<br/>
/^\d{15}(\d{2}[A-Za-z0-9])?$/<br/>
<br/>
货币：<br/>
/^\d+(\.\d+)?$/<br/>
<br/>
数字：<br/>
/^\d+$/<br/>
<br/>
邮政编码：<br/>
/^[1-9]\d{5}$/<br/>
<br/>
QQ：<br/>
/^[1-9]\d{4,8}$/<br/>
<br/>
整数：<br/>
/^[-\+]?\d+$/<br/>
<br/>
实数：<br/>
/^[-\+]?\d+(\.\d+)?$/<br/>
<br/>
英文：<br/>
/^[A-Za-z]+$/<br/>
<br/>
中文<br/>
/^[\u0391-\uFFE5]+$/<br/>
<br/>
密码（必须含有大写字母、小写字母、标点、数字中的至少两种。呵呵，这个比较变态吧～）<br/>

/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&amp;\*\.\(\)\[\]\{\}&lt;&gt;\?\\\/\'\"]*)|.{0,5})$|\s/<br/>

<br/>
<strong>利用正则表达式限制网页表单里的文本框输入内容</STRONG>：&nbsp;&nbsp;<br/>

<br/>
用正则表达式限制只能输入中文：onkeyup="value="/value.replace(/["^\u4E00-\u9FA5]/g,&rsquo;&rsquo;)"&nbsp;onbeforepaste="clipboardData.setData(&rsquo;text&rsquo;,clipboardData.getData(&rsquo;text&rsquo;).replace(/[^\u4E00-\u9FA5]/g,&rsquo;&rsquo;))"&nbsp;&nbsp;<br/>

<br/>
用正则表达式限制只能输入全角字符：&nbsp;onkeyup="value="/value.replace(/["^\uFF00-\uFFFF]/g,&rsquo;&rsquo;)"&nbsp;onbeforepaste="clipboardData.setData(&rsquo;text&rsquo;,clipboardData.getData(&rsquo;text&rsquo;).replace(/[^\uFF00-\uFFFF]/g,&rsquo;&rsquo;))"&nbsp;&nbsp;<br/>

<br/>
用正则表达式限制只能输入数字：onkeyup="value="/value.replace(/["^\d]/g,&rsquo;&rsquo;)&nbsp;"onbeforepaste="clipboardData.setData(&rsquo;text&rsquo;,clipboardData.getData(&rsquo;text&rsquo;).replace(/[^\d]/g,&rsquo;&rsquo;))"&nbsp;&nbsp;<br/>

<br/>
用正则表达式限制只能输入数字和英文：onkeyup="value="/value.replace(/[\W]/g,"&rsquo;&rsquo;)&nbsp;"onbeforepaste="clipboardData.setData(&rsquo;text&rsquo;,clipboardData.getData(&rsquo;text&rsquo;).replace(/[^\d]/g,&rsquo;&rsquo;))"<br/>

<br/>
<br/>
&lt;script&nbsp;language="java script"&gt;<br/>
<br/>
//去左空格;<br/>
function&nbsp;ltrim(s){<br/>
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;s.replace(&nbsp;/^\\s*/,&nbsp;"");<br/>

}<br/>
//去右空格;<br/>
function&nbsp;rtrim(s){<br/>
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;s.replace(&nbsp;/\\s*$/,&nbsp;"");<br/>

}<br/>
//去左右空格;<br/>
function&nbsp;trim(s){<br/>
&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;rtrim(ltrim(s));<br/>

}<br/>
//是否为空值;<br/>
function&nbsp;IsEmpty(_str){<br/>
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;tmp_str&nbsp;=&nbsp;trim(_str);<br/>

&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;tmp_str.length&nbsp;==&nbsp;0;<br/>

}<br/>
//是否有效的Email;<br/>
function&nbsp;IsMail(_str){<br/>
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;tmp_str&nbsp;=&nbsp;trim(_str);<br/>

&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;pattern&nbsp;=&nbsp;/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$/;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;pattern.test(tmp_str);<br/>

}<br/>
//是否有效的数字;<br/>
function&nbsp;IsNumber(_str){<br/>
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;tmp_str&nbsp;=&nbsp;trim(_str);<br/>

&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;pattern&nbsp;=&nbsp;/^[0-9]/;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;pattern.test(tmp_str);<br/>

}<br/>
//是否有效的颜色值;<br/>
function&nbsp;IsColor(color){<br/>
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;temp=color;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(temp=="")&nbsp;return&nbsp;true;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(temp.length!=7)&nbsp;return&nbsp;false;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(temp.search(/\\#[a-fA-F0-9]{6}/)&nbsp;!=&nbsp;-1);<br/>

}<br/>
//是否有效的链接;<br/>
function&nbsp;IsURL(url){<br/>
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;sTemp;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;b=true;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;sTemp=url.substring(0,7);<br/>

&nbsp;&nbsp;&nbsp;&nbsp;sTemp=sTemp.toUpperCase();<br/>

&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((sTemp!="http://")&nbsp;target="_blank"&nbsp;
... #124;|(url.length&lt;10)){<br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b=false;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;}<br/>

&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;b;<br/>

}<br/>
//是否有效的手机号码;<br/>
function&nbsp;IsMobile(_str){<br/>
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;tmp_str&nbsp;=&nbsp;trim(_str);<br/>

&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;pattern&nbsp;=&nbsp;/13\\d{9}/;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;pattern.test(tmp_str);<br/>

}<br/>
<br/>
&lt;/script&gt;</FONT><br/>]]></description>
            <author>难得糊涂</author>
            <category>php专栏</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a01009063.html#comment</comments>
            <pubDate>Thu, 24 Apr 2008 17:12:21 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a01009063.html</guid>
        </item>
        <item>
            <title>JavaScript - 正则表达式</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a01009062.html</link>
            <description><![CDATA[正则表达式(regular&nbsp;expression)对象包含一个正则表达式模式(pattern)。它具有用正则表达式模式去匹配或代替一个串(string)中特定字符(或字符集合)的属性(properties)和方法(methods)。<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;正则表达式构造函数：&nbsp;new&nbsp;RegExp(&ldquo;pattern&ldquo;[,&ldquo;flags&ldquo;]);<br/>

&nbsp;&nbsp;&nbsp;&nbsp;参数说明：<br/>

&nbsp;&nbsp;&nbsp;&nbsp;pattern&nbsp;--&nbsp;一个正则表达式文本<br/>

&nbsp;&nbsp;&nbsp;&nbsp;flags&nbsp;--&nbsp;如果存在，将是以下值：<br/>

&nbsp;&nbsp;&nbsp;&nbsp;g:&nbsp;全局匹配<br/>

&nbsp;&nbsp;&nbsp;&nbsp;i:&nbsp;忽略大小写<br/>

&nbsp;&nbsp;&nbsp;&nbsp;gi:&nbsp;以上组合<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;在构造函数中，一些特殊字符需要进行转意(在特殊字符前加&ldquo;\&ldquo;)。正则表达式中的特殊字符：<br/>

&nbsp;&nbsp;&nbsp;&nbsp;字符&nbsp;&nbsp;含意<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\&nbsp;转意，即通常在&ldquo;\&ldquo;后面的字符不按原来意义解释，如/b/匹配字符&ldquo;b&ldquo;，当b前面加了反斜杆后/\b/，转意为<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;匹配一个单词的边界。<br/>

&nbsp;&nbsp;&nbsp;&nbsp;-或-<br/>

&nbsp;&nbsp;&nbsp;&nbsp;对正则表达式功能字符的还原，如&ldquo;*&ldquo;匹配它前面元字符0次或多次，/a*/将匹配a,aa,aaa，加了&ldquo;\&ldquo;后，/a\*/<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;将只匹配&ldquo;a*&ldquo;。<br/>

&nbsp;&nbsp;&nbsp;&nbsp;^&nbsp;&nbsp;匹配一个输入或一行的开头，/^a/匹配&ldquo;an&nbsp;A&ldquo;，而不匹配&ldquo;An&nbsp;a&ldquo;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;$&nbsp;&nbsp;匹配一个输入或一行的结尾，/a$/匹配&ldquo;An&nbsp;a&ldquo;，而不匹配&ldquo;an&nbsp;A&ldquo;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;匹配前面元字符0次或多次，/ba*/将匹配b,ba,baa,baaa<br/>

&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;匹配前面元字符1次或多次，/ba*/将匹配ba,baa,baaa<br/>

&nbsp;&nbsp;&nbsp;&nbsp;?&nbsp;&nbsp;匹配前面元字符0次或1次，/ba*/将匹配b,ba<br/>

&nbsp;&nbsp;&nbsp;&nbsp;(x)&nbsp;&nbsp;匹配x保存x在名为$1...$9的变量中<br/>

&nbsp;&nbsp;&nbsp;&nbsp;x|y&nbsp;&nbsp;匹配x或y<br/>

&nbsp;&nbsp;&nbsp;&nbsp;{n}&nbsp;&nbsp;精确匹配n次<br/>

&nbsp;&nbsp;&nbsp;&nbsp;{n,}&nbsp;&nbsp;匹配n次以上<br/>

&nbsp;&nbsp;&nbsp;&nbsp;{n,m}&nbsp;&nbsp;匹配n-m次<br/>

&nbsp;&nbsp;&nbsp;&nbsp;[xyz]&nbsp;&nbsp;字符集(character&nbsp;set)，匹配这个集合中的任一一个字符(或元字符)<br/>

&nbsp;&nbsp;&nbsp;&nbsp;[^xyz]&nbsp;&nbsp;不匹配这个集合中的任何一个字符<br/>

&nbsp;&nbsp;&nbsp;&nbsp;[\b]&nbsp;&nbsp;匹配一个退格符<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\b&nbsp;&nbsp;匹配一个单词的边界<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\B&nbsp;&nbsp;匹配一个单词的非边界<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\cX&nbsp;&nbsp;这儿，X是一个控制符，/\cM/匹配Ctrl-M<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\d&nbsp;&nbsp;匹配一个字数字符，/\d/&nbsp;=&nbsp;/[0-9]/<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\D&nbsp;&nbsp;匹配一个非字数字符，/\D/&nbsp;=&nbsp;/[^0-9]/<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;匹配一个换行符<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\r&nbsp;&nbsp;匹配一个回车符<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\s&nbsp;&nbsp;匹配一个空白字符，包括\n,\r,\f,\t,\v等<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\S&nbsp;&nbsp;匹配一个非空白字符，等于/[^\n\f\r\t\v]/<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;匹配一个制表符<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\v&nbsp;&nbsp;匹配一个重直制表符<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\w&nbsp;&nbsp;匹配一个可以组成单词的字符(alphanumeric，这是我的意译，含数字)，包括下划线，如[\w]匹配&ldquo;$5.98&ldquo;<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;中的5，等于[a-zA-Z0-9]<br/>

&nbsp;&nbsp;&nbsp;&nbsp;\W&nbsp;&nbsp;匹配一个不可以组成单词的字符，如[\W]匹配&ldquo;$5.98&ldquo;中的$，等于[^a-zA-Z0-9]。<br/>

<br/>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;说了这么多了，我们来看一些正则表达式的实际应用的例子：<br/>

&nbsp;&nbsp;&nbsp;&nbsp;HTML代码的屏蔽<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;mask_HTMLCode(strInput)&nbsp;{<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;myReg&nbsp;=&nbsp;/〈(\w+)〉/;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;strInput.replace(myReg,&nbsp;&ldquo;〈$1〉&ldquo;);<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>

&nbsp;&nbsp;&nbsp;&nbsp;E-mail地址验证:<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;test_email(strEmail)&nbsp;{<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;myReg&nbsp;=&nbsp;/^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(myReg.test(strEmail))&nbsp;return&nbsp;true;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>

<br/>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;正则表达式对象的属性及方法：<br/>

&nbsp;&nbsp;&nbsp;&nbsp;　　预定义的正则表达式拥有有以下静态属性：input,&nbsp;multiline,&nbsp;lastMatch,&nbsp;lastParen,&nbsp;leftContext,<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;rightContext和$1到$9。其中input和multiline可以预设置。其他属性的值在执行过exec或test方法后被根据<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;不同条件赋以不同的值。许多属性同时拥有长和短(perl风格)的两个名字，并且，这两个名字指向同一个值。(<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;JavaScript模拟perl的正则表达式)<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;正则表达式对象的属性：<br/>

&nbsp;&nbsp;&nbsp;&nbsp;属性&nbsp;含义<br/>

&nbsp;&nbsp;&nbsp;&nbsp;$1...$9&nbsp;如果它(们)存在，是匹配到的子串<br/>

&nbsp;&nbsp;&nbsp;&nbsp;$_&nbsp;参见input<br/>

&nbsp;&nbsp;&nbsp;&nbsp;$*&nbsp;参见multiline<br/>

&nbsp;&nbsp;&nbsp;&nbsp;$&amp;&nbsp;参见lastMatch<br/>

&nbsp;&nbsp;&nbsp;&nbsp;$+&nbsp;参见lastParen<br/>

&nbsp;&nbsp;&nbsp;&nbsp;$`&nbsp;参见leftContext<br/>

&nbsp;&nbsp;&nbsp;&nbsp;$&rsquo;&rsquo;　　　　　　　　　&nbsp;参见rightContext<br/>

&nbsp;&nbsp;&nbsp;&nbsp;constructor　　　&nbsp;&nbsp;创建一个对象的一个特殊的函数原型<br/>

&nbsp;&nbsp;&nbsp;&nbsp;global　　　　　　&nbsp;&nbsp;是否在整个串中匹配(bool型)<br/>

&nbsp;&nbsp;&nbsp;&nbsp;ignoreCase　　　　&nbsp;匹配时是否忽略大小写(bool型)<br/>

&nbsp;&nbsp;&nbsp;&nbsp;input　　　　　　　&nbsp;被匹配的串<br/>

&nbsp;&nbsp;&nbsp;&nbsp;lastIndex　　　　&nbsp;&nbsp;最后一次匹配的索引<br/>

&nbsp;&nbsp;&nbsp;&nbsp;lastParen　　　　&nbsp;&nbsp;最后一个括号括起来的子串<br/>

&nbsp;&nbsp;&nbsp;&nbsp;leftContext　　　&nbsp;&nbsp;最近一次匹配以左的子串<br/>

&nbsp;&nbsp;&nbsp;&nbsp;multiline　　　　&nbsp;&nbsp;是否进行多行匹配(bool型)<br/>

&nbsp;&nbsp;&nbsp;&nbsp;prototype　　　　&nbsp;&nbsp;允许附加属性给对象<br/>

&nbsp;&nbsp;&nbsp;&nbsp;rightContext　　　&nbsp;最近一次匹配以右的子串<br/>

&nbsp;&nbsp;&nbsp;&nbsp;source　　　　　　&nbsp;&nbsp;正则表达式模式<br/>

&nbsp;&nbsp;&nbsp;&nbsp;lastIndex　　　　&nbsp;&nbsp;最后一次匹配的索引<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;正则表达式对象的方法：<br/>

&nbsp;&nbsp;&nbsp;&nbsp;方法&nbsp;含义<br/>

&nbsp;&nbsp;&nbsp;&nbsp;compile　　　　　&nbsp;&nbsp;正则表达式比较<br/>

&nbsp;&nbsp;&nbsp;&nbsp;exec　　　　　　　&nbsp;执行查找<br/>

&nbsp;&nbsp;&nbsp;&nbsp;test　　　　　　　&nbsp;进行匹配<br/>

&nbsp;&nbsp;&nbsp;&nbsp;toSource　　　　　&nbsp;返回特定对象的定义(literal<br/>

<br/>
&nbsp;&nbsp;&nbsp;&nbsp;representing)，其值可用来创建一个新的对象。重载Object.toSource方法得到的。<br/>

&nbsp;&nbsp;&nbsp;&nbsp;toString　　　　　&nbsp;返回特定对象的串。重载Object.toString方法得到的。<br/>

&nbsp;&nbsp;&nbsp;&nbsp;valueOf　　　　　&nbsp;&nbsp;返回特定对象的原始值。重载Object.valueOf方法得到<br/>

<br/>
<br/>
&nbsp;&nbsp;&nbsp;&nbsp;例子：<br/>

&nbsp;&nbsp;&nbsp;&nbsp;〈script&nbsp;language&nbsp;=&nbsp;&ldquo;JavaScript&ldquo;〉<br/>

&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;myReg&nbsp;=&nbsp;/(w+)s(w+)/;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;str&nbsp;&nbsp;=&nbsp;&ldquo;John&nbsp;Smith&ldquo;;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;newstr&nbsp;=&nbsp;str.replace(myReg,&nbsp;&ldquo;$2,&nbsp;$1&ldquo;);<br/>

&nbsp;&nbsp;&nbsp;&nbsp;document.write(newstr);<br/>

&nbsp;&nbsp;&nbsp;&nbsp;〈/script〉<br/>

&nbsp;&nbsp;&nbsp;&nbsp;将输出&ldquo;Smith,&nbsp;John&ldquo;]]></description>
            <author>难得糊涂</author>
            <category>php专栏</category>
            <comments>http://blog.sina.com.cn/s/blog_3f810b7a01009062.html#comment</comments>
            <pubDate>Thu, 24 Apr 2008 17:10:17 GMT+8</pubDate>
            <guid>http://blog.sina.com.cn/s/blog_3f810b7a01009062.html</guid>
        </item>
        <item>
            <title>透视MySQL数据库语句Update、Insert、REPLACE、DELE</title>
            <link>http://blog.sina.com.cn/s/blog_3f810b7a01008zuv.html</link>
            <description><![CDATA[<font STYLE="FONT-SIZE: 12px">Insert和REPLACE语句的功能都是向表中插入新的数据。这两条语句的语法类似。它们的主要区别是如何处理重复的数据。<br/>

<br/>
　　1. Insert的一般用法<br/>
<br/>
　　MySQL中的Insert语句和标准的Insert不太一样，在标准的SQL语句中，一次插入一条记录的Insert语句只有一种形式。<br/>

<br/>
　　Insert INTO tablename(列名&hellip;) VALUES(列值);<br/>
<br/>
　　而在MySQL中还有另外一种形式。<br/>
<br/>
　　Insert INTO tablename SET column_name1 = value1, column_name2
= value2，&hellip;;<br/>
<br/>
　　第一种方法将列名和列值分开了，在使用时，列名必须和列值的数一致。如下面的语句向users表中插入了一条记录：<br/>

<br/>
　　Insert INTO users(id, name, age) VALUES(123, '姚明',
25);<br/>
<br/>
　　第二种方法允许列名和列值成对出现和使用，如下面的语句将产生中样的效果。<br/>

<br/>
　　Insert INTO users SET id = 123, name = '姚明', age =
25;<br/>
<br/>
　　如果使用了SET方式，必须至少为一列赋值。如果某一个字段使用了省缺值（如默认或自增值），这两种方法都可以省略这些字段。如id字段上使用了自增值，上面两条语句可以写成如下形式：<br/>

<br/>
　　Insert INTO users (name, age) VALUES('姚明',25);<br/>
<br/>
　　Insert INTO uses SET name = '姚明', age = 25;<br/>
<br/>
　　MySQL在VALUES上也做了些变化。如果VALUES中什么都不写，那MySQL将使用表中每一列的默认值来插入新记录。<br/>

<br/>
　　Insert INTO users () VALUES();<br/>
<br/>
　　如果表名后什么都不写，就表示向表中所有的字段赋值。使用这种方式，不仅在VALUES中的值要和列数一致，而且顺序不能颠倒。
Insert INTO users VALUES(123, '姚明', 25);<br/>
<br/>
　　如果将Insert语句写成如下形式MySQL将会报错。<br/>

<br/>
　　Insert INTO users VALUES('姚明',25);<br/>
<br/>
　　2. 使用Insert插入多条记录<br/>
<br/>
　　看到这个标题也许大家会问，这有什么好说的，调用多次Insert语句不就可以插入多条记录了吗！但使用这种方法要增加服务器的负荷，因为，执行每一次SQL服务器都要同样对SQL进行分析、优化等操作。幸好MySQL提供了另一种解决方案，就是使用一条Insert语句来插入多条记录。这并不是标准的SQL语法，因此只能在MySQL中使用。<br/>

<br/>
　　Insert INTO users(name, age)<br/>
　　VALUES('姚明', 25), ('比尔.盖茨', 50), ('火星人',
600);<br/>
<br/>
　　上面的Insert
语句向users表中连续插入了3条记录。值得注意的是，上面的Insert语句中的VALUES后必须每一条记录的值放到一对(&hellip;)中，中间使用","分割。假设有一个表table1<br/>

<br/>
　　Create TABLE table1(n INT)；<br/>
<br/>
　　如果要向table1中插入5条记录，下面写法是错误的：<br/>

<br/>
　　Insert INTO table1 (i) VALUES(1,2,3,4,5);<br/>
<br/>
　　MySQL将会抛出下面的错误<br/>
<br/>
　　ERROR 1136: Column count doesn't match value count at row
1<br/>
<br/>
　　而正确的写法应该是这样：<br/>
<br/>
　　Insert INTO t able1(i) VALUES(1),(2),(3),(4),(5);<br/>
<br/>
　　当然，这种写法也可以省略列名，这样每一对括号里的值的数目必须一致，而且这个数目必须和列数一致。如：<br/>

<br/>
　　Insert INTO t able1 VALUES(1),(2),(3),(4),(5);<br/>
<br/>
<br/>
3. REPLACE语句<br/>
<br/>
　　我们在使用数据库时可能会经常遇到这种情况。如果一个表在一个字段上建立了唯一