<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LynZz&#039;s Blog</title>
	<atom:link href="http://www.lynzz.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lynzz.com</link>
	<description>关注web前端开发，网页设计，SEO，wordpress</description>
	<lastBuildDate>Wed, 23 Jun 2010 09:17:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JavaScript判断浏览器类型及版本</title>
		<link>http://www.lynzz.com/web/js/judge-browser-version/</link>
		<comments>http://www.lynzz.com/web/js/judge-browser-version/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 09:17:02 +0000</pubDate>
		<dc:creator>LynZz</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[javascript判断浏览器]]></category>

		<guid isPermaLink="false">http://www.lynzz.com/?p=134</guid>
		<description><![CDATA[在网站前端开发中，浏览器兼容性问题本已让我们手忙脚乱，Chrome的出世不知道又要给我们添多少乱子。浏览器兼容性是前端开发框架要解决的第一个问题，要解决兼容性问题就得首先准确判断出浏览器的类型及其版本。
JavaScript是前端开发的主要语言，我们可以通过编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法，一种是根据各种浏览器独有的属性来分辨，另一种是通过分析浏览器的userAgent属性来判断的。在许多情况下，值判断出浏览器类型之后，还需判断浏览器版本才能处理兼容性问题，而判断浏览器的版本一般只能通过分析浏览器的userAgent才能知道。
我们先来分析一下各种浏览器的特征及其userAgent。

IE
只有IE支持创建ActiveX控件，因此她有一个其他浏览器没有的东西，就是ActiveXObject函数。只要判断window对象存在ActiveXObject函数，就可以明确判断出当前浏览器是IE。而IE各个版本典型的userAgent如下：
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)
Mozilla/4.0  (compatible; MSIE 6.0; Windows NT 5.1)
Mozilla/4.0 (compatible; MSIE  5.0; Windows NT)
其中，版本号是MSIE之后的数字。
Firefox
Firefox中的DOM元素都有一个getBoxObjectFor函数，用来获取该DOM元素的位置和大小（IE对应的中是getBoundingClientRect函数）。这是Firefox独有的，判断它即可知道是当前浏览器是Firefox。Firefox几个版本的userAgent大致如下：
Mozilla/5.0 (Windows; U; Windows NT 5.2)  Gecko/2008070208 Firefox/3.0.1
Mozilla/5.0 (Windows; U; Windows NT  5.1) Gecko/20070309 Firefox/2.0.0.3
Mozilla/5.0 (Windows; U; Windows  NT 5.1) Gecko/20070803 Firefox/1.5.0.12
其中，版本号是Firefox之后的数字。
Opera
Opera提供了专门的浏览器标志，就是window.opera属性。Opera典型的userAgent如下：
Opera/9.27 (Windows NT 5.2; U; zh-cn)
Opera/8.0 [...]]]></description>
			<content:encoded><![CDATA[<p>在网站前端开发中，浏览器兼容性问题本已让我们手忙脚乱，Chrome的出世不知道又要给我们添多少乱子。浏览器兼容性是前端开发框架要解决的第一个问题，要解决兼容性问题就得首先准确判断出浏览器的类型及其版本。</p>
<p>JavaScript是前端开发的主要语言，我们可以通过编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法，一种是根据各种浏览器独有的属性来分辨，另一种是通过分析浏览器的userAgent属性来判断的。在许多情况下，值判断出浏览器类型之后，还需判断浏览器版本才能处理兼容性问题，而判断浏览器的版本一般只能通过分析浏览器的userAgent才能知道。</p>
<p>我们先来分析一下各种浏览器的特征及其userAgent。</p>
<p><span id="more-134"></span></p>
<p><strong><span style="color: #000000;">IE</span></strong></p>
<p>只有IE支持创建ActiveX控件，因此她有一个其他浏览器没有的东西，就是ActiveXObject函数。只要判断window对象存在ActiveXObject函数，就可以明确判断出当前浏览器是IE。而IE各个版本典型的userAgent如下：</p>
<p><span style="color: #0000ff;">Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)<br />
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)<br />
Mozilla/4.0  (compatible; MSIE 6.0; Windows NT 5.1)<br />
Mozilla/4.0 (compatible; MSIE  5.0; Windows NT)</span></p>
<p>其中，版本号是MSIE之后的数字。</p>
<p><strong>Firefox</strong></p>
<p>Firefox中的DOM元素都有一个getBoxObjectFor函数，用来获取该DOM元素的位置和大小（IE对应的中是getBoundingClientRect函数）。这是Firefox独有的，判断它即可知道是当前浏览器是Firefox。Firefox几个版本的userAgent大致如下：</p>
<p><span style="color: #0000ff;">Mozilla/5.0 (Windows; U; Windows NT 5.2)  Gecko/2008070208 Firefox/3.0.1<br />
Mozilla/5.0 (Windows; U; Windows NT  5.1) Gecko/20070309 Firefox/2.0.0.3<br />
Mozilla/5.0 (Windows; U; Windows  NT 5.1) Gecko/20070803 Firefox/1.5.0.12</span><br />
其中，版本号是Firefox之后的数字。</p>
<p><strong>Opera</strong></p>
<p>Opera提供了专门的浏览器标志，就是window.opera属性。Opera典型的userAgent如下：</p>
<p><span style="color: #0000ff;">Opera/9.27 (Windows NT 5.2; U; zh-cn)<br />
Opera/8.0  (Macintosh; PPC Mac OS X; U; en)<br />
Mozilla/5.0 (Macintosh; PPC Mac OS  X; U; en) Opera 8.0</span></p>
<p>其中，版本号是靠近Opera的数字。</p>
<p><strong>Safari</strong></p>
<p>Safari浏览器中有一个其他浏览器没有的openDatabase函数，可做为判断Safari的标志。Safari典型的userAgent如下：</p>
<p><span style="color: #0000ff;">Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML,  like Gecko) Version/3.1 Safari/525.13<br />
Mozilla/5.0 (iPhone; U; CPU  like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93  Safari/419.3</span></p>
<p>其版本号是Version之后的数字。</p>
<p><strong>Chrome</strong></p>
<p>Chrome有一个MessageEvent函数，但Firefox也有。不过，好在Chrome并没有Firefox的getBoxObjectFor函数，根据这个条件还是可以准确判断出Chrome浏览器的。目前，Chrome的userAgent是：</p>
<p><span style="color: #0000ff;">Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML,  like Gecko) Chrome/0.2.149.27 Safari/525.13</span></p>
<p>其中，版本号在Chrome只后的数字。</p>
<p>有趣的是，Chrome的userAgent还包含了Safari的特征，也许这就是Chrome可以运行所有Apple浏览器应用的基础吧。</p>
<p>只要了解了以上信息，我们就可以根基这些特征来判断浏览器类型及其版本了。我们会将判断的结果保存在Sys名字空间中，成为前端框架的基本标志信息，供今后的程序来读取。如果判断出谋种浏览器，Sys名字空间将有一个该浏览器名称的属性，其值为该浏览器的版本号。例如，如果判断出IE  7.0，则Sys.ie的值为7.0；如果判断出Firefox 3.0，则Sys.firefox的值为3.0。下面是判断浏览器的代码：</p>
<p>&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
var Sys = {};<br />
var ua = navigator.userAgent.toLowerCase();<br />
if (window.ActiveXObject)<br />
Sys.ie = ua.match(/msie ([\d.]+)/)[1]<br />
else if (document.getBoxObjectFor)<br />
Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]<br />
else if (window.MessageEvent &amp;&amp; !document.getBoxObjectFor)<br />
Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1]<br />
else if (window.opera)<br />
Sys.opera = ua.match(/opera.([\d.]+)/)[1]<br />
else if (window.openDatabase)<br />
Sys.safari = ua.match(/version\/([\d.]+)/)[1];</p>
<p>//以下进行测试<br />
if(Sys.ie) document.write(&#8216;IE: &#8217;+Sys.ie);<br />
if(Sys.firefox) document.write(&#8216;Firefox: &#8217;+Sys.firefox);<br />
if(Sys.chrome) document.write(&#8216;Chrome: &#8217;+Sys.chrome);<br />
if(Sys.opera) document.write(&#8216;Opera: &#8217;+Sys.opera);<br />
if(Sys.safari) document.write(&#8216;Safari: &#8217;+Sys.safari);</p>
<p>&lt;/script&gt;</p>
<p>我们把对IE的判断放在第一，因为IE的用户最多，其次是判断Firefox。按使用者多少的顺序来判断浏览器类型，可以提高判断效率，少做无用功。之所以将Chrome放在第三判断，是因为我们预测Chrome很快会成为市场占有率第三的浏览器。其中，在分析浏览器版本时，用到了正则表达式来析取其中的版本信息。</p>
<p>如果你的JavaScript玩得很高，你还可以将前面的判断代码写成这样：</p>
<p>&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
var Sys = {};<br />
var ua = navigator.userAgent.toLowerCase();<br />
window.ActiveXObject ? Sys.ie = ua.match(/msie ([\d.]+)/)[1] :<br />
document.getBoxObjectFor ? Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1] :<br />
window.MessageEvent &amp;&amp; !document.getBoxObjectFor ? Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1] :<br />
window.opera ? Sys.opera = ua.match(/opera.([\d.]+)/)[1] :<br />
window.openDatabase ? Sys.safari = ua.match(/version\/([\d.]+)/)[1] : 0;</p>
<p>//以下进行测试<br />
if(Sys.ie) document.write(&#8216;IE: &#8217;+Sys.ie);<br />
if(Sys.firefox) document.write(&#8216;Firefox: &#8217;+Sys.firefox);<br />
if(Sys.chrome) document.write(&#8216;Chrome: &#8217;+Sys.chrome);<br />
if(Sys.opera) document.write(&#8216;Opera: &#8217;+Sys.opera);<br />
if(Sys.safari) document.write(&#8216;Safari: &#8217;+Sys.safari);<br />
&lt;/script&gt;</p>
<p>这样可以使JavaScript代码更精简些。当然，可读性稍差一些，就看你是重视效率还是重视可维护性了。</p>
<p>使用不同特征来判断浏览器的方法，虽然在速度上比用正则表达式分析userAgent要来的快，不过这些特征可能会随浏览器版本而变化。比如，一种浏览器本来独有的特性取得了市场上的成功，其他浏览器也就可能跟着加入该特性，从而使该浏览器的独有特征消失，导致我们的判断失败。因此，相对比较保险的做法是通过解析userAgent中的特征来判断浏览器类型。何况，反正判断版本信息也需要解析浏览器的userAgent的。</p>
<p>通过分析各类浏览器的userAgent信息，不难得出分辨各类浏览器及其版本的正则表达式。而且，对浏览器类型的判断和版本的判断完全可以合为一体地进行。于是，我们可以写出下面的代码：</p>
<p>&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
var Sys = {};<br />
var ua = navigator.userAgent.toLowerCase();<br />
var s;<br />
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :<br />
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :<br />
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :<br />
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :<br />
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;</p>
<p>//以下进行测试<br />
if (Sys.ie) document.write(&#8216;IE: &#8217; + Sys.ie);<br />
if (Sys.firefox) document.write(&#8216;Firefox: &#8217; + Sys.firefox);<br />
if (Sys.chrome) document.write(&#8216;Chrome: &#8217; + Sys.chrome);<br />
if (Sys.opera) document.write(&#8216;Opera: &#8217; + Sys.opera);<br />
if (Sys.safari) document.write(&#8216;Safari: &#8217; + Sys.safari);<br />
&lt;/script&gt;</p>
<p>其中，采用了“&#8230; ? &#8230; :  &#8230;”这样的判断表达式来精简代码。判断条件是一条赋值语句，既完成正则表达式的匹配及结果复制，又直接作为条件判断。而随后的版本信息只需从前面的匹配结果中提取即可，这是非常高效的代码。</p>
<p>以上的代码都是为了打造前端框架所做的预研，并在五大浏览器上测试通过。今后，判断某种浏览器只需用if(Sys.ie)或if(Sys.firefox)等形式，而判断浏览器版本只需用if(Sys.ie  == &#8216;8.0&#8242;)或if(Sys.firefox == &#8216;3.0&#8242;)等形式，表达起来还是非常优雅的。</p>
<p>前端框架项目已经启动，一切就看过程和结果了&#8230;</p>
<p>原文 来源：<a href="http://www.cnblogs.com/leadzen/archive/2008/09/06/1285764.html" target="_blank">http://www.cnblogs.com/leadzen/archive/2008/09/06/1285764.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lynzz.com/web/js/judge-browser-version/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Apache下shtml设置</title>
		<link>http://www.lynzz.com/php/set-shtml/</link>
		<comments>http://www.lynzz.com/php/set-shtml/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 02:43:06 +0000</pubDate>
		<dc:creator>LynZz</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[shtml]]></category>

		<guid isPermaLink="false">http://www.lynzz.com/?p=132</guid>
		<description><![CDATA[什么是SSI？
SSI是英文Server Side Includes的缩写，翻译成中文就是服务器端包含的意思。从技术角度上说，SSI就是在HTML文件中，可以通过注释行调用的命令或指针。SSI具有强大的功能，只要使用一条简单的SSI命令就可以实现整个网站的内容更新，时间和日期的动态显示，以及执行shell和CGI脚本程序等复杂的功能。
如何使你的Apache服务器支持SSI？
Apache默认是不支持SSI的，需要我们更改httpd.conf来进行配置。我这里以windows平台的Apache 2.0.x为例，
打开conf目录下的httpd.conf文件，搜索“AddType text/html .shtml”，搜索结果：
# AddType text/html .shtml
# AddOutputFilter INCLUDES .shtml
把这两行前面的#去掉。
然后搜索“Options Indexes FollowSymLinks”
在搜索到的那一行后面添加“ Includes”
即将该行改变为：
Options Indexes FollowSymLinks Includes
保存httpd.conf，重起apache即可。
]]></description>
			<content:encoded><![CDATA[<p><strong>什么是SSI？</strong><br />
SSI是英文Server Side Includes的缩写，翻译成中文就是服务器端包含的意思。从技术角度上说，SSI就是在HTML文件中，可以通过注释行调用的命令或指针。SSI具有强大的功能，只要使用一条简单的SSI命令就可以实现整个网站的内容更新，时间和日期的动态显示，以及执行shell和CGI脚本程序等复杂的功能。</p>
<p><strong>如何使你的Apache服务器支持SSI？</strong><br />
Apache默认是不支持SSI的，需要我们更改httpd.conf来进行配置。我这里以windows平台的Apache 2.0.x为例，<br />
打开conf目录下的httpd.conf文件，搜索“AddType text/html .shtml”，搜索结果：<br />
# AddType text/html .shtml<br />
# AddOutputFilter INCLUDES .shtml<br />
把这两行前面的#去掉。</p>
<p>然后搜索“Options Indexes FollowSymLinks”<br />
在搜索到的那一行后面添加“ Includes”<br />
即将该行改变为：<br />
Options Indexes FollowSymLinks Includes<br />
保存httpd.conf，重起apache即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lynzz.com/php/set-shtml/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ajax浏览器支持</title>
		<link>http://www.lynzz.com/web/ajax/ajax/</link>
		<comments>http://www.lynzz.com/web/ajax/ajax/#comments</comments>
		<pubDate>Thu, 06 May 2010 13:32:21 +0000</pubDate>
		<dc:creator>LynZz</dc:creator>
				<category><![CDATA[ajax]]></category>

		<guid isPermaLink="false">http://www.lynzz.com/?p=129</guid>
		<description><![CDATA[使用 Microsoft 浏览器
Microsoft 浏览器 Internet Explorer 使用 MSXML 解析器处理 XML(可以通过 参考资料 进一步了解  MSXML)。因此如果编写的 Ajax 应用程序要和 Internet Explorer 打交道，那么必须用一种特殊的方式创建对象。

但并不是这么简单。根据 Internet Explorer 中安装的 Javascript 技术版本不同，MSXML  实际上有两种不同的版本，因此必须对这两种情况分别编写代码。请参阅 清单 3，其中的代码在 Microsoft 浏览器上创建了一个  XMLHttpRequest。
清单 3. 在 Microsoft 浏览器上创建 XMLHttpRequest 对象
var xmlHttp = false;
try {
xmlHttp = new  ActiveXObject(&#8220;Msxml2.XMLHTTP&#8221;);
} catch (e) {
try {
xmlHttp =  new ActiveXObject(&#8220;Microsoft.XMLHTTP&#8221;);
} catch [...]]]></description>
			<content:encoded><![CDATA[<p><strong>使用 Microsoft 浏览器</strong></p>
<p>Microsoft 浏览器 Internet Explorer 使用 MSXML 解析器处理 XML(可以通过 参考资料 进一步了解  MSXML)。因此如果编写的 Ajax 应用程序要和 Internet Explorer 打交道，那么必须用一种特殊的方式创建对象。<br />
<span id="more-129"></span><br />
但并不是这么简单。根据 Internet Explorer 中安装的 Javascript 技术版本不同，MSXML  实际上有两种不同的版本，因此必须对这两种情况分别编写代码。请参阅 清单 3，其中的代码在 Microsoft 浏览器上创建了一个  XMLHttpRequest。</p>
<p>清单 3. 在 Microsoft 浏览器上创建 XMLHttpRequest 对象</p>
<p>var xmlHttp = false;<br />
try {<br />
xmlHttp = new  ActiveXObject(&#8220;Msxml2.XMLHTTP&#8221;);<br />
} catch (e) {<br />
try {<br />
xmlHttp =  new ActiveXObject(&#8220;Microsoft.XMLHTTP&#8221;);<br />
} catch (e2) {<br />
xmlHttp =  false;<br />
}<br />
}</p>
<p>您对这些代码可能还不完全理解，但没有关系。当本系列文章结束的时候，您将对 Javascript  编程、错误处理、条件编译等有更深的了解。现在只要牢牢记住其中的两行代码：</p>
<p>xmlHttp = new ActiveXObject(&#8220;Msxml2.XMLHTTP&#8221;);和xmlHttp = new  ActiveXObject(&#8220;Microsoft.XMLHTTP&#8221;);。</p>
<p>这两句代码基本上就是尝试使用一个版本的 MSXML 创建对象，如果失败则使用另一个版本创建该对象。不错吧?如果都不成功，则将  xmlHttp 变量设为 false，告诉您的代码出现了问题。如果出现这种情况，可能是因为安装了非 Microsoft  浏览器，需要使用不同的代码。</p>
<p><strong>处理 Mozilla 和非 Microsoft 浏览器</strong></p>
<p>如果选择的浏览器不是 Internet Explorer，或者为非 Microsoft 浏览器编写代码，就需要使用不同的代码。事实上就是  清单 1 所示的一行简单代码：</p>
<p>var xmlHttp = new XMLHttpRequest object;</p>
<p>这行简单得多的代码在 Mozilla、Firefox、Safari、Opera 以及基本上所有以任何形式或方式支持 Ajax 的非  Microsoft 浏览器中，创建了 XMLHttpRequest 对象。</p>
<p><strong>结合起来</strong></p>
<p>关键是要支持所有 浏览器。谁愿意编写一个只能用于 Internet Explorer 或者非 Microsoft  浏览器的应用程序呢?或者更糟，要编写一个应用程序两次?当然不!因此代码要同时支持 Internet Explorer 和非 Microsoft  浏览器。清单 4 显示了这样的代码。</p>
<p>清单 4. 以支持多种浏览器的方式创建 XMLHttpRequest 对象</p>
<p>/* Create a new XMLHttpRequest object to talk to  the Web server */<br />
var xmlHttp = false;<br />
/*@cc_on @*/<br />
/*@if  (@_jscript_version &gt;= 5)<br />
try {<br />
xmlHttp = new  ActiveXObject(&#8220;Msxml2.XMLHTTP&#8221;);<br />
} catch (e) {<br />
try {<br />
xmlHttp =  new ActiveXObject(&#8220;Microsoft.XMLHTTP&#8221;);<br />
} catch (e2) {<br />
xmlHttp =  false;<br />
}<br />
}<br />
@end @*/<br />
if (!xmlHttp &amp;&amp; typeof  XMLHttpRequest != &#8216;undefined&#8217;) {<br />
xmlHttp = new XMLHttpRequest();<br />
}</p>
<p>现在先不管那些注释掉的奇怪符号，如 @cc_on，这是特殊的 Javascript 编译器命令，将在下一期针对  XMLHttpRequest 的文章中详细讨论。</p>
<p>这段代码的核心分为三步：</p>
<p>建立一个变量 xmlHttp 来引用即将创建的 XMLHttpRequest 对象。<br />
尝试在 Microsoft  浏览器中创建该对象：<br />
尝试使用 Msxml2.XMLHTTP 对象创建它。<br />
如果失败，再尝试 Microsoft.XMLHTTP  对象。<br />
如果仍然没有建立 xmlHttp，则以非 Microsoft 的方式创建该对象。<br />
最后，xmlHttp 应该引用一个有效的  XMLHttpRequest 对象，无论运行什么样的浏览器。</p>
<p>关于安全性的一点说明</p>
<p>安全性如何呢?现在浏览器允许用户提高他们的安全等级，关闭 Javascript  技术，禁用浏览器中的任何选项。在这种情况下，代码无论如何都不会工作。此时必须适当地处理问题，这需要单独的一篇文章来讨论，要放到以后了(这个系列够 长了吧?不用担心，读完之前也许您就掌握了)。现在要编写一段健壮但不够完美的代码，对于掌握 Ajax 来说就很好了。以后我们还将讨论更多的细节。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lynzz.com/web/ajax/ajax/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>轻量级论坛程序bbPress新版上线</title>
		<link>http://www.lynzz.com/bbpress/bbpress1/</link>
		<comments>http://www.lynzz.com/bbpress/bbpress1/#comments</comments>
		<pubDate>Wed, 05 May 2010 14:11:41 +0000</pubDate>
		<dc:creator>LynZz</dc:creator>
				<category><![CDATA[bbpress]]></category>

		<guid isPermaLink="false">http://www.lynzz.com/?p=122</guid>
		<description><![CDATA[作为一款轻量级的论坛程序，bbPress之前一直默默发展，几乎没有任何推广，而且使用范围和使用人数都比较少，但进入2010年一来，WordPress官方逐渐加大对bbPress的投入。这次新版的发布就是一个很好的例子。
bbPress官方在介绍这个论坛程序的时候，着重强调了bbPress遵守网页标准化规则；易用；容易整合；速度快（执行效率高，消耗资源少，访问速度快。）
bbPress官方还介绍说，今后bbPress会继续保持程序的一个轻量级发展路线，而且整个的发展模式会和WordPress一样，通过插件来不断增强bbPress的可用性。当然目前bbPress的插件还比较少。

目前bbPress最新版本是 1.0稳定版。（下载）
bbPress的后台UI和WordPress的一模一样，看样子WordPress+bbPress将会组成黄金搭档。
当你还在为整合WordPress和其他论坛程序的时候，不妨试试bbPress。虽然没有Discuz那么花哨，但功能绝对够用，重要的是，执行效率会高很多。
]]></description>
			<content:encoded><![CDATA[<p>作为一款轻量级的论坛程序，bbPress之前一直默默发展，几乎没有任何推广，而且使用范围和使用人数都比较少，但进入2010年一来，WordPress官方逐渐加大对bbPress的投入。这次新版的发布就是一个很好的例子。</p>
<p>bbPress官方在介绍这个论坛程序的时候，着重强调了bbPress遵守网页标准化规则；易用；容易整合；速度快（执行效率高，消耗资源少，访问速度快。）</p>
<p style="text-align: left;">bbPress官方还介绍说，今后bbPress会继续保持程序的一个轻量级发展路线，而且整个的发展模式会和WordPress一样，通过插件来不断增强bbPress的可用性。当然目前bbPress的插件还比较少。</p>
<p style="text-align: center;"><a href="http://www.lynzz.com/wp-content/uploads/2010/05/bbpress.png"><img class="aligncenter size-full wp-image-125" title="bbpress" src="http://www.lynzz.com/wp-content/uploads/2010/05/bbpress.png" alt="" width="866" height="434" /></a></p>
<p style="text-align: left;">目前bbPress最新版本是 1.0稳定版。（<a href="http://bbpress.org/download/">下载</a>）</p>
<p>bbPress的后台UI和WordPress的一模一样，看样子WordPress+bbPress将会组成黄金搭档。</p>
<p>当你还在为整合WordPress和其他论坛程序的时候，不妨试试bbPress。虽然没有Discuz那么花哨，但功能绝对够用，重要的是，执行效率会高很多。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lynzz.com/bbpress/bbpress1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax简介及其核心组成</title>
		<link>http://www.lynzz.com/web/ajax/ajax-1/</link>
		<comments>http://www.lynzz.com/web/ajax/ajax-1/#comments</comments>
		<pubDate>Wed, 05 May 2010 13:23:34 +0000</pubDate>
		<dc:creator>LynZz</dc:creator>
				<category><![CDATA[ajax]]></category>

		<guid isPermaLink="false">http://www.lynzz.com/?p=117</guid>
		<description><![CDATA[Ajax 由 HTML、Javascript™ 技术、DHTML 和 DOM 组成，这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。本系列的作者是一位 Ajax 专家，他演示了这些技术如何协同工作 —— 从总体概述到细节的讨论 —— 使高效的 Web 开发成为现实。他还揭开了 Ajax 核心概念的神秘面纱，包括 XMLHttpRequest 对象。
五年前，如果不知道 XML，您就是一只无人重视的丑小鸭。十八个月前，Ruby 成了关注的中心，不知道 Ruby 的程序员只能坐冷板凳了。今天，如果想跟上最新的技术时尚，那您的目标就是 Ajax。
但是，Ajax 不仅仅 是一种时尚，它是一种构建网站的强大方法，而且不像学习一种全新的语言那样困难。在详细探讨 Ajax 是什么之前，先让我们花几分钟了解 Ajax 做 什么。目前，编写应用程序时有两种基本的选择：
桌面应用程序
Web 应用程序
两者是类似的，桌面应用程序通常以 CD 为介质(有时候可从网站下载)并完全安装到您的计算机上。桌面应用程序可能使用互联网下载更新，但运行这些应用程序的代码在桌面计算机上。Web 应用程序运行在某处的 Web 服务器上 —— 毫不奇怪，要通过 Web 浏览器访问这种应用程序。

不过，比这些应用程序的运行代码放在何处更重要的是，应用程序如何运转以及如何与其进行交互。桌面应用程序一般很快(就在您的计算机上运行，不用等待互联网连接)，具有漂亮的用户界面(通常和操作系统有关)和非凡的动态性。可以单击、选择、输入、打开菜单和子菜单、到处巡游，基本上不需要等待。
另一方面，Web 应用程序是最新的潮流，它们提供了在桌面上不能实现的服务(比如 Amazon.com 和 eBay)。但是，伴随着 Web 的强大而出现的是等待，等待服务器响应，等待屏幕刷新，等待请求返回和生成新的页面。
显然这样说过于简略了，但基本的概念就是如此。您可能已经猜到，Ajax 尝试建立桌面应用程序的功能和交互性，与不断更新的 Web 应用程序之间的桥梁。可以使用像桌面应用程序中常见的动态用户界面和漂亮的控件，不过是在 Web [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Ajax 由 HTML、Javascript™ 技术、DHTML 和 DOM 组成，这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。本系列的作者是一位 Ajax 专家，他演示了这些技术如何协同工作 —— 从总体概述到细节的讨论 —— 使高效的 Web 开发成为现实。他还揭开了 Ajax 核心概念的神秘面纱，包括 XMLHttpRequest 对象。</p></blockquote>
<p>五年前，如果不知道 XML，您就是一只无人重视的丑小鸭。十八个月前，Ruby 成了关注的中心，不知道 Ruby 的程序员只能坐冷板凳了。今天，如果想跟上最新的技术时尚，那您的目标就是 Ajax。</p>
<p>但是，Ajax 不仅仅 是一种时尚，它是一种构建网站的强大方法，而且不像学习一种全新的语言那样困难。在详细探讨 Ajax 是什么之前，先让我们花几分钟了解 Ajax 做 什么。目前，编写应用程序时有两种基本的选择：</p>
<p>桌面应用程序</p>
<p>Web 应用程序</p>
<p>两者是类似的，桌面应用程序通常以 CD 为介质(有时候可从网站下载)并完全安装到您的计算机上。桌面应用程序可能使用互联网下载更新，但运行这些应用程序的代码在桌面计算机上。Web 应用程序运行在某处的 Web 服务器上 —— 毫不奇怪，要通过 Web 浏览器访问这种应用程序。<br />
<span id="more-117"></span><br />
不过，比这些应用程序的运行代码放在何处更重要的是，应用程序如何运转以及如何与其进行交互。桌面应用程序一般很快(就在您的计算机上运行，不用等待互联网连接)，具有漂亮的用户界面(通常和操作系统有关)和非凡的动态性。可以单击、选择、输入、打开菜单和子菜单、到处巡游，基本上不需要等待。</p>
<p>另一方面，Web 应用程序是最新的潮流，它们提供了在桌面上不能实现的服务(比如 Amazon.com 和 eBay)。但是，伴随着 Web 的强大而出现的是等待，等待服务器响应，等待屏幕刷新，等待请求返回和生成新的页面。</p>
<p>显然这样说过于简略了，但基本的概念就是如此。您可能已经猜到，Ajax 尝试建立桌面应用程序的功能和交互性，与不断更新的 Web 应用程序之间的桥梁。可以使用像桌面应用程序中常见的动态用户界面和漂亮的控件，不过是在 Web 应用程序中。</p>
<p>我们来看看 Ajax 如何将笨拙的 Web 界面转化成能迅速响应的 Ajax 应用程序吧。</p>
<p>老技术，新技巧</p>
<p>在谈到 Ajax 时，实际上涉及到多种技术，要灵活地运用它必须深入了解这些不同的技术(本系列的头几篇文章将分别讨论这些技术)。好消息是您可能已经非常熟悉其中的大部分技术，更好的是这些技术都很容易学习，并不像完整的编程语言(如 Java 或 Ruby)那样困难。</p>
<p>Ajax 的定义</p>
<p>Ajax 是 Asynchronous Javascript and XML(以及 DHTML 等)的缩写。这个短语是 Adaptive Path 的 Jesse James Garrett 发明的(请参阅 参考资料)，按照 Jesse 的解释，这不是 个首字母缩写词。</p>
<p>下面是 Ajax 应用程序所用到的基本技术：</p>
<p>HTML 用于建立 Web 表单并确定应用程序其他部分使用的字段。</p>
<p>Javascript 代码是运行 Ajax 应用程序的核心代码，帮助改进与服务器应用程序的通信。</p>
<p>DHTML 或 Dynamic HTML，用于动态更新表单。我们将使用 div、span 和其他动态 HTML 元素来标记 HTML。</p>
<p>文档对象模型 DOM 用于(通过 Javascript 代码)处理 HTML 结构和(某些情况下)服务器返回的 XML。</p>
<p>我们来进一步分析这些技术的职责。以后的文章中我将深入讨论这些技术，目前只要熟悉这些组件和技术就可以了。对这些代码越熟悉，就越容易从对这些技术的零散了解转变到真正把握这些技术(同时也真正打开了 Web 应用程序开发的大门)。</p>
<p>XMLHttpRequest 对象</p>
<p>要了解的一个对象可能对您来说也是最陌生的，即 XMLHttpRequest。这是一个 Javascript 对象，创建该对象很简单，如清单 1 所示。</p>
<p>清单 1. 创建新的 XMLHttpRequest 对象</p>
<p>现在要知道这是处理所有服务器通信的对象。继续阅读之前，先停下来想一想：通过 XMLHttpRequest 对象与服务器进行对话的是 Javascript 技术。这不是一般的应用程序流，这恰恰是 Ajax 的强大功能的来源。</p>
<p>在一般的 Web 应用程序中，用户填写表单字段并单击 Submit 按钮。然后整个表单发送到服务器，服务器将它转发给处理表单的脚本(通常是 PHP 或 Java，也可能是 CGI 进程或者类似的东西)，脚本执行完成后再发送回全新的页面。该页面可能是带有已经填充某些数据的新表单的 HTML，也可能是确认页面，或者是具有根据原来表单中输入数据选择的某些选项的页面。当然，在服务器上的脚本或程序处理和返回新表单时用户必须等待。屏幕变成一片空白，等到服务器返回数据后再重新绘制。这就是交互性差的原因，用户得不到立即反馈，因此感觉不同于桌面应用程序。</p>
<p>Ajax 基本上就是把 Javascript 技术和 XMLHttpRequest 对象放在 Web 表单和服务器之间。当用户填写表单时，数据发送给一些 Javascript 代码而不是 直接发送给服务器。相反，Javascript 代码捕获表单数据并向服务器发送请求。同时用户屏幕上的表单也不会闪烁、消失或延迟。换句话说，Javascript 代码在幕后发送请求，用户甚至不知道请求的发出。更好的是，请求是异步发送的，就是说 Javascript 代码(和用户)不用等待服务器的响应。因此用户可以继续输入数据、滚动屏幕和使用应用程序。</p>
<p>然后，服务器将数据返回 Javascript 代码(仍然在 Web 表单中)，后者决定如何处理这些数据。它可以迅速更新表单数据，让人感觉应用程序是立即完成的，表单没有提交或刷新而用户得到了新数据。 Javascript 代码甚至可以对收到的数据执行某种计算，再发送另一个请求，完全不需要用户干预!这就是 XMLHttpRequest 的强大之处。它可以根据需要自行与服务器进行交互，用户甚至可以完全不知道幕后发生的一切。结果就是类似于桌面应用程序的动态、快速响应、高交互性的体验，但是背后又拥有互联网的全部强大力量。</p>
<p>加入一些 Javascript</p>
<p>得到 XMLHttpRequest 的句柄后，其他的 Javascript 代码就非常简单了。事实上，我们将使用 Javascript 代码完成非常基本的任务：获取表单数据：Javascript 代码很容易从 HTML 表单中抽取数据并发送到服务器。</p>
<p>修改表单上的数据：更新表单也很简单，从设置字段值到迅速替换图像。</p>
<p>解析 HTML 和 XML：使用 Javascript 代码操纵 DOM(请参阅 下一节)，处理 HTML 表单服务器返回的 XML 数据的结构。</p>
<p>对于前两点，需要非常熟悉 getElementById() 方法，如 清单 2 所示。</p>
<p>清单 2. 用 Javascript 代码捕获和设置字段值</p>
<p>// Get the value of the &#8220;phone&#8221; field and stuff it in a variable called phone<br />
var phone = document.getElementById(&#8220;phone&#8221;).value;<br />
// Set some values on a form using an array called response<br />
document.getElementById(&#8220;order&#8221;).value = response[0];<br />
document.getElementById(&#8220;address&#8221;).value = response[1];</p>
<p>这里没有特别需要注意的地方，真是好极了!您应该认识到这里并没有非常复杂的东西。只要掌握了 XMLHttpRequest，Ajax 应用程序的其他部分就是如 清单 2 所示的简单 Javascript 代码了，混合有少量的 HTML。同时，还要用一点儿 DOM，我们就来看看吧。</p>
<p>以 DOM 结束</p>
<p>最后还有 DOM，即文档对象模型。可能对有些读者来说 DOM 有点儿令人生畏，HTML 设计者很少使用它，即使 Javascript 程序员也不大用到它，除非要完成某项高端编程任务。大量使用 DOM 的是 复杂的 Java 和 C/C++ 程序，这可能就是 DOM 被认为难以学习的原因。</p>
<p>幸运的是，在 Javascript 技术中使用 DOM 很容易，也非常直观。现在，按照常规也许应该说明如何使用 DOM，或者至少要给出一些示例代码，但这样做也可能误导您。即使不理会 DOM，仍然能深入地探讨 Ajax，这也是我准备采用的方法。以后的文章将再次讨论 DOM，现在只要知道可能需要 DOM 就可以了。当需要在 Javascript 代码和服务器之间传递 XML 和改变 HTML 表单的时候，我们再深入研究 DOM。没有它也能做一些有趣的工作，因此现在就把 DOM 放到一边吧。</p>
<p>获取 Request 对象</p>
<p>有了上面的基础知识后，我们来看看一些具体的例子。XMLHttpRequest 是 Ajax 应用程序的核心，而且对很多读者来说可能还比较陌生，我们就从这里开始吧。从 清单 1 可以看出，创建和使用这个对象非常简单，不是吗?等一等。</p>
<p>还记得几年前的那些讨厌的浏览器战争吗?没有一样东西在不同的浏览器上得到同样的结果。不管您是否相信，这些战争仍然在继续，虽然规模较小。但令人奇怪的是，XMLHttpRequest 成了这场战争的牺牲品之一。因此获得 XMLHttpRequest 对象可能需要采用不同的方法。下面我将详细地进行解释。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lynzz.com/web/ajax/ajax-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个男人关心的东西决定他的层次(转)</title>
		<link>http://www.lynzz.com/everyday/mans-concern-decide-level/</link>
		<comments>http://www.lynzz.com/everyday/mans-concern-decide-level/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 14:04:34 +0000</pubDate>
		<dc:creator>LynZz</dc:creator>
				<category><![CDATA[My Everyday]]></category>

		<guid isPermaLink="false">http://www.lynzz.com/?p=111</guid>
		<description><![CDATA[一、拥有自信和风度
男人到了二十几岁后，就要开始学着用心去经营自己了，他体现在自己的思想和涵  养上。自信是一个男人最重要的品质，自信的男人就像一只在暴风雨中战斗的海鸥。海鸥所要说的只有一句话：“让暴风雨来的更猛烈些吧！” 只因为他无所畏  惧。一个自信的男人，总是能够感染别人，无论这些人是朋友还是敌人。要使别人对你有信心，就必须要先对自己充满信息。自信的男人可以战胜一切困难。
一个有风度的男人就像一片大海，不拒点滴，又包容江河。有风度使男人得到更多  的青睐。不争眼前才能够放眼全世界，给予别人才能够受益无穷。正所谓“宰相肚里能撑船”，一个心如大海的男人，肚中不知能撑多少船呀！风度翩翩让男人看上  去潇洒万千。

二、养成看书和写作的习惯
男人到了二十几岁后，就开始要走入社会了，在与别人交往的过程中，谈吐和修养  是最能征服别人的。一个有知识的男人一定是常看书的，一个有智慧的男人一定是常写作的。无论自己多忙，都要抽出时间来看看书，写写文章。因为这样做能够改  变一个男人的思想与行为。一个男人要改变自己思想首先要做的就是读一本好书，读一本书就像交了一个好朋友，他能够帮助你走好自己的路。读书的生活是最丰富  多彩的，写作的时光是最能启迪智慧的。
喜欢看书和写作的男人，一定能够培养出一个好的心态。因为知识与智慧的海洋是  无边无际的，但喜欢看书和写作的男人却能做到执著追求。追求是一个男人的思想，也是一个男人的行动，永不放弃的追求，无时不刻的在激励着男人去战斗。这种  战斗使一个男人能够经历风雨的洗礼，成长为一棵参天大树。读书使男人变得冷静，写作使男人变得成熟。
三、要试着发现生活里的真、善、美
男人到了二十几岁后，就要学会如何去面对生活。什么是“真”，现在的男人越来  越不懂，那是因为现在的男人都很浮躁，他们不懂什么才是“真心”的去生活。“真”，就是对自己实事求是，不要骗自己，也不要骗别人，“真”，就是诚实做  人，诚实做事，诚实的男人最可爱。
“善”，自然是善良的意思了。善待别人，就是在善待自己的生活。“善”其实就  在我们每一个人的身边，不要为难别人，不要挖苦别人，不要侮辱别人，就是善良的行为。有时你的一点点善意就能结出一个善果，使你的生活因此而变得幸福。
哲人说，“生活中本不缺少美，缺少的是发信啊美的眼睛”。是的，生活也的确是  如此。不要总惦记着自己的不幸，这样做只能使你生活的更加不幸。你觉得“不幸”是因为你无法乐观的面对生活，生活总是充满着希望的。只要你常常抬抬头，看  看阳光，你就能感受到温暖。在温暖中乐观地去追求美好的人生，你自然能够发现美。
四、与有思想的人交朋友
男人到了二十 几岁后，就要开始有目的性的去选择朋友了。社会中的人脉关系是非  常重要的，你的朋友圈子将对你的人生起着很大的影响。男人要广交朋友，多交诤友，不交损友。所谓诤友就是那些对你有帮助的朋友，而这些人往往自身也很优  秀。多交诤友对一个人的生活、工作都是非常有益的。但真正的诤友也不易结交，因为这种朋友需要你付出极大的真诚，发自内心的真诚。
有思想 的朋友，他很清楚你有没有把他当做朋友。如果你只是在利用他，他在心中  是不会把你当做朋友来看待的。交朋友有时并没有什么目的性，你只是觉得这个人很有思想，值得你与之结交。但往往就是这些有思想的朋友，在你最困难的时候向  你伸出他的手。朋友，是一个男人生命中最重要的元素之一。一个男人要想使自己像一个真正的男人那样活着，就一定要广交朋友，多交诤友。
五、 必须改掉自身的不良习惯
男人到了二十几岁后，就必须要改掉自己的不良习惯。不良的习惯是养成的，良好  的习惯也是养成的。培养自己拥有良好的习惯，就是在改掉自身的不良习惯。如果一个男人到了二十几岁后，身上还有这样那样的不良习惯，那就是意见非常糟糕的  事情了。这些不良的习惯会阻碍你人生的发展，生活会因此而失去不少光彩，事业也会因此难以取得更大的成功。
如果你到现在还爱睡懒觉，那 么清晨的第一抹阳光永远也不会照到你的笑脸上。如  果你到现在还总是拖拖拉拉的，那么用将永远无法站在冠军的位置上。如果你到现在还不会主动的去学习和工作，那么你的前途只能是一片暗淡无光的灰色。我相信  没有哪一个男人想要灰色的人生，所有的男人都期望自己能有哟个绚丽多彩的人生。所以为了使自己的人生绚丽多彩，男人到了二十几岁后，就必须改掉自身的不良 习惯。
六、学会忍耐与宽容
男人到了二十几岁后，就要学会忍耐与宽容。在社会中常有许多你无法接受的事  情，但这些事情你又不得不接受时，这就需要你的忍耐。忍耐别人其实也是在宽容别人，一个能够宽容别人的男人会显得很大度。成功的男人往往也是一个能够忍辱  负重的男人。耐得住寂寞的男人从不甘寂寞，男人的忍耐是为了更好的爆发。
对那些说我们是傻瓜的人，说一句“我就是傻瓜”，使他们不知所 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>一、拥有自信和风度</strong></p>
<p>男人到了二十几岁后，就要开始学着用心去经营自己了，他体现在自己的思想和涵  养上。自信是一个男人最重要的品质，自信的男人就像一只在暴风雨中战斗的海鸥。海鸥所要说的只有一句话：“让暴风雨来的更猛烈些吧！” 只因为他无所畏  惧。一个自信的男人，总是能够感染别人，无论这些人是朋友还是敌人。要使别人对你有信心，就必须要先对自己充满信息。自信的男人可以战胜一切困难。</p>
<p>一个有风度的男人就像一片大海，不拒点滴，又包容江河。有风度使男人得到更多  的青睐。不争眼前才能够放眼全世界，给予别人才能够受益无穷。正所谓“宰相肚里能撑船”，一个心如大海的男人，肚中不知能撑多少船呀！风度翩翩让男人看上  去潇洒万千。<br />
<span id="more-111"></span><br />
<strong>二、养成看书和写作的习惯</strong></p>
<p>男人到了二十几岁后，就开始要走入社会了，在与别人交往的过程中，谈吐和修养  是最能征服别人的。一个有知识的男人一定是常看书的，一个有智慧的男人一定是常写作的。无论自己多忙，都要抽出时间来看看书，写写文章。因为这样做能够改  变一个男人的思想与行为。一个男人要改变自己思想首先要做的就是读一本好书，读一本书就像交了一个好朋友，他能够帮助你走好自己的路。读书的生活是最丰富  多彩的，写作的时光是最能启迪智慧的。</p>
<p>喜欢看书和写作的男人，一定能够培养出一个好的心态。因为知识与智慧的海洋是  无边无际的，但喜欢看书和写作的男人却能做到执著追求。追求是一个男人的思想，也是一个男人的行动，永不放弃的追求，无时不刻的在激励着男人去战斗。这种  战斗使一个男人能够经历风雨的洗礼，成长为一棵参天大树。读书使男人变得冷静，写作使男人变得成熟。</p>
<p><strong>三、要试着发现生活里的真、善、美</strong></p>
<p>男人到了二十几岁后，就要学会如何去面对生活。什么是“真”，现在的男人越来  越不懂，那是因为现在的男人都很浮躁，他们不懂什么才是“真心”的去生活。“真”，就是对自己实事求是，不要骗自己，也不要骗别人，“真”，就是诚实做  人，诚实做事，诚实的男人最可爱。</p>
<p>“善”，自然是善良的意思了。善待别人，就是在善待自己的生活。“善”其实就  在我们每一个人的身边，不要为难别人，不要挖苦别人，不要侮辱别人，就是善良的行为。有时你的一点点善意就能结出一个善果，使你的生活因此而变得幸福。</p>
<p>哲人说，“生活中本不缺少美，缺少的是发信啊美的眼睛”。是的，生活也的确是  如此。不要总惦记着自己的不幸，这样做只能使你生活的更加不幸。你觉得“不幸”是因为你无法乐观的面对生活，生活总是充满着希望的。只要你常常抬抬头，看  看阳光，你就能感受到温暖。在温暖中乐观地去追求美好的人生，你自然能够发现美。</p>
<p><strong>四、与有思想的人交朋友</strong></p>
<p>男人到了二十 几岁后，就要开始有目的性的去选择朋友了。社会中的人脉关系是非  常重要的，你的朋友圈子将对你的人生起着很大的影响。男人要广交朋友，多交诤友，不交损友。所谓诤友就是那些对你有帮助的朋友，而这些人往往自身也很优  秀。多交诤友对一个人的生活、工作都是非常有益的。但真正的诤友也不易结交，因为这种朋友需要你付出极大的真诚，发自内心的真诚。</p>
<p>有思想 的朋友，他很清楚你有没有把他当做朋友。如果你只是在利用他，他在心中  是不会把你当做朋友来看待的。交朋友有时并没有什么目的性，你只是觉得这个人很有思想，值得你与之结交。但往往就是这些有思想的朋友，在你最困难的时候向  你伸出他的手。朋友，是一个男人生命中最重要的元素之一。一个男人要想使自己像一个真正的男人那样活着，就一定要广交朋友，多交诤友。</p>
<p><strong>五、 必须改掉自身的不良习惯</strong></p>
<p>男人到了二十几岁后，就必须要改掉自己的不良习惯。不良的习惯是养成的，良好  的习惯也是养成的。培养自己拥有良好的习惯，就是在改掉自身的不良习惯。如果一个男人到了二十几岁后，身上还有这样那样的不良习惯，那就是意见非常糟糕的  事情了。这些不良的习惯会阻碍你人生的发展，生活会因此而失去不少光彩，事业也会因此难以取得更大的成功。</p>
<p>如果你到现在还爱睡懒觉，那 么清晨的第一抹阳光永远也不会照到你的笑脸上。如  果你到现在还总是拖拖拉拉的，那么用将永远无法站在冠军的位置上。如果你到现在还不会主动的去学习和工作，那么你的前途只能是一片暗淡无光的灰色。我相信  没有哪一个男人想要灰色的人生，所有的男人都期望自己能有哟个绚丽多彩的人生。所以为了使自己的人生绚丽多彩，男人到了二十几岁后，就必须改掉自身的不良 习惯。</p>
<p><strong>六、学会忍耐与宽容</strong></p>
<p>男人到了二十几岁后，就要学会忍耐与宽容。在社会中常有许多你无法接受的事  情，但这些事情你又不得不接受时，这就需要你的忍耐。忍耐别人其实也是在宽容别人，一个能够宽容别人的男人会显得很大度。成功的男人往往也是一个能够忍辱  负重的男人。耐得住寂寞的男人从不甘寂寞，男人的忍耐是为了更好的爆发。</p>
<p>对那些说我们是傻瓜的人，说一句“我就是傻瓜”，使他们不知所 措吧！对于那些  无故指责我们的人，不要与他们争论，因为这样只会使自己变得愤怒。与其伤害别人，不如去宽容别人，宽容是治疗他人伤口最好的灵丹妙药。</p>
<p><strong>七、 保持良好的心态，重视自己的身体</strong></p>
<p>男人到了二十几岁后，就要学会调节自己的心态，重视自己的身体。身体是革命的  本钱，心态是验钞机。男人要想获取更多的财富就要拥有一副强健的体魄，男人要想长久的做首富就要拥有一种积极乐观的心态。注意饮食，经常锻炼，充足的睡  眠，是健康身体的保证。不要患得患失，勤奋拼搏，让心态决定一切。</p>
<p>你可以不用天天去晨跑，其实那也不会占用你多长的时间，需要的只是恒心 和毅  力。但你一定要时常去运动一下你的身体，散步是一种不错的选择，这样做会使你充满力量。你在冬天可以不用冷水洗澡，其实那也没有什么大不了的，因为我也曾  坚持过一个冬天。但你在冬天一定要经常用冷水洗洗脸，这样做不仅可以防止感冒，还能保持一个清醒的头脑。你可以失败，但你永远要保持一种求胜的心态，战胜  自己你就没有敌人。</p>
<p><strong>八、时刻保持你的微笑，让礼貌成为你的名片</strong></p>
<p>男人到了二十几岁后，要时刻保持你的微笑。笑脸迎人，说 明你是一个善良的人，  所有的人都愿意与善良的人打交道。不要把苦闷写在你的脸上，这样只会使别人远离你。你是什么样的人，别人通过你是否微笑着与他打招呼来判断。而这种判断对  你在人家心中的印象起着很重要的作用。</p>
<p>人们常说“细节决定成败”，而这细节往往就反应在你是不是一个有礼貌的人。有  礼貌的人，知道关心别人。别人也会因为你的礼貌与关心，而给你走向成功的机会。男人的名片是微笑与礼貌，它是男人成就事业的通行证。</p>
<p><strong>九、 追求一个真正爱的女人，你一辈子也不会后悔</strong></p>
<p>男人到了二十几岁后，慢慢地就会极渴望爱情。这是非常正确的事情，千万不要压  抑自己这种发自内心的情感。一个男人最傻最可爱的时候就是当他爱上了一个女人的时候。当你爱上一个女人却不知道她会不会爱上你的时候，你一定要选择一个恰  当的时间向她表白，女人最渴望的一定是一个深爱着她的男人。</p>
<p>爱情这种事不能强求，男人一定要明白。千万不要因为得不到你的爱情就让你的 友  情轻易的失去，能与一个自己曾经爱过的女人成为朋友是一件不可多得的好事。爱情之所以神圣不可侵犯，是因为它是人最心甘情愿的选择，它体现了人与人之间的  尊重与信任，所以男人一定要尊重你爱着的那个女人的选择，相信她的选择是为了她自己的幸福而做出的决定。只要你曾经追求一个自己真正爱的女人，那么你一辈  子也不会后悔。</p>
<p><strong>十、为了自己的事业付出一切</strong></p>
<p>男人到了二十几岁后，一定要为了自己的事业去努力拼搏。男人最重要的就是事  业，没有事业的男人不能算作真正的男人，男人的事业不一定要轰轰烈烈，但一定要有所成就，能使自己感到骄傲和自豪。一个事业心强的男人，也是一个求胜心和  责任心同样强的男人。求胜心强的男人，从不甘平庸。责任心强的男人，从不惧困难，男人因自己成功的事业而变得高大，从而获得别人的尊重和信任。</p>
<p>作 为一个男人，就要为了自己的事业付出一切。要想成功你必须付出，而付出就意  味你要失去一些东西。如果你不想为事业付出任何代价，那么你只能失去更多的东西，而且最后还是一无所获。</p>
<p><strong>十一、爱情跟事业是可以共同拥有的</strong></p>
<p>男人到了二十几岁后，就应该努力做到爱情跟事业双丰收。人们常说一个男人如果  选择了爱情就会失去事业，如果选择了事业就得不到爱情。我却偏偏不这样认为，我反而觉得爱情越甜蜜的男人，事业越成功。其实爱情和事业本就是两回事，爱的  轰轰烈烈的男人，一点也不会妨碍其获得成功的事业。一个有爱情滋润的男人一定比一个不知爱情是什么味道的男人更成熟，更有魅力，更有干一番事业的决心。</p>
<p>二十几岁的男人们，千万不要相信那些偏激的人所说的话。就像人们常说的“婚姻  是爱情的坟墓”，这种说法太偏激了。婚姻与爱情的区别只是多了些“柴米油盐”，可以说婚姻才是一种完整的爱情，之前的爱情只是处在一种恋爱的阶段。也只有  通过婚姻才能使男人与女人彻底的认识什么是爱情。爱情就是相互理解，相互鼓励，相互支持。在生活上彼此帮助，在事业上彼此帮助，让爱情跟事业可以双丰收。</p>
<p><strong>十二、一定要努力比女人做的更好</strong></p>
<p>男人到了二十几岁后，在任何事上一定要努力比女人做的更好。即使在一些不可能  比女人做的更好的事情上，也要努力做的和女人一样好。在这里不是说男人天生就应该比女人强，而是要说男人天生就应该比女人做的更好。因为只要女人努力了，  就很容易超越男人，所以男人应该知道努力比女人做的更好是天经地义的事情。在如今的社会，女人的地位越来越高了，女人第一次有了选择男人的权力。所以如果  作为男人的你，不能比女人做的更好，那么女人凭什么选择你呢？</p>
<p>女人们常说“女人能顶半边天”，而且现在的女人在本属于男人的某些领域里 比男  人做的更出色。所以男人不仅要在属于自己的领域里做的非常出色，而且也要能在本属于女人的领域里做得一样出色。</p>
<p><strong>十三、努力帮妻子实现她的梦想</strong></p>
<p>男人到了二十几岁后，如果你已经结婚了，那就请你一定要努力帮自己的妻子实现  她的梦想。人们常说“男人靠征服世界来征服女人，女人靠征服男人来征服世界”，所以一个已经征服了你的女人，你一定要努力帮她征服世界。女人的梦想从不会  因为和一个男人生活在一起而消失掉，只会因此而变得更加强烈。女人这种强烈的愿望和梦想也许不会表现在你的面前，但你的心中一定要明白。</p>
<p>妻子是一个男人生命的核心，妻子生活得是否幸福，男人一定要关系。不要以为妻  子娶回家，就是来为你服务的。每一个男人的妻子都会关心自己的丈夫，每一个男人也要学会关心自己的妻子。而最关心妻子的事，莫过于关心她的梦想是什么，怎  么样做才能帮妻子实现她的梦想。</p>
<p><strong>十四、学会勇敢一些，去承担起自己的责任</strong></p>
<p>男人到了二十几岁后，要学会勇敢一些担起自己 的肩膀去承担起属于自己的那份义  不容辞的责任。孝顺父母是一个男人的责任，疼爱妻儿是一个男人的责任，成就事业也是一个男人的责任。男人的责任不外乎家庭和事业。这些责任的确比较沉重，  但作为一个男人你必须担起自己的肩膀去承担。没有什么原因，只因为你是一个男人。</p>
<p>男人一样有权力哭泣，但却没有权力哭出声音来。男人一 样有权力流泪，但却没有  权力在父母妻儿面前流泪。男人一样有权力放弃，但却没有权力放弃家庭和事业上上的责任。作为一个男人，你别无选择，你只能选择承担，用你的肩膀去承担。</p>
<p><strong>十五、永远不要放弃自己，相信自己一定能行</strong></p>
<p>男人到了二十几岁后，就必须做到永远不要放弃自己。别人之所以放弃你，那就因  为你已经放弃了自己。相信只要你不放弃自己，没有哪个人会放弃你或者说没有哪个人能放弃你。相信自己是一个男人战胜一切的力量之源，不相信自己的男人没有  成功的理由，因为他的一脚已经跨到了失败的坟墓中。</p>
<p>有一句广告语，这样说“相信自己，力量在心中”。还有一句广告语，这样说“我 能”。是的，我想，我也相信只要每一个男人能够做到相信自己，你就一定能行。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lynzz.com/everyday/mans-concern-decide-level/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE PNG Fix 2.0解决ie6不透明</title>
		<link>http://www.lynzz.com/web/js/ie-png-fix-2-0-to-ie/</link>
		<comments>http://www.lynzz.com/web/js/ie-png-fix-2-0-to-ie/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 12:53:13 +0000</pubDate>
		<dc:creator>LynZz</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ie6不透明]]></category>
		<category><![CDATA[iepngfix]]></category>

		<guid isPermaLink="false">http://www.lynzz.com/?p=108</guid>
		<description><![CDATA[我们知道，ie6并不支持图片的透明，这在用css sprites时是很不方便的，今天推荐一个解决ie6不透明的方法。
ie png fix 2.0,这个包可解决ie5.5和ie6图片的不透明，你只要在css文件里，添加一行代码就行，不管是&#60;IMG&#62; tags 还是background images都支持。

首先下载iepngfix包。
1，下载包后，找到iepngfix.htc 和blank.gif两文件放到你网站目录下。
2，把下面代码复制，粘贴到你的css文件或html文件，
&#60;style type="text/css"&#62;
img, div, a, input { behavior:  url(/css/resources/iepngfix.htc) }
&#60;/style&#62;
其中，img,div,a,input是在ie6下图片不透明的标签。
3，如果，iepngfix.htc 和blank.gif放在不同目录中，比如，你把blank.gif放在images目录下，iepngfix.htc放在css目录下，
放的代码就是像如下：
&#60;style type="text/css"&#62;
img, div, a, input { behavior:  url(/css/iepngfix.htc) }
&#60;/style&#62; 
还有要打开iepngfix.htc文件（用文本编辑器像UltraEdit打开），修改blankImg，像这样：
IEPNGFix.blankImg = '/images/blank.gif';
4，如果你想支持CSS1 background-repeat 和 background-position，就要在文件头部添加如下的js文件：
&#60;script type="text/javascript"  src="iepngfix_tilebg.js"&#62;&#60;/script&#62;
当然还有其它方案，
a，Unit PNG Fix
b，DD_belatedPNG
]]></description>
			<content:encoded><![CDATA[<p>我们知道，ie6并不支持图片的透明，这在用css sprites时是很不方便的，今天推荐一个解决ie6不透明的方法。</p>
<p><a title="iepngfix2.0" href="http://www.twinhelix.com/css/iepngfix/" target="_blank">ie png fix 2.0</a>,这个包可解决ie5.5和ie6图片的不透明，你只要在css文件里，添加一行代码就行，不管是&lt;IMG&gt; tags 还是background images都支持。<br />
<span id="more-108"></span><br />
首先下载<a title="iepngfix下载地址" href="http://www.twinhelix.com/css/iepngfix/iepngfix.zip" target="_self">iepngfix</a>包。</p>
<p>1，下载包后，找到<span style="color: #333399;"><code>iepngfix.htc</code></span> 和<code><span style="color: #333399;">blank.gif</span>两文件放到你网站目录下。</code></p>
<p>2，把下面代码复制，粘贴到你的css文件或html文件，</p>
<p><code>&lt;style type="text/css"&gt;<br />
img, div, a, input { behavior:  url(/css/resources/iepngfix.htc) }<br />
&lt;/style&gt;</code></p>
<p>其中，img,div,a,input是在ie6下图片不透明的标签。</p>
<p>3，如果，<code>iepngfix.htc</code> 和<code>blank.gif放在不同目录中，比如，你把blank.gif放在images目录下，</code><code>iepngfix.htc放在css目录下，</code></p>
<p>放的代码就是像如下：</p>
<p><code>&lt;style type="text/css"&gt;<br />
img, div, a, input { behavior:  url(/css/iepngfix.htc) }<br />
&lt;/style&gt; </code></p>
<p>还有要打开<code>iepngfix.htc文件（用文本编辑器像UltraEdit打开），修改</code><span style="color: #333399;"><code>blankImg，<span style="color: #000000;">像这样：</span></code></span></p>
<p><code>IEPNGFix.blankImg = '/images/blank.gif';</code></p>
<p>4，如果你想支持CSS1 background-repeat 和 background-position，就要在文件头部添加如下的js文件：</p>
<p><code>&lt;script type="text/javascript"  src="iepngfix_tilebg.js"&gt;&lt;/script&gt;</code></p>
<p><span style="color: #333399;"><span style="color: #ff0000;">当然还有其它方案，</span></span></p>
<p><span style="color: #000000;">a，</span><a title="unit-png-fix" href="http://unitinteractive.com/labs/unitpngfix.php" target="_blank">Unit PNG Fix</a></p>
<p>b，<a title="dd-belatedpng" href="http://www.dillerdesign.com/experiment/DD_belatedPNG/" target="_blank">DD_belatedPNG</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lynzz.com/web/js/ie-png-fix-2-0-to-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP初学者常见问题集（21问答）</title>
		<link>http://www.lynzz.com/php/php-studyer-21-question/</link>
		<comments>http://www.lynzz.com/php/php-studyer-21-question/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 13:59:47 +0000</pubDate>
		<dc:creator>LynZz</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.lynzz.com/?p=99</guid>
		<description><![CDATA[1，如何连接连两个字符串？
答：在php中连接两个字符串可以直接使用“.”操作符号，例如$newStr=&#8221;Zhang&#8221;.&#8221;san&#8221;，在java中是使用“+”操作符号，不要混 淆。
2，如何计算一个字符串的长度？
答：$str=&#8221;test&#8221;;$length=strlen($str);即使用strlen(str)函数。
3，如何按照某个分割符拆分一个字符串？
答：使用explode(delim,str)函数，例如$arr=explode(&#8220;::&#8221;,&#8221;a::bdf::dfsdf&#8221;);该函数返回一个数组。 在java中可以使用String对象的split函数。
4，如何获取http请求中的参数值？
答：如果为GET请求，使用$_GET[paramName]，如果为POST请求，使用$_POST[paramName]，例 如：$email=$_POST["usermail"]。

5，php中是否可以像Java一样使用类？
答：可以，但是机制和具体使用方式可能不太一样。
6，是否可以举一个使用for循环的例子？
答：for($i=0;$i&#60;100;$i++){
echo $i;
}
7，如何在javascript中取得php中的变量？
答：例子如下：
&#60;?php
$username=$_POST["username"];
?&#62;
&#60;script&#62;
var username=&#8221;&#60;?php echo $username ?&#62;&#8221;;
&#60;/script&#62;
8，如何删除一个文件？
答：使用unlink(filename)函数，当然程序必须有权限删除该文件才可以，我们所使用的php虚拟空间可能对一
些文件是有限制的，所以可能会出现权限错误。
9，我定义了一个类User，声明了该类的一个方法getName()，为什么我使用$user=new  User;$name=$user.getName()会报错？
答：注意php中对类成员的引用方式，上面的引用应该为$name=$user-&#62;getName()，即使用-&#62;符号，而不是
Java中使用的“.”号。
10，我申请了一个不带mysql支持的php虚拟空间，请问我该怎么存取应用数据啊？
答：存取数据不一定要使用数据库，使用文件系统也是不错的，另外即使使用数据库，也不一定非要使用像mysql
、oracle等的这样的数据库，也可以使用一些文本数据库，例如txtsql，这样的话就不必去租用费用比较高的mysql
数据库空间了。
11，我申请了一个不带数据库的php空间，我现在的应用数据是存在文件中的，但是这会有一个安全问题，就是
访问者可以通过url查看到这些文件的内容，我怎么保护这些文件内容呢？
答：建议的方式有三种：
1）如果你租用的php空间允许设置目录的http访问权限，那么设置一下即可。
2）可以对文件内容进行加密，那么即使被下载，也没有多大的价值。
3）可以将这些文件的后缀改为.php，即使用php文件存储应用信息，这样的话，访问者就无法通过http访问到
这些文件的真实内容了，当然这些文件中的内容必须是正确的php语法，而且内容要使用php语法中的隐藏语法
将信息隐藏起来，例如一个存放帐号信息的文件如下：
users.php
&#60;?php
/*
:::user1:password1::user2:password2::user3:password3:::
*/
?&#62;
12， 如何对一个字符串进行转码？
使用php的iconv函数，签名为：
$str=iconv(fromEncode,toEncode,str);
例如：
$str=&#8221;php字符串转码&#8221;;
$str=iconv(&#8220;utf-8&#8243;,&#8221;gbk&#8221;,$str);//将字符串从utf-8格式转换为gbk格式
转码是很重要的一个问题，例如目前许多博客提供的rss都是utf-8返回的，因此需要通过转化才能正确显示。
13，如何读取一个网页的HTML内容？
PHP中文件的概念和Java中文件流的概念是类似的，许多文件读取的函数，其接受的输入流不仅仅是本地文件系统，也可以是网络文件，下面介绍其中的一种 方式：
function getRssContent($url){
$handle = fopen ($url, &#8220;rb&#8221;);
$contents = &#8220;&#8221;;
$count=0;
do {
$data = fread($handle, 1000000);
$count++;
if (strlen($data) == 0) {
break;
}
$contents .= $data;
} while(true);
fclose ($handle);
return $contents;
}
14，PHP中如何操作mysql数据库？
为了方便初学者能够上手mysql的操作，我介绍一些常用的操作：
1）数据库连接与关闭
$dbhost = &#8220;&#8221;;
$dbuser = &#8220;&#8221;;
$dbpw = &#8220;&#8221;;
$dbname = &#8220;&#8221;;
$link = mysql_connect($dbhost, $dbuser, $dbpw) or die(&#8220;Could not  connect: &#8220;.mysql_error());
mysql_select_db($dbname);
&#8230;//此处是对数据库具体的操作，后面的例子不再写数据库的连接和关闭操作
mysql_close($link);
2）向表中插入新数据
mysql_query(&#8220;insert into mytable(id,name)  values(&#8216;&#8221;.$id.&#8221;&#8216;,&#8217;&#8221;.$name.&#8221;&#8216;)&#8221;);
上面是向mytable表的id和name字段插入一条数据。
3）从表中查询数据
$rs=mysql_query(&#8220;select [...]]]></description>
			<content:encoded><![CDATA[<p>1，如何连接连两个字符串？<br />
答：在php中连接两个字符串可以直接使用“.”操作符号，例如$newStr=&#8221;Zhang&#8221;.&#8221;san&#8221;，在java中是使用“+”操作符号，不要混 淆。</p>
<p>2，如何计算一个字符串的长度？<br />
答：$str=&#8221;test&#8221;;$length=strlen($str);即使用strlen(str)函数。</p>
<p>3，如何按照某个分割符拆分一个字符串？<br />
答：使用explode(delim,str)函数，例如$arr=explode(&#8220;::&#8221;,&#8221;a::bdf::dfsdf&#8221;);该函数返回一个数组。 在java中可以使用String对象的split函数。</p>
<p>4，如何获取http请求中的参数值？<br />
答：如果为GET请求，使用$_GET[paramName]，如果为POST请求，使用$_POST[paramName]，例 如：$email=$_POST["usermail"]。<br />
<span id="more-99"></span><br />
5，php中是否可以像Java一样使用类？<br />
答：可以，但是机制和具体使用方式可能不太一样。</p>
<p>6，是否可以举一个使用for循环的例子？<br />
答：for($i=0;$i&lt;100;$i++){<br />
echo $i;<br />
}</p>
<p>7，如何在javascript中取得php中的变量？<br />
答：例子如下：<br />
&lt;?php<br />
$username=$_POST["username"];<br />
?&gt;<br />
&lt;script&gt;<br />
var username=&#8221;&lt;?php echo $username ?&gt;&#8221;;<br />
&lt;/script&gt;</p>
<p>8，如何删除一个文件？<br />
答：使用unlink(filename)函数，当然程序必须有权限删除该文件才可以，我们所使用的php虚拟空间可能对一<br />
些文件是有限制的，所以可能会出现权限错误。</p>
<p>9，我定义了一个类User，声明了该类的一个方法getName()，为什么我使用$user=new  User;$name=$user.getName()会报错？<br />
答：注意php中对类成员的引用方式，上面的引用应该为$name=$user-&gt;getName()，即使用-&gt;符号，而不是<br />
Java中使用的“.”号。</p>
<p>10，我申请了一个不带mysql支持的php虚拟空间，请问我该怎么存取应用数据啊？<br />
答：存取数据不一定要使用数据库，使用文件系统也是不错的，另外即使使用数据库，也不一定非要使用像mysql<br />
、oracle等的这样的数据库，也可以使用一些文本数据库，例如txtsql，这样的话就不必去租用费用比较高的mysql<br />
数据库空间了。</p>
<p>11，我申请了一个不带数据库的php空间，我现在的应用数据是存在文件中的，但是这会有一个安全问题，就是<br />
访问者可以通过url查看到这些文件的内容，我怎么保护这些文件内容呢？<br />
答：建议的方式有三种：<br />
1）如果你租用的php空间允许设置目录的http访问权限，那么设置一下即可。<br />
2）可以对文件内容进行加密，那么即使被下载，也没有多大的价值。<br />
3）可以将这些文件的后缀改为.php，即使用php文件存储应用信息，这样的话，访问者就无法通过http访问到<br />
这些文件的真实内容了，当然这些文件中的内容必须是正确的php语法，而且内容要使用php语法中的隐藏语法<br />
将信息隐藏起来，例如一个存放帐号信息的文件如下：<br />
users.php<br />
&lt;?php<br />
/*<br />
:::user1:password1::user2:password2::user3:password3:::<br />
*/<br />
?&gt;</p>
<p>12， 如何对一个字符串进行转码？<br />
使用php的iconv函数，签名为：<br />
$str=iconv(fromEncode,toEncode,str);<br />
例如：<br />
$str=&#8221;php字符串转码&#8221;;<br />
$str=iconv(&#8220;utf-8&#8243;,&#8221;gbk&#8221;,$str);//将字符串从utf-8格式转换为gbk格式<br />
转码是很重要的一个问题，例如目前许多博客提供的rss都是utf-8返回的，因此需要通过转化才能正确显示。</p>
<p>13，如何读取一个网页的HTML内容？<br />
PHP中文件的概念和Java中文件流的概念是类似的，许多文件读取的函数，其接受的输入流不仅仅是本地文件系统，也可以是网络文件，下面介绍其中的一种 方式：<br />
function getRssContent($url){<br />
$handle = fopen ($url, &#8220;rb&#8221;);<br />
$contents = &#8220;&#8221;;<br />
$count=0;<br />
do {<br />
$data = fread($handle, 1000000);<br />
$count++;<br />
if (strlen($data) == 0) {<br />
break;<br />
}<br />
$contents .= $data;<br />
} while(true);<br />
fclose ($handle);<br />
return $contents;<br />
}</p>
<p>14，PHP中如何操作mysql数据库？<br />
为了方便初学者能够上手mysql的操作，我介绍一些常用的操作：<br />
1）数据库连接与关闭<br />
$dbhost = &#8220;&#8221;;<br />
$dbuser = &#8220;&#8221;;<br />
$dbpw = &#8220;&#8221;;<br />
$dbname = &#8220;&#8221;;<br />
$link = mysql_connect($dbhost, $dbuser, $dbpw) or die(&#8220;Could not  connect: &#8220;.mysql_error());<br />
mysql_select_db($dbname);<br />
&#8230;//此处是对数据库具体的操作，后面的例子不再写数据库的连接和关闭操作<br />
mysql_close($link);<br />
2）向表中插入新数据<br />
mysql_query(&#8220;insert into mytable(id,name)  values(&#8216;&#8221;.$id.&#8221;&#8216;,&#8217;&#8221;.$name.&#8221;&#8216;)&#8221;);<br />
上面是向mytable表的id和name字段插入一条数据。<br />
3）从表中查询数据<br />
$rs=mysql_query(&#8220;select * from mytable mt where mt.id=&#8217;001&#8242;&#8221;);<br />
4）从表中删除数据<br />
$rs=mysql_query(&#8220;delete from mytable mt where mt.id=&#8217;001&#8242;&#8221;);<br />
5）对于复杂查询，例如select子句,mysql3.22以下版本不支持，因此许多时候php编写复杂sql时会得不到结果，这其实不是php的错， 而是mysql的版本较低的缘故。<br />
6）对于select返回的结果集，可以如下操作：<br />
对于返回一条结果，可以如下：<br />
$row=mysql_fetch_object($rs);<br />
$id=$row-&gt;id;//id是字段名称，或者字段的别名，以下同<br />
$title=$row-&gt;title;<br />
$asker=$row-&gt;asker;<br />
对于返回多条结果，可以如下：<br />
while($row=mysql_fetch_object($rs)){<br />
$id=$row-&gt;id;<br />
$title=$row-&gt;title;<br />
$asker=$row-&gt;asker;<br />
}<br />
当然还有方法可以使得返回的结果为数组，访问也可以根据字段的位置index值访问，这个可以查询相关手册，就不介绍了。</p>
<p>15，如果你的工程中使用HTML在线编辑器，那么FCKEditor可能是比较不错的一个选 择，FCKEditor可以自己去网上下载，下载的地方很多，我介绍一下调用方式：<br />
首先将FCKEditor的目录放到网站根目录下，假设你在网站根目录的/modules/cms/目录下的edit.php中要引用 FCKEditor，具体代码如下：<br />
&lt;?php<br />
$sBasePath = &#8220;../../fckeditor/&#8221;;//fckeditor是FCKEditor的目录<br />
$oFCKeditor = new FCKeditor(&#8216;content&#8217;) ;<br />
$oFCKeditor-&gt;BasePath= $sBasePath ;<br />
$oFCKeditor-&gt;Value=&#8221;" ;<br />
$oFCKeditor-&gt;Width=&#8221;666px&#8221;;<br />
$oFCKeditor-&gt;Height=&#8221;300px&#8221;<br />
?&gt;<br />
&lt;div&gt;<br />
&lt;?php $oFCKeditor-&gt;Create();?&gt;<br />
&lt;/div&gt;<br />
显示如下：<br />
16，如何在session中存储数据？<br />
首先要启动session机制，除了apache本身做一定的设置之外，在使用session的php页面中，要先调用session_start()方 法，表示在本页面使用session。在session中存储数据的具体方式如下：<br />
&lt;?php<br />
session_start();<br />
$username=&#8221;admin&#8221;;<br />
session_register(&#8220;username&#8221;);<br />
?&gt;<br />
那么在其它的页面，想取得session中的用户名，如下：<br />
&lt;?php<br />
$username=$_SESSION["username"];<br />
?&gt;<br />
同理，要判断当前访问的用户是否已经登录也可以通过上面的方式进行：当用户登录之后，在session之中注册用户名，在需要session控制的php 页面中加入判断，例如：<br />
if(!session_is_registered(&#8220;username&#8221;)){<br />
header(&#8220;Location:login.php&#8221;);<br />
}<br />
上面是通过判断session中是否注册了username变量来实现的。</p>
<p>17，PHP中如何定义类及其成员属性与操作，又如何调用？<br />
直接举一个例子，应该可以说明上面的问题：<br />
定义一个字符串处理工具类：StringUtils<br />
&lt;?php<br />
class StringUtils{<br />
function StringUtils(){</p>
<p>}</p>
<p>function getLength($str){<br />
return strlen($str);<br />
}<br />
}<br />
?&gt;<br />
在php页面中调用方式为：<br />
&lt;?php<br />
include &#8216;classes/com/xxx/StringUtils.php&#8217;;<br />
$length=StringUtils::getLength(&#8220;abcde&#8221;);<br />
//或者<br />
$instance=new StringUtils;<br />
$length=$instance-&gt;getLength(&#8220;abcde&#8221;);<br />
?&gt;<br />
对于一个类的方法，一般有两种调用方式，一种是当作静态方法进行调用，通过::连接符，一种是当作实例方法进行调用，通过-&gt;连接符。虽然调用可以 使用两种方式调用，但是实际中一个类的方法是否为静态方法，往往是已经逻辑上定义好的，因此每一个方法，往往只使用某种方式调用，例如一个服务类中的方 法，基本上应该都是实例方法，而一个工具类中的方法，基本上都是类方法或者说静态方法，例如：<br />
&lt;?php<br />
class UserService{</p>
<p>var $dbhost = &#8220;&#8221;;<br />
var $dbuser = &#8220;&#8221;;<br />
var $dbpw = &#8220;&#8221;;<br />
var $dbname = &#8220;&#8221;;</p>
<p>function UserService(){</p>
<p>}</p>
<p>function login($username,$password){<br />
$link = mysql_connect($this-&gt;dbhost, $this-&gt;dbuser,  $this-&gt;dbpw) or die(&#8220;Could not connect: &#8220;.mysql_error());<br />
mysql_select_db($this-&gt;dbname);<br />
$rs=mysql_query(&#8220;select count(*) as value from cieqas_users where  userid=&#8217;&#8221;.$username.&#8221;&#8216; and password=&#8217;&#8221;.$password.&#8221;&#8216;&#8221;);<br />
$row=mysql_fetch_object($rs);<br />
$value=$row-&gt;value;<br />
mysql_close($link);<br />
settype($value,&#8221;integer&#8221;);<br />
if($value&lt;=0){<br />
return false;<br />
}<br />
return true;<br />
}<br />
?&gt;<br />
另外，在实例方法中调用$this，才有实际的意义。</p>
<p>18，如何设置一个变量的类型？<br />
PHP可以算作是弱类型语言的一种，不需要对变量进行强制类型定义，例如：<br />
$username＝&#8221;admin&#8221;;<br />
$length=0;<br />
$obj=new MyClass;<br />
许多时候，需要将一个字符串变量转换为int变量，或者反过来等等，该如何操作呢？其实可以使用settype方法，该方法可以指定变量的类型，签名如 下：<br />
settype(var,type)<br />
其中类型的值有boolean(bool)、integer(int)、float、string、array、object、null<br />
例如：<br />
$state=&#8221;0&#8243;;<br />
settype($state,&#8221;int&#8221;);<br />
if($state==0){<br />
&#8230;<br />
}</p>
<p>19，如何将一个数组进行反向排列？<br />
通过array_reverse方法实现，例如：<br />
$arr=array();<br />
$arr[0]=1;<br />
$arr[1]=2;<br />
$arr2=array_reverse($arr);</p>
<p>20，在PHP中如何将一个时间正确的进行显示？<br />
在php中通过time()方法返回自从 Unix 新纪元（格林威治时间 1970 年 1 月 1 日  00:00:00）到当前时间的秒数，那么如何将该时间正确的显示为本地正确时间，许多时候我们都使用php中的setLocale方法，指定当前的地 域，但是我们往往得不到正确的时间，给大家介绍一个其它的解决方式，就是通过Javascript与php结合去解决，例如：<br />
var time=&#8221;&lt;?php echo time() ?&gt;&#8221;;<br />
var time=parseInt(time);<br />
var date=new Date(time*1000);<br />
var pattern=&#8221;yyyy-MM-dd hh:mm:ss&#8221;;<br />
var df=new SimpleDateFormat();<br />
var str=df.format(date);<br />
document.write(str);<br />
因此，可以将php中time()的值传递给Javascript，并做为Date对象的参数，然后通过Javascript开源类库JsJava的处 理，即可。</p>
<p>21，PHP在当今是非常流行的一门语言，到目前为止已经形成了大量的函数库，例如处理字符串的、数学的、XML的、文件的、SOAP的、网络的等 等，不过其在面向对象方面，还有一定程度的欠缺，然而也并不是说非要面向对象才能算是一门如何如何的语言，然而在实际的网站或者项目开发中，仅仅是大量的 函数库有些时候感觉不是特殊的方便，尤其是有些时候，业务需要我们抽象出架构层次以及各个对象，这个时候定义一套合适的业务类库就比较合适了，毕竟当我们 面对更高业务层面的开发时，我们需要封装的层次更高，那么这个时候类和对象就提上日程了，不过目前使用php的各个函数，感觉也是非常方便的，而且非常强 大，这又让我多少有些埋怨类似Java这样的面向对象的语言，做什么逻辑都要借助一大堆类来实现，看来语言之间是需要互相学习的，而不是互相攻击，解决问 题促进行业和社会的发展才是最根本的。</p>
<p>来源：<a href="http://www.php100.com/html/webkaifa/PHP/PHP/2010/0318/4167.html">http://www.php100.com/html/webkaifa/PHP/PHP/2010/0318/4167.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lynzz.com/php/php-studyer-21-question/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress 3.0十大看点</title>
		<link>http://www.lynzz.com/wordpress/wordpress-3-0/</link>
		<comments>http://www.lynzz.com/wordpress/wordpress-3-0/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 12:00:47 +0000</pubDate>
		<dc:creator>LynZz</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress3.0]]></category>

		<guid isPermaLink="false">http://www.lynzz.com/?p=81</guid>
		<description><![CDATA[
据估计，WordPress  3.0将在未来的两个月内和大家见面。  那么WordPress新版本里可能会有哪些新功能呢，一起来看看吧：
1. 自定义用户名和密码
新版本一开始就会给用户惊喜！  目前我们安装WordPress之后，系统会给我们一个用户admin和一段自动生成的密码。   但是在WordPress  3.0中，你可以在安装时自己选择用户名和密码。
这意味着：

WordPress的安全性进一步增强。  在这个新功能出现前，黑客至少可以确定WordPress网站有一个用户名为admin，   但在新版本中，这个漏洞将不再存在。  通常为了安全考虑，你可能需要删除“admin”这个用户名，  但WP 3.0出来之后，你就再也不用担心了。

2. 新的默认主题
WordPress 3.0将配置一个名为TwentyTen（2010）的新默认主题。  照这么看，WordPress团队似乎打算每年推出一款默认主题。  TwentyTen是一个很漂亮的主题。   该主题所用字体为Georgia，两栏模式，侧边栏和页脚支持widget——还内置很炫的下拉式菜单哦。   不用多说，到时也将推出自定义页头和背景（新功能）功能。
这意味着：
新主题推出后，WordPress用户查找主题时又会多一道选择。  多多益善，是吧？



3. 自定义背景
WordPress 3.0将支持对背景的定制。  在functions.php中加上以下代码，使你的主题支持背景定制：
add_custom_background();
代码添加完毕后，你会发现，后台“外观”菜单下多出一个“背景（background）”选项。  然后你可以上传页头图片并进行修改。
这意味着：
对主题开发者来说这并不算什么，他们自己就可以给主题添加新选项。   但无论如何，WordPress庞大的用户群体仍然需要这一功能，说不定还能从中衍生出创造性的新用法。

4. 多站点功能与对WPMU代码库的合并
WordPress与WPMU将合并代码库。  这使管理大型WordPress网站变得更加方便。  你可以在后台的设 置&#62;网络菜单了解关于多站点的设置。
这意味着：
当然意味着很多！   WordPress多站点型网站将更容易管理——无论是subdomain.domain.com结构还是 [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>据估计，WordPress  3.0将在未来的两个月内和大家见面。  那么WordPress新版本里可能会有哪些新功能呢，一起来看看吧：</p>
<h3><strong>1. 自定义用户名和密码</strong></h3>
<p>新版本一开始就会给用户惊喜！  目前我们安装WordPress之后，系统会给我们一个用户admin和一段自动生成的密码。   但是在WordPress  3.0中，你可以在安装时自己选择用户名和密码。</p>
<p><strong>这意味着：</strong><br />
<span id="more-81"></span><br />
WordPress的安全性进一步增强。  在这个新功能出现前，黑客至少可以确定WordPress网站有一个用户名为admin，   但在新版本中，这个漏洞将不再存在。  通常为了安全考虑，你可能需要删除“admin”这个用户名，  但WP 3.0出来之后，你就再也不用担心了。</p>
<p style="text-align: center;"><a href="http://www.lynzz.com/wp-content/uploads/2010/03/wordpress-3.0-network-settings.jpg"></a><a href="http://www.lynzz.com/wp-content/uploads/2010/03/1_20.jpg"><img class="aligncenter size-full wp-image-87" title="1_20" src="http://www.lynzz.com/wp-content/uploads/2010/03/1_20.jpg" alt="" width="600" height="414" /></a></p>
<h3><strong>2. 新的默认主题</strong></h3>
<p>WordPress 3.0将配置一个名为TwentyTen（2010）的新默认主题。  照这么看，WordPress团队似乎打算每年推出一款默认主题。  TwentyTen是一个很漂亮的主题。   该主题所用字体为Georgia，两栏模式，侧边栏和页脚支持widget——还内置很炫的下拉式菜单哦。   不用多说，到时也将推出自定义页头和背景（新功能）功能。</p>
<p><strong>这意味着：</strong></p>
<p>新主题推出后，WordPress用户查找主题时又会多一道选择。  多多益善，是吧？</p>
<p style="text-align: center;"><a href="../wp-content/uploads/2010/03/wp2.jpg"></a><a href="http://www.lynzz.com/wp-content/uploads/2010/03/wp2.jpg"><img class="aligncenter size-full wp-image-88" title="wp2" src="http://www.lynzz.com/wp-content/uploads/2010/03/wp2.jpg" alt="TwentyTen（2010）的新默认主题" width="600" height="454" /></a><br />
<a href="http://www.lynzz.com/wp-content/uploads/2010/03/wordpress-3.0-network-settings-1.jpg"><br />
</a></p>
<h3><strong>3. 自定义背景</strong></h3>
<p>WordPress 3.0将支持对背景的定制。  在functions.php中加上以下代码，使你的主题支持背景定制：</p>
<blockquote><p>add_custom_background();</p></blockquote>
<p>代码添加完毕后，你会发现，后台“外观”菜单下多出一个“背景（background）”选项。  然后你可以上传页头图片并进行修改。</p>
<p><strong>这意味着：</strong></p>
<p>对主题开发者来说这并不算什么，他们自己就可以给主题添加新选项。   但无论如何，WordPress庞大的用户群体仍然需要这一功能，说不定还能从中衍生出创造性的新用法。</p>
<p><a href="http://www.lynzz.com/wp-content/uploads/2010/03/wp2.jpg"></a><a href="http://www.lynzz.com/wp-content/uploads/2010/03/wp3.jpg"><img class="aligncenter size-full wp-image-89" title="wp3" src="http://www.lynzz.com/wp-content/uploads/2010/03/wp3.jpg" alt="" width="600" height="582" /></a></p>
<h3><strong>4. 多站点功能与对WPMU代码库的合并</strong></h3>
<p>WordPress与WPMU将合并代码库。  这使管理大型WordPress网站变得更加方便。  你可以在后台的<strong>设 置&gt;网络</strong>菜单了解关于多站点的设置。</p>
<p><strong>这意味着：</strong></p>
<p>当然意味着很多！   WordPress多站点型网站将更容易管理——无论是subdomain.domain.com结构还是 domain.com/subdirectory结构。  这个网络功能是可选的，WordPress和WPMU用户也不用担心升级到WP   3.0后会给自己带来麻烦。 同时，这也会使WPMU用户能更方便地使用插件——插件再也不会突然停止运行或崩溃了。</p>
<p><a href="http://www.lynzz.com/wp-content/uploads/2010/03/wp4.jpg"><img class="aligncenter size-full wp-image-90" title="wp4" src="http://www.lynzz.com/wp-content/uploads/2010/03/wp4.jpg" alt="" width="600" height="331" /></a></p>
<h3><strong>5. 自定义日志类型</strong></h3>
<p>一个全新的功能！  目前，WordPress用户只能在后台添加新日志和新页面。  但在WP  3.0中，用户们可以给自己的网站添加新的文章类型。  例如，你可以利用下面的代码添加一个名为“Portfolio(作品集)”的新文章类型：</p>
<div>
<blockquote><p>function post_type_portfolio() {<br />
register_post_type( &#8216;Portfolio&#8217;,<br />
array( &#8216;label&#8217; =&gt; __(&#8216;Portfolio&#8217;), &#8216;public&#8217; =&gt;  true, &#8217;show_ui&#8217; =&gt; true ) );<br />
register_taxonomy_for_object_type(&#8216;post_tag&#8217;, &#8216;Portfolio&#8217;);<br />
}</p>
<p>add_action(&#8216;init&#8217;, &#8216;post_type_portfolio&#8217;);</p></blockquote>
</div>
<p><strong>这意味着：</strong></p>
<p>WordPress的CMS功能进一步增强。  这减少了主题开发者浪费在自定义字段上的时间，带来无限的可能性。</p>
<p><a href="http://www.lynzz.com/wp-content/uploads/2010/03/wp5.jpg"><img class="aligncenter size-full wp-image-91" title="wp5" src="http://www.lynzz.com/wp-content/uploads/2010/03/wp5.jpg" alt="" width="600" height="251" /></a></p>
<h3><strong>6. 自定义分类</strong></h3>
<p>自定义分类功能和子分类将比之前更加易于使用。</p>
<p><strong>这意味着：</strong></p>
<p>WordPress将逐渐由一个博客类型的CMS转变成一个更灵活更实用、功能更强大的CMS。</p>
<h3><strong>7. 轻松方便的菜单管理</strong></h3>
<p>菜单管理器是WordPress  3.0里的一个新功能， 由WooThemes的<a href="http://www.woothemes.com/2010/02/woonav-integrated-in-wp-30/">WooNav</a>开 发。  你可以利用菜单管理器创建多个菜单和分类，甚至可以定制内外部链接。   这个菜单管理器甚至带有一个默认的widget，你可以把它安置到任何支持widget的地方。</p>
<p><strong>这意味着：</strong></p>
<p>从表面上来看，这个功能给用户提供了一个便于用户添加新菜单的强大用户界面，它不仅减轻了WordPress主题开发者的负担，也使用户的操作更加 轻松。  而实质上，菜单管理器暗示了付费WordPress主题开发者对WordPress的贡献与合作诚意，  这是一个双赢的策略。</p>
<p style="text-align: center;"><a href="http://www.lynzz.com/wp-content/uploads/2010/03/wp6.jpg"><img class="aligncenter size-full wp-image-92" title="wp6" src="http://www.lynzz.com/wp-content/uploads/2010/03/wp6.jpg" alt="" width="600" height="823" /></a></p>
<p style="text-align: center;"><a href="http://www.lynzz.com/wp-content/uploads/2010/03/wp7.jpg"><img class="aligncenter size-full wp-image-93" title="wp7" src="http://www.lynzz.com/wp-content/uploads/2010/03/wp7.jpg" alt="" width="600" height="239" /></a></p>
<h3><strong>8. 其它小功能</strong></h3>
<ul type="disc">
<li><strong>欢迎指南</strong>：       WordPress  3.0将内置一个使用指南，意在简单介绍WordPress系统与基本的WordPress用法。</li>
<li><strong>作者模板</strong>： 模板层级里有类似于<em>category-{id}.php与 category-{slug}.php</em> 这样的分类和标签层级，于是我们现在也可以把它用在作者信息里：        例如作者名为“Rohan”，ID为1，在author.php显示前，WordPress会先在模板文件中查找<em>author-rohan.php</em><em>然 后继续查找</em><em><em>author-1.php</em></em>。</li>
<li><strong>重设媒体用户界面</strong>：       这个功能没有出现在WP 2.9中，但WP        3.0中可能出现，后台的<strong>媒体</strong>菜单的用户界面可能会有改动。</li>
</ul>
<h2>注意</h2>
<p>这些功能和截图是<a href="http://net.tutsplus.com/tutorials/wordpress/10-features-to-look-forward-to-in-wordpress-3-0/">作 者</a>从WordPress最新的每日构建（nightly  build）中看到的， 目前可能还不够稳定。  在新版本还没有正式发布前，所有的预测都可能会被推翻。但无论怎样，WordPress  3.0必然会朝着更好的方向前进。静等新版发布吧。</p>
<p>文章来源：<a href="http://www.wordpress.la/WordPress-3.0.html" target="_blank">http://www.wordpress.la/WordPress-3.0.html</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.lynzz.com/wordpress/wordpress-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>阿里巴巴 前端 应聘试题</title>
		<link>http://www.lynzz.com/web/alibaba-web-developer-questions/</link>
		<comments>http://www.lynzz.com/web/alibaba-web-developer-questions/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 08:41:31 +0000</pubDate>
		<dc:creator>LynZz</dc:creator>
				<category><![CDATA[Web前端]]></category>
		<category><![CDATA[阿里巴巴，前端，试题]]></category>

		<guid isPermaLink="false">http://www.lynzz.com/?p=64</guid>
		<description><![CDATA[如果您是代码超人，
对一切突发问题有敏锐感知，又有实战经验
那就来体验一下前端开发试题！]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #ff6600;">您理想中的团队什么地方会最吸引您？</span></h2>
<p> </p>
<input id="a1:oneRequired" title="请选择第一题的答案" name="answer1" type="radio" value="A.丰厚的福利待遇" /> <label for="a1">A.丰厚的福利待遇</label></p>
<input id="b1" name="answer1" type="radio" value="B.岗位符合我的兴趣" /> <label for="b1">B.岗位符合我的兴趣</label></p>
<input id="c1" name="answer1" type="radio" value="C.广阔的发展空间" /> <label for="c1">C.广阔的发展空间</label></p>
<input id="d1" name="answer1" type="radio" value="D.协作的文化和融洽的环境" /> <label for="d1">D.协作的文化和融洽的环境</label></p>
<input id="e1" name="answer1" type="radio" value="E.公司良好的前景" /> <label for="e1">E.公司良好的前景</label><br />
<span id="more-64"></span><br />
<label for="e1"></label></p>
<h2><span style="color: #ff6600;">您喜欢既省力又收入高的工作？</span></h2>
<p> </p>
<input id="a2:oneRequired" title="请选择第二题的答案" name="answer2" type="radio" value="A.非常喜欢，梦想中的事" /> <label for="a2">A.非常喜欢，梦想中的事</label></p>
<input id="b2" name="answer2" type="radio" value="B.向往，能遇到最好" /> <label for="b2">B.向往，能遇到最好</label></p>
<input id="c2" name="answer2" type="radio" value="C.无所谓" /> <label for="c2">C.无所谓</label></p>
<input id="d2" name="answer2" type="radio" value="D.有点向往，不太认同" /> <label for="d2">D.有点向往，不太认同</label></p>
<input id="e2" name="answer2" type="radio" value="E.不认同且不喜欢" /> <label for="e2">E.不认同且不喜欢</label></p>
<p><label for="e2"></label></p>
<h2><span style="color: #ff6600;">您在论坛里的帖子，回复的人多吗？</span></h2>
<p> </p>
<input id="a3:oneRequired" title="请选择第三题的答案" name="answer3" type="radio" value="A.主动表达观点，经常被置顶，或被设为精华" /> <label for="a3">A.主动表达观点，经常被置顶，或被设为精华</label></p>
<input id="b3" name="answer3" type="radio" value="B.经常回复别人的问题" /> <label for="b3">B.经常回复别人的问题</label></p>
<input id="c3" name="answer3" type="radio" value="C.有事没事去请教些问题" /> <label for="c3">C.有事没事去请教些问题</label></p>
<input id="d3" name="answer3" type="radio" value="D.一般潜水，去吸取有益的内容" /> <label for="d3">D.一般潜水，去吸取有益的内容</label></p>
<input id="e3" name="answer3" type="radio" value="E.从不去论坛，小儿科" /> <label for="e3">E.从不去论坛，小儿科</label></p>
<p><label for="e3"></label></p>
<h2><span style="color: #ff6600;">用CSS实现布局</span></h2>
<p>让我们一起来做一个页面<br />
首先，我们需要一个布局。<br />
请使用CSS控制3个div，实现如下图的布局。</p>
<p style="text-align: center;"><a href="http://www.lynzz.com/wp-content/uploads/2010/03/css_q.gif"><img class="size-medium wp-image-65 aligncenter" title="css_q" src="http://www.lynzz.com/wp-content/uploads/2010/03/css_q-300x265.gif" alt="CSS控制3个div" width="300" height="265" /></a></p>
<h2><span style="color: #ff6600;">用javascript优化布局。</span></h2>
<p>由于我们的用户群喜欢放大看页面<br />
于是我们给上一题的布局做一次优化。<br />
当鼠标略过某个区块的时候，该区块会放大25%，<br />
并且其他的区块仍然固定不动。<br />
<img src="http://job.aliued.com/htdocs/images/wdq1.gif" alt="" /></p>
<p>提示：<br />
也许，我们其他的布局也会用到这个放大的效果哦。<br />
可以使用任何开源代码，包括曾经你自己写的。</p>
<p>关键字：<br />
javascript、封装、复用</p>
<h2><span style="color: #ff6600;">处理紧急情况</span></h2>
<p>好了，我们的页面完成了。<br />
于是我们将页面发布上网。<br />
突然，<strong>晴天霹雳</strong>，页面无法访问了，这时候，你会怎么做？</p>
<p>来源：<a href="http://job.aliued.com/">http://job.aliued.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lynzz.com/web/alibaba-web-developer-questions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
