﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>leeon | 分享未来</title>
  <link>http://www.leeon.me</link>
  <description>Share Future,Share Internet Technology</description>
  <atom:link href="http://www.leeon.me/feed" rel="self" type="application/rss+xml" />
    <item>
    <title>【原创】C++程序静态链接编译log4cplus的问题小记</title>
    <link>http://leeon.me/a/log4cplus-static-compile-but-cannot-find-pthread</link>
	<pubDate>Sat, 28 Apr 2012 10:38:08 +0800</pubDate>
	<category>Linux C/C++编程</category>
    <description><![CDATA[
	<p>今天将log4cplus引入自己的程序，由于log4cplus需要线程库的支持，在静态编译的时候加上了-lpthread,但是始终在编译的时候提示找不到线程函数：</p>
<p>[code="plain"]<br />
liblog4cplus.a(socketappender.o): In function `log4cplus::thread::PthreadMutexAttr::set_type(log4cplus::thread::Mutex::Type)':<br />
../include/log4cplus/helpers/syncprims-pthreads.h:80: undefined reference to `pthread_mutexattr_settype'<br />
liblog4cplus.a(socketappender.o): In function `~PthreadMutexAttr':<br />
../include/log4cplus/helpers/syncprims-pthreads.h:58: undefined reference to `pthread_mutexattr_destroy'<br />
liblog4cplus.a(socketappender.o): In function `ManualResetEvent':<br />
../include/log4cplus/helpers/syncprims-pthreads.h:200: undefined reference to `pthread_cond_init'<br />
liblog4cplus.a(socketappender.o): In function `~PthreadMutexAttr':<br />
../include/log4cplus/helpers/syncprims-pthreads.h:58: undefined reference to `pthread_mutexattr_destroy'<br />
liblog4cplus.a(socketappender.o): In function `~ManualResetEvent':<br />
../include/log4cplus/helpers/syncprims-pthreads.h:210: undefined reference to `pthread_cond_destroy'<br />
../include/log4cplus/helpers/syncprims-pthreads.h:210: undefined reference to `pthread_cond_destroy'<br />
liblog4cplus.a(socketappender.o): In function `log4cplus::thread::ManualResetEvent::timed_wait(unsigned long) const':<br />
../include/log4cplus/helpers/syncprims-pthreads.h:272: undefined reference to `pthread_cond_timedwait'<br />
[/code]</p>
<p>于是搜索发现必须在编译的时候加上<span style="color:#fd1289;"><strong>"-pthread" </strong></span><span>才能正常编译通过。</span></p>
<p><span>附上g++中-pthread和-lpthread的区别说明文章：</span></p>
<p><span><a href="http://blog.chinaunix.net/uid-25909722-id-3026989.html">http://blog.chinaunix.net/uid-25909722-id-3026989.html</a></span></p>
<p><span><a href="http://chaoslawful.iteye.com/blog/568602">http://chaoslawful.iteye.com/blog/568602</a></span></p>
<p><span><a href="http://kasicass.blog.163.com/blog/static/395619200992410313759/">http://kasicass.blog.163.com/blog/static/395619200992410313759/</a></span></p>	]]></description>
	<guid isPermaLink="false">http://www.leeon.me/feed/175</guid>
  </item>
    <item>
    <title>【原创】使用Netbeans7.1静态编译应用程序</title>
    <link>http://leeon.me/a/use-netbeans-static-compile-linux-cpp-application</link>
	<pubDate>Fri, 27 Apr 2012 16:20:10 +0800</pubDate>
	<category>Linux C/C++编程</category>
    <description><![CDATA[
	<p>最近项目使用到很多外部开源库，但是动态链接对于程序的移植和部署带来极大的不变，本人一直用netbeans写linux c/c++程序，但是静态链接并不好使，在配置选项中加上-static老是编译不通过提示头文件找不到。网上压根就没现成的讲解，自己摸索把问题搞定了。</p>
<p>1.首先把需要链接的静态库放到编写的代码同级目录中。</p>
<p>2.然后根据如图所示配置即可：</p>
<p>&nbsp;<img border="0" alt="" src="/upload/2012-04/20120427170409_42735.jpg" width="741" height="237" /></p>
<p><img border="0" alt="" src="/upload/2012-04/20120427170444_42707.jpg" width="710" height="390" /></p>
<p><img border="0" alt="" src="/upload/2012-04/20120427170419_76888.jpg" width="696" height="282" /></p>	]]></description>
	<guid isPermaLink="false">http://www.leeon.me/feed/174</guid>
  </item>
    <item>
    <title>【原创】使用STL来构造字符串split 和join方法</title>
    <link>http://leeon.me/a/stl-join-and-split-string</link>
	<pubDate>Thu, 26 Apr 2012 13:30:10 +0800</pubDate>
	<category>c/c++</category>
    <description><![CDATA[
	<p>学了几天c++的STL基本语法，写的很搓，不过功能算是基本实现了，类似于php中的implode和explode</p>
<p>[code="cpp"]<br />
vector<string> splitString(const string str,const string w){<br />
vector<string> arr;<br />
string tmp;<br />
long index = 0;<br />
tmp = str;<br />
while((index=tmp.find(w))!=str.npos){<br />
arr.push_back( tmp.substr(0,index));<br />
tmp = tmp.substr(index+1);<br />
}<br />
if(tmp==""){<br />
return arr;<br />
}<br />
arr.push_back(tmp);<br />
return arr;<br />
}<br />
<br />
string joinString(const vector<string>v, const string w){<br />
if(v.empty()) return "";<br />
string tmp="";<br />
<br />
if(v.size()==1)<br />
return v[0];<br />
<br />
for(int i=0;i<V.SIZE();I++){<br />
 if(i==(v.size()-1)){<br />
tmp +=v[i];<br />
}else{<br />
tmp +=v[i]+w;<br />
}<br />
}<br />
<br />
return tmp;<br />
<br />
}<br />
[/code]</p>	]]></description>
	<guid isPermaLink="false">http://www.leeon.me/feed/173</guid>
  </item>
    <item>
    <title>【原创】c/c++读取MySQL中空字段的注意事项</title>
    <link>http://leeon.me/a/c-cpp-read-null-value-from-mysql</link>
	<pubDate>Wed, 18 Apr 2012 19:20:28 +0800</pubDate>
	<category>c/c++</category>
    <description><![CDATA[
	<p>最近用Linux c/c++写一个项目，自己封装了一个MySQL控制类，但是每次在循环的时候都出现异常退出而不能正常赋值数据集的问题。索性厚着脸皮打扰了很多开发让帮忙查问题，还好最终把问题定位到了。由于读取到的MYSQL_ROW类型数据是NULL，导致在for循环创造数据集二维数组的时候意外跳出内层循环，导致赋值补全。</p>
<p>因此大家一定要在用mysql c api调用的时候保证db中创建的字段不能有NULL，必须对每个字段设定默认值。</p>
<p>附送一个代码案例，不仅在mysql读取中有这个问题，普通的for循环中NULL赋值也会造成循环体异常退出。</p>
<p>[code="cpp"]<br />
#include&lt;stdio.h&gt;<br />
#include&lt;iostream&gt;<br />
using namespace std;<br />
<br />
int main(){<br />
char *arr1[3]={"AA","BB","CC"};<br />
char *arr2[3]={"AA",NULL,"CC"};<br />
for(int i=0;i&lt;3;i++){<br />
cout&lt;&lt;*arr1[i]&lt;&lt;endl;<br />
}<br />
for(int i=0;i&lt;3;i++){<br />
cout&lt;&lt;arr2[i]&lt;&lt;endl;<br />
}<br />
return 0;<br />
}<br />
[/code]</p>
<p>输出：</p>
<p>[code="plain"]<br />
A<br />
B<br />
C<br />
AA<br />
<br />
<br />
运行 成功 (总计时间： 203毫秒)<br />
[/code]</p>
<p>此时会注意到arr2字符串数组遇到NULL而导致CC"没输出出来。</p>	]]></description>
	<guid isPermaLink="false">http://www.leeon.me/feed/172</guid>
  </item>
    <item>
    <title>Linux select函数学习笔记</title>
    <link>http://leeon.me/a/linux-select-note</link>
	<pubDate>Sun, 25 Mar 2012 23:49:54 +0800</pubDate>
	<category>Linux C/C++编程</category>
    <description><![CDATA[
	<p>转载了一个比较容易理解select函数作用的解释：</p>
<p>理解select模型的关键在于理解fd_set,为说明方便，取fd_set长度为1字节，fd_set中的每一bit可以对应一个文件描述符fd。则1字节长的fd_set最大可以对应8个fd。<br />
（1）执行fd_set set; FD_ZERO(&amp;set);则set用位表示是0000,0000。<br />
（2）若fd＝5,执行FD_SET(fd,&amp;set);后set变为0001,0000(第5位置为1)<br />
（3）若再加入fd＝2，fd=1,则set变为0001,0011<br />
（4）执行select(6,&amp;set,0,0,0)阻塞等待<br />
（5）<strong><span style="color:#ec0078;">若fd=1,fd=2上都发生可读事件，则select返回，此时set变为0000,0011。注意：没有事件发生的fd=5被清空。</span></strong></p>
<p>注意第五条中的fd=5被清空，说明只要是不活跃的文件描述符都会在select的阻塞被结束后从原有的文件描述集合fd_set中被去除。因此在socket使用select的场景下，是可以在while轮询中使用FD_ISSET宏来不断监听服务器端生成的socket文件描述符是否活跃。</p>	]]></description>
	<guid isPermaLink="false">http://www.leeon.me/feed/171</guid>
  </item>
    <item>
    <title>IE Firefox 在进行某些跳转时请求头中不会附加 Referer 字段信息</title>
    <link>http://leeon.me/a/http-refer-issue</link>
	<pubDate>Tue, 20 Mar 2012 17:08:32 +0800</pubDate>
	<category>网络</category>
    <description><![CDATA[
	<span style="widows:2;text-transform:none;background-color:#ffffff;text-indent:0px;font:14px/21px arial, verdana, tahoma, sans-serif;white-space:normal;orphans:2;letter-spacing:normal;color:#000000;word-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" class="Apple-style-span"> <h2 style="padding-bottom:0px;margin:20px 20px 10px;padding-left:0px;padding-right:0px;font-family:微软雅黑, 'microsoft yahei';color:#003366;font-size:21px;font-weight:normal;padding-top:0px;" id="standard_reference">标准参考</h2>
<p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">根据 HTTP1.1 规范中的描述，请求头中的 Referer 字段允许用户端为服务端指定得到的请求 URI 的资源地址 (URI)，允许服务端生成资源的反向链接列表，同时也允许追踪维护过时的或者是拼写错误的链接。若一个请求 URI 获得自一个没有自身 URI 的源，则该请求 URI 的 Referer 字段不得被发送，如来自用户键盘的输入。</p>
<pre style="border-bottom:#e0e0e0 1px solid;border-left:#e0e0e0 1px solid;padding-bottom:8px;line-height:16px;background-color:#f5f5f5;margin:10px 20px;padding-left:8px;padding-right:8px;font-family:consolas, 'lucida console', monaco, monospace;word-wrap:break-word;white-space:pre-wrap;color:#000066;font-size:14px;word-break:break-all;border-top:#e0e0e0 1px solid;border-right:#e0e0e0 1px solid;padding-top:8px;border-top-left-radius:5px 5px;border-top-right-radius:5px 5px;border-bottom-right-radius:5px 5px;border-bottom-left-radius:5px 5px;background-origin:initial;background-clip:initial;">  Referer = "Referer" ":" ( absoluteURI | relativeURI )</pre> <p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">如：Referer: http://www.w3.org/hypertext/DataSources/Overview.html</p>
<p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">关于 Referer 的更多信息，请参考 Hypertext Transfer Protocol -- HTTP/1.1 规范<span class="Apple-converted-space">&nbsp;</span><a style="border-bottom:#a8cfbf 2px solid;color:#006633;text-decoration:none;" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.36">14.36 Referer</a><span class="Apple-converted-space">&nbsp;</span>中的内容。</p>
<h2 style="padding-bottom:0px;margin:20px 20px 10px;padding-left:0px;padding-right:0px;font-family:微软雅黑, 'microsoft yahei';color:#003366;font-size:21px;font-weight:normal;padding-top:0px;" id="description">问题描述</h2>
<p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">IE6 IE7 IE8 始终不在使用 META 元素控制跳转时附加 Referer 字段到请求头中。在普通页面中，当脚本调用 location 对象进行跳转时也不会附加 Referer 字段信息；<br />
Firefox 始终不在使用 META 元素控制跳转时附加 Referer 字段到请求头中。</p>
<h2 style="padding-bottom:0px;margin:20px 20px 10px;padding-left:0px;padding-right:0px;font-family:微软雅黑, 'microsoft yahei';color:#003366;font-size:21px;font-weight:normal;padding-top:0px;" id="influence">造成的影响</h2>
<p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">若服务端依靠请求头中的 Referer 字段信息进行某些操作，则在使用 META 元素进行页面跳转以及脚本 location 对象进行跳转时在某些浏览器中由于无 Referer 字段而产生差异。</p>
<h2 style="padding-bottom:0px;margin:20px 20px 10px;padding-left:0px;padding-right:0px;font-family:微软雅黑, 'microsoft yahei';color:#003366;font-size:21px;font-weight:normal;padding-top:0px;" id="impacted_browsers">受影响的浏览器</h2>
<table style="border-bottom-style:none;border-right-style:none;margin:0px 20px;border-collapse:collapse;border-top-style:none;border-left-style:none;" class="list">
<tbody>
<tr>
<th style="text-align:left;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:1em;vertical-align:top;padding-top:0px;">IE6 IE7 IE8</th>
<td style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:1em;vertical-align:top;padding-top:0px;">&nbsp;</td>
</tr>
<tr>
<th style="text-align:left;padding-bottom:0px;margin:0px;padding-left:0px;padding-right:1em;vertical-align:top;padding-top:0px;">Firefox</th>
<td style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:1em;vertical-align:top;padding-top:0px;">&nbsp;</td>
</tr>
</tbody>
</table>
<h2 style="padding-bottom:0px;margin:20px 20px 10px;padding-left:0px;padding-right:0px;font-family:微软雅黑, 'microsoft yahei';color:#003366;font-size:21px;font-weight:normal;padding-top:0px;" id="analysis_of_issues">问题分析</h2>
<p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">创建一个 Web 服务器，如 Apache。在服务器上编写一段动态代码，用于输出接收到的请求头的 Referer 字段信息。如：<em style="font-style:normal;text-decoration:underline;">refer.php</em></p>
<pre style="border-bottom:#e0e0e0 1px solid;border-left:#e0e0e0 1px solid;padding-bottom:8px;line-height:16px;background-color:#f5f5f5;margin:10px 20px;padding-left:8px;padding-right:8px;font-family:consolas, 'lucida console', monaco, monospace;word-wrap:break-word;white-space:pre-wrap;color:#000066;font-size:14px;word-break:break-all;border-top:#e0e0e0 1px solid;border-right:#e0e0e0 1px solid;padding-top:8px;border-top-left-radius:5px 5px;border-top-right-radius:5px 5px;border-bottom-right-radius:5px 5px;border-bottom-left-radius:5px 5px;background-origin:initial;background-clip:initial;">&lt;?php
  echo '&lt;style&gt;* { font:12px "Trebuchet MS"; }&lt;/style&gt;';
  echo (isset($_SERVER['HTTP_REFERER'])) ? 'Referer: ' . $_SERVER['HTTP_REFERER'] : 'Referer: N/A';
?&gt;</pre> <p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">本文中将测试 5 种常见的跳转方式，并分别在普通页面及 IFRAME 框架页内测试这些跳转方式下请求头 Referer 字段的发送情况。</p>
<p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">5 种跳转方式代码：</p>
<table style="margin:0px 20px;border-collapse:collapse;" class="compare">
<tbody>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">anchor.html</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><pre style="border-bottom:#e0e0e0 1px solid;border-left:#e0e0e0 1px solid;padding-bottom:8px;line-height:16px;background-color:#f5f5f5;margin:10px 20px;padding-left:8px;padding-right:8px;font-family:consolas, 'lucida console', monaco, monospace;word-wrap:break-word;white-space:pre-wrap;color:#000066;font-size:14px;word-break:break-all;border-top:#e0e0e0 1px solid;border-right:#e0e0e0 1px solid;padding-top:8px;border-top-left-radius:5px 5px;border-top-right-radius:5px 5px;border-bottom-right-radius:5px 5px;border-bottom-left-radius:5px 5px;background-origin:initial;background-clip:initial;">&lt;a href="<span style="padding-bottom:2px;background-color:#ff6347;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_1">refer.php</span>"&gt;Anchor&lt;/a&gt;</pre></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">form_submit.html</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><pre style="border-bottom:#e0e0e0 1px solid;border-left:#e0e0e0 1px solid;padding-bottom:8px;line-height:16px;background-color:#f5f5f5;margin:10px 20px;padding-left:8px;padding-right:8px;font-family:consolas, 'lucida console', monaco, monospace;word-wrap:break-word;white-space:pre-wrap;color:#000066;font-size:14px;word-break:break-all;border-top:#e0e0e0 1px solid;border-right:#e0e0e0 1px solid;padding-top:8px;border-top-left-radius:5px 5px;border-top-right-radius:5px 5px;border-bottom-right-radius:5px 5px;border-bottom-left-radius:5px 5px;background-origin:initial;background-clip:initial;">&lt;body&gt;
&lt;form action="<span style="padding-bottom:2px;background-color:#ff6347;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_1">refer.php</span>"&gt;&lt;input type="submit" /&gt;&lt;/form&gt;
&lt;script&gt;
  document.forms[0].submit();
&lt;/script&gt;
&lt;/body&gt;</pre></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">meta.html</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><pre style="border-bottom:#e0e0e0 1px solid;border-left:#e0e0e0 1px solid;padding-bottom:8px;line-height:16px;background-color:#f5f5f5;margin:10px 20px;padding-left:8px;padding-right:8px;font-family:consolas, 'lucida console', monaco, monospace;word-wrap:break-word;white-space:pre-wrap;color:#000066;font-size:14px;word-break:break-all;border-top:#e0e0e0 1px solid;border-right:#e0e0e0 1px solid;padding-top:8px;border-top-left-radius:5px 5px;border-top-right-radius:5px 5px;border-bottom-right-radius:5px 5px;border-bottom-left-radius:5px 5px;background-origin:initial;background-clip:initial;">&lt;meta http-equiv="refresh" content="1;url=<span style="padding-bottom:2px;background-color:#ff6347;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_1">refer.php</span>"&gt;</pre></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">http302.php</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><pre style="border-bottom:#e0e0e0 1px solid;border-left:#e0e0e0 1px solid;padding-bottom:8px;line-height:16px;background-color:#f5f5f5;margin:10px 20px;padding-left:8px;padding-right:8px;font-family:consolas, 'lucida console', monaco, monospace;word-wrap:break-word;white-space:pre-wrap;color:#000066;font-size:14px;word-break:break-all;border-top:#e0e0e0 1px solid;border-right:#e0e0e0 1px solid;padding-top:8px;border-top-left-radius:5px 5px;border-top-right-radius:5px 5px;border-bottom-right-radius:5px 5px;border-bottom-left-radius:5px 5px;background-origin:initial;background-clip:initial;">&lt;?php
  header('Location: <span style="padding-bottom:2px;background-color:#ff6347;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_1">refer.php</span>');
?&gt;</pre></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">location.html</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><pre style="border-bottom:#e0e0e0 1px solid;border-left:#e0e0e0 1px solid;padding-bottom:8px;line-height:16px;background-color:#f5f5f5;margin:10px 20px;padding-left:8px;padding-right:8px;font-family:consolas, 'lucida console', monaco, monospace;word-wrap:break-word;white-space:pre-wrap;color:#000066;font-size:14px;word-break:break-all;border-top:#e0e0e0 1px solid;border-right:#e0e0e0 1px solid;padding-top:8px;border-top-left-radius:5px 5px;border-top-right-radius:5px 5px;border-bottom-right-radius:5px 5px;border-bottom-left-radius:5px 5px;background-origin:initial;background-clip:initial;">&lt;script&gt;location.href="<span style="padding-bottom:2px;background-color:#ff6347;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_1">refer.php</span>";&lt;/script&gt;</pre></td>
</tr>
<tr></tr>
</tbody>
</table>
<p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">测试页面：</p>
<table style="margin:0px 20px;border-collapse:collapse;" class="compare">
<tbody>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">index.html</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><pre style="border-bottom:#e0e0e0 1px solid;border-left:#e0e0e0 1px solid;padding-bottom:8px;line-height:16px;background-color:#f5f5f5;margin:10px 20px;padding-left:8px;padding-right:8px;font-family:consolas, 'lucida console', monaco, monospace;word-wrap:break-word;white-space:pre-wrap;color:#000066;font-size:14px;word-break:break-all;border-top:#e0e0e0 1px solid;border-right:#e0e0e0 1px solid;padding-top:8px;border-top-left-radius:5px 5px;border-top-right-radius:5px 5px;border-bottom-right-radius:5px 5px;border-bottom-left-radius:5px 5px;background-origin:initial;background-clip:initial;">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;base target="_blank" /&gt;
&lt;style&gt;
  * { margin:0; font:16px 'Trebuchet MS'; }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;a href="anchor.html"&gt;Anchor&lt;/a&gt;&lt;br /&gt;
&lt;a href="form_submit.html"&gt;Form submit&lt;/a&gt;&lt;br /&gt;
&lt;a href="meta.html"&gt;META&lt;/a&gt;&lt;br /&gt;
&lt;a href="302.php"&gt;HTTP 302&lt;/a&gt;&lt;br /&gt;
&lt;a href="location.html"&gt;location.href&lt;/a&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">iframe.html</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><pre style="border-bottom:#e0e0e0 1px solid;border-left:#e0e0e0 1px solid;padding-bottom:8px;line-height:16px;background-color:#f5f5f5;margin:10px 20px;padding-left:8px;padding-right:8px;font-family:consolas, 'lucida console', monaco, monospace;word-wrap:break-word;white-space:pre-wrap;color:#000066;font-size:14px;word-break:break-all;border-top:#e0e0e0 1px solid;border-right:#e0e0e0 1px solid;padding-top:8px;border-top-left-radius:5px 5px;border-top-right-radius:5px 5px;border-bottom-right-radius:5px 5px;border-bottom-left-radius:5px 5px;background-origin:initial;background-clip:initial;">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;style&gt;
  * { margin:0; font:16px 'Trebuchet MS'; }
  iframe { width:400px; height:40px; display:block; }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Anchor:&lt;/h1&gt;
&lt;iframe id="anchor" name="anchor" scrolling="no" frameborder="0" src="anchor.html"&gt;&lt;/iframe&gt;
&lt;h1&gt;Form submit:&lt;/h1&gt;
&lt;iframe id="form_submit" name="form_submit" scrolling="no" frameborder="0" src="form_submit.html"&gt;&lt;/iframe&gt;
&lt;h1&gt;META:&lt;/h1&gt;
&lt;iframe id="meta" name="meta" scrolling="no" frameborder="0" src="meta.html"&gt;&lt;/iframe&gt;
&lt;h1&gt;HTTP 302:&lt;/h1&gt;
&lt;iframe id="http302" name="http302" scrolling="no" frameborder="0" src="302.php"&gt;&lt;/iframe&gt;
&lt;h1&gt;location.href:&lt;/h1&gt;
&lt;iframe id="loc" name="loc" scrolling="no" frameborder="0" src="location.html"&gt;&lt;/iframe&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></td>
</tr>
</tbody>
</table>
<p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">在各浏览器中分别打开上表的 "index.html"、"iframe.html"，对于页面 "anchor.html" 需要用户手动点击超链接。</p>
<p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">这段代码在不同的浏览器环境中的表现：</p>
<table style="margin:0px 20px;border-collapse:collapse;" class="compare">
<tbody>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;" colspan="2">&nbsp;</th>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">IE6 IE7 IE8</th>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">Firefox</th>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">Chrome Safari Opera</th>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;" rowspan="5">index.html</th>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">普通超链接 anchor.html</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">表单提交 form_submit.html</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">META 跳转 meta.html</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#ff6347;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_1">Fail</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#ff6347;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_1">Fail</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">HTTP 302 跳转 302.php</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">脚本 location.href 跳转 location.php</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#ff6347;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_1">Fail</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
</tr>
<tr style="border-top:black 3px dashed;">
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;" rowspan="5">iframe.html</th>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">普通超链接 anchor.html</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">表单提交 form_submit.html</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">META 跳转 meta.html</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#ff6347;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_1">Fail</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#ff6347;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_1">Fail</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">HTTP 302 跳转 302.php</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
</tr>
<tr>
<th style="border-bottom:#c0c0c0 1px solid;text-align:center;border-left:#c0c0c0 1px solid;padding-bottom:3px;background-color:#e0e0e0;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;font-weight:normal;border-right:#c0c0c0 1px solid;padding-top:3px;background-origin:initial;background-clip:initial;">脚本 location.href 跳转 location.php</th>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
<td style="border-bottom:#c0c0c0 1px solid;border-left:#c0c0c0 1px solid;padding-bottom:3px;margin:0px;padding-left:5px;padding-right:5px;border-top:#c0c0c0 1px solid;border-right:#c0c0c0 1px solid;padding-top:3px;"><span style="padding-bottom:2px;background-color:#9acd32;padding-left:5px;padding-right:5px;white-space:nowrap;color:#000000;padding-top:2px;border-top-left-radius:3px 3px;border-top-right-radius:3px 3px;border-bottom-right-radius:3px 3px;border-bottom-left-radius:3px 3px;background-origin:initial;background-clip:initial;" class="hl_2">OK</span></td>
</tr>
</tbody>
</table>
<p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">可见，对于普通超链接、表单提交、302 跳转，各浏览器均会在请求头附加 Referer 字段信息，而对于 META 元素控制跳转及通过脚本使用 location 对象进行跳转时：</p>
<ul style="padding-bottom:0px;list-style-type:none;margin:10px 20px;padding-left:20px;padding-right:0px;padding-top:0px;">
<li style="padding-bottom:0px;list-style-type:square;margin:5px 0px;padding-left:0px;padding-right:0px;padding-top:0px;">在<span class="Apple-converted-space">&nbsp;</span><em style="font-style:normal;text-decoration:underline;">IE6 IE7 IE8</em><span class="Apple-converted-space">&nbsp;</span>中，始终不在使用 META 元素控制跳转时附加 Referer 字段到请求头中。在普通页面中，当脚本调用 location 对象进行跳转时也不会附加 Referer 字段信息；<p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;"></p>
</li>
<li style="padding-bottom:0px;list-style-type:square;margin:5px 0px;padding-left:0px;padding-right:0px;padding-top:0px;">在<span class="Apple-converted-space">&nbsp;</span><em style="font-style:normal;text-decoration:underline;">Firefox</em><span class="Apple-converted-space">&nbsp;</span>中，始终不在使用 META 元素控制跳转时附加 Referer 字段到请求头中；</li>
<li style="padding-bottom:0px;list-style-type:square;margin:5px 0px;padding-left:0px;padding-right:0px;padding-top:0px;">在<span class="Apple-converted-space">&nbsp;</span><em style="font-style:normal;text-decoration:underline;">Chrome Safari Opera</em><span class="Apple-converted-space">&nbsp;</span>中，则对于测试的 5 种方式下均会附加 Referer 字段信息。</li>
</ul>
<h2 style="padding-bottom:0px;margin:20px 20px 10px;padding-left:0px;padding-right:0px;font-family:微软雅黑, 'microsoft yahei';color:#003366;font-size:21px;font-weight:normal;padding-top:0px;" id="solutions">解决方案</h2>
<p style="padding-bottom:0px;line-height:1.5;margin:10px 20px;padding-left:0px;padding-right:0px;padding-top:0px;">若服务端需要获得正确的 Referer 字段信息，则应采用各浏览器均可以附加 Referer 字段信息的方式进行跳转。如，普通超链接、表单提交、HTTP 302 跳转。</p>
</span>	]]></description>
	<guid isPermaLink="false">http://www.leeon.me/feed/170</guid>
  </item>
    <item>
    <title>【转载】getchar()和EOF有关总结</title>
    <link>http://leeon.me/a/getchar-and-eof</link>
	<pubDate>Sat, 21 Jan 2012 12:40:00 +0800</pubDate>
	<category>Linux C/C++编程</category>
    <description><![CDATA[
	getchar()和EOF总结<br />
<br />
大师级经典的著作，要字斟句酌的去读，去理解。以前在看K&R的The C Programming 
Language(SecondEdition)<br />
第1.5节的字符输入/输出，被getchar()和EOF所迷惑了。可能主要还是由于没有搞清楚getchar()的工作原理和EOF的用法。因此,感觉很有必要总结一下，不然，很多琐碎的知识点长时间过后就会淡忘的，只有写下来才是最好的方法。<br />
其实，getchar()最典型的程序也就几行代码而已。本人所用的环境是DebianGNU/Linux，在其他系统下也一样。<br />
一、getchar的两点总结：<br />
1.getchar是以行为单位进行存取的。<br />
当用getchar进行输入时，如果输入的第一个字符为有效字符(即输入是文件结束符EOF，Windows下为组合键Ctrl+Z， 
Unix/Linux下为组合键Ctrl+D)，那么只有当最后一个输入字符为换行符'\n'(也可以是文件结束符EOF，EOF将在后面讨论)时， 
getchar才会停止执行，整个程序将会往下执行。譬如下面程序段：<br />
while((c = getchar()) != EOF){<br />
    
putchar(c);<br />
}<br />
执行程序，输入：abc，然后回车。则程序就会去执行puchar(c)，然后输出abc，这个地方不要忘了，系统输出的还有一个回车。然后可以继续输入，再次遇到换行符的时候，程序又会把那一行的输入的字符输出在终端上。<br />
对于getchar，肯定很多初学的朋友会问，getchar不是以字符为单位读取的吗？那么，既然我输入了第一个字符a，肯定满足while循环(c 
= getchar()) != 
EOF的条件阿，那么应该执行putchar(c)在终端输出一个字符a。不错，我在用getchar的时候也是一直这么想的，但是程序就偏偏不着样执行，而是必需读到一个换行符或者文件结束符EOF才进行一次输出。<br />
对这个问题的一个解释是，在大师编写C的时候，当时并没有所谓终端输入的概念，所有的输入实际上都是按照文件进行读取的，文件中一般都是以行为单位的。因此，只有遇到换行符，那么程序会认为输入结束，然后采取执行程序的其他部分。同时，输入是按照文件的方式存取的，那么要结束一个文件的输入就需用到EOF 
(Enf Of File). 
这也就是为什么getchar结束输入退出时要用EOF的原因。<br />
2.getchar()的返回值一般情况下是字符，但也可能是负值，即返回EOF。<br />
这里要强调的一点就是，getchar函数通常返回终端所输入的字符，这些字符系统中对应的ASCII值都是非负的。因此，很多时候，我们会写这样的两行代码：<br />
char 
c;<br />
c = 
getchar();<br />
这样就很有可能出现问题。因为getchar函数除了返回终端输入的字符外，在遇到Ctrl+D(Linux下)即文件结束符EOF时，getchar 
()的返回EOF，这个EOF在函数库里一般定义为-1。因此，在这种情况下，getchar函数返回一个负值，把一个负值赋给一个char型的变量是不正确的。为了能够让所定义的变量能够包含getchar函数返回的所有可能的值，正确的定义方法如下(K&R 
C中特别提到了这个问题)：<br />
int c;<br />
c = 
getchar();<br />
二、EOF的两点总结(主要指普通终端中的EOF)<br />
1.EOF作为文件结束符时的情况：<br />
EOF虽然是文件结束符，但并不是在任何情况下输入Ctrl+D(Windows下Ctrl+Z)都能够实现文件结束的功能，只有在下列的条件下，才作为文件结束符。<br />
(1)遇到getcahr函数执行时，要输入第一个字符时就直接输入Ctrl+D，就可以跳出getchar(),去执行程序的其他部分；<br />
(2)在前面输入的字符为换行符时，接着输入Ctrl+D；<br />
(3)在前面有字符输入且不为换行符时，要连着输入两次Ctrl+D，这时第二次输入的Ctrl+D起到文件结束符的功能，至于第一次的Ctrl+D的作用将在下面介绍。<br />
其实，这三种情况都可以总结为只有在getchar()提示新的一次输入时，直接输入Ctrl+D才相当于文件结束符。<br />
2.EOF作为行结束符时的情况，这时候输入Ctrl+D并不能结束getchar(),而只能引发getchar()提示下一轮的输入。<br />
这种情况主要是在进行getchar()新的一行输入时，当输入了若干字符(不能包含换行符)之后，直接输入Ctrl+D，此时的Ctrl+D并不是文件结束符，而只是相当于换行符的功能，即结束当前的输入。以上面的代码段为例，如果执行时输入abc，然后Ctrl+D，程序输出结果为：<br />
<font color="#ff0000">abcabc</font><br />
注意:第一组abc为从终端输入的，然后输入Ctrl+D，就输出第二组abc，同时光标停在第二组字符的c后面,然后可以进行新一次的输入。这时如果再次输入Ctrl+D，则起到了文件结束符的作用，结束getchar（）。<br />
如果输入abc之后，然后回车，输入换行符的话，则终端显示为：<br />
<font color="#ff0000">abc       //第一行，带回车</font><br />
<font color="#ff0000">abc       
//第二行</font><br />
<font color="#ff0000">           
 //第三行</font><br />
其中第一行为终端输入，第二行为终端输出，光标停在了第三行处，等待新一次的终端输入。<br />
从这里也可以看出Ctrl+D和换行符分别作为行结束符时，输出的不同结果。<br />
EOF的作用也可以总结为：当终端有字符输入时，Ctrl+D产生的EOF相当于结束本行的输入，将引起getchar()新一轮的输入；当终端没有字符输入或者可以说当getchar()读取新的一次输入时，输入Ctrl+D，此时产生的EOF相当于文件结束符，程序将结束getchar()的执行。<br />
【补充】本文第二部分中关于EOF的总结部分，适用于终端驱动处于一次一行的模式下。也就是虽然getchar()和putchar()确实是按照每次一个字符 
进行的。但是终端驱动处于一次一行的模式，它的输入只有到“\n”或者EOF时才结束，因此，终端上得到的输出也都是按行的。如果要实现终端在读一个字符就结束输入的话，下面的程序是一种实现的方法(参考《C专家编程》,略有改动)：<br />
/*Edit 
by Godbach<br />
   CU Blog: http://blog.chinaunix.net/u/33048/<br />
*/<br />
#include 
stdio.h><br />
#include stdlib.h><br />
int<br />
main(void)<br />
{<br />
    int 
c;<br />
    /* 终端驱动处于普通的一次一行模式 */<br />
    system("stty raw");<br />
   <br />
    /* 
现在的终端驱动处于一次一个字符模式 */<br />
     c = getchar();<br />
    putchar();<br />
   <br />
    /* 
终端驱动处又回到一次一行模式 */<br />
     system("stty cooked");<br />
   <br />
    return 
0;<br />
}<br />
编译运行该程序，则当如入一个字符时，直接出处一个字符，然后程序结束。<br />
由此可见，由于终端驱动的模式不同，造成了getchar()输入结束的条件不一样。普通模式下需要回车或者EOF，而在一次一个字符的模式下，则输入一个字符之后就结束了。<br />
希望本文可以对初学C的朋友提供一点帮助，也希望能和其他朋友进行交流。其中理解不对的地方若能得到指正和建议，本人将不胜感激。同时，本文参考了chinaunix.net关于getchar讨论的帖子和一位博友的文章，链接地址分别为：<br />
<a href="http://blog.chinaunix.net/u/9861/showart_64652.html" target="_blank"><font color="#0000ff">http://blog.chinaunix.net/u/9861/showart_64652.html</font></a><br />
<a href="http://bbs.chinaunix.net/viewthread.php?tid=679688&extra=&page=1" target="_blank"><font color="#0000ff">http://bbs.chinaunix.net/viewthread.php?tid=679688&extra=&page=1</font></a><br />	]]></description>
	<guid isPermaLink="false">http://www.leeon.me/feed/169</guid>
  </item>
    <item>
    <title>shell输入与输出高阶知识点汇总</title>
    <link>http://leeon.me/a/bash-shell-advanced-io</link>
	<pubDate>Sat, 14 Jan 2012 12:35:23 +0800</pubDate>
	<category>linux</category>
    <description><![CDATA[
	<p><strong>shell输入输出基本知识点：</strong></p>
<p>&nbsp;a、I/O重定向通常与 FD有关，shell的FD通常为10个，即 0～9； <br />
b、常用FD有3个，为0（stdin，标准输入）、1（stdout，标准输出）、2（stderr，标准错误输出），默认与keyboard、monitor、monitor有关； <br />
c、用 &lt; 来改变读进的数据信道(stdin)，使之从指定的档案读进； <br />
d、用 &gt; 来改变送出的数据信道(stdout, stderr)，使之输出到指定的档案； <br />
e、0 是 &lt; 的默认值，因此 &lt; 与 0&lt;是一样的；同理，&gt; 与 1&gt; 是一样的； <br />
f、在IO重定向 中，stdout 与 stderr 的管道会先准备好，才会从 stdin 读进资料； <br />
g、管道“|”(pipe line):上一个命令的 stdout 接到下一个命令的 stdin; <br />
h、tee 命令是在不影响原本 I/O 的情况下，将 stdout 复制一份到档案去; <br />
i、bash（ksh）执行命令的过程：分析命令－变量求值－命令替代（``和$( )）－重定向－通配符展开－确定路径－执行命令； <br />
j、( ) 将 command group 置于 sub-shell 去执行，也称 nested sub-shell，它有一点非常重要的特性是：继承父shell的Standard input, output, and error plus any other open file descriptors。 <br />
k、exec 命令：常用来替代当前 shell 并重新启动一个 shell，换句话说，并没有启动子 shell。使用这一命令时任何现有环境都将会被清除，。exec 在对文件描述符进行操作的时候，也只有在这时，exec 不会覆盖你当前的 shell 环境。 </p>
<p>&nbsp;</p>
<p><strong>IO文件描述符：</strong></p>
<p>&gt;&amp;n 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出 <br />
&lt;&amp;n 标准输入复制自文件描述符 n <br />
&lt;&amp;- 关闭标准输入（键盘） <br />
&gt;&amp;- 关闭标准输出 <br />
n&lt;&amp;- 表示将 n 号输入关闭 <br />
n&gt;&amp;- 表示将 n 号输出关闭 <br />
上述所有形式都可以前导一个数字，此时建立的文件描述符由这个数字指定而不是缺省的 0 或 1。如： <br />
... 2&gt;file 运行一个命令并把错误输出(文件描述符 2)定向到 file。 <br />
... 2&gt;&amp;1 运行一个命令并把它的标准输出和输出合并。(严格的说是通过复制文件描述符 1 来建立文件描述符 2 ，但效果通常是合并了两个流。) </p>
<p>&nbsp;</p>
<p><strong>exec命令使用技巧：</strong></p>
<p>exec 0&lt;infilename # 打开文件infilename作为 stdin <br />
exec 1&gt;outfilename # 打开文件outfilename作为stdout <br />
exec 2&gt;errfilename # 打开文件 errfilename作为 stderr <br />
exec 0&lt;&amp;- # 关闭 FD0 <br />
exec 1&gt;&amp;- # 关闭 FD1 <br />
exec 5&gt;&amp;- # 关闭 FD5 </p>	]]></description>
	<guid isPermaLink="false">http://www.leeon.me/feed/168</guid>
  </item>
    <item>
    <title>【原创】PHP中关于mysqli_affected_rows作用行数返回值的小记</title>
    <link>http://leeon.me/a/php-mysqli_affected_rows</link>
	<pubDate>Tue, 20 Dec 2011 19:59:22 +0800</pubDate>
	<category>php</category>
    <description><![CDATA[
	<p>mysqli中关于update操作影响的行数可以有两种返回形式：</p>
<p>1. 返回匹配的行数</p>
<p>2. 返回影响的行数</p>
<p>默认情况下mysqli_affected_rows返回的值为影响的行数，如果我们需要返回匹配的行数，可以使用mysqli_real_connect函数进行数据库连接的初始化，并在函数的flag参数位加上：</p>
<p>
<table class="doctable table">
<tbody class="tbody" valign="center">
<tr valign="center">
<td align="left"><b><tt><font style="background-color:#316ac5;" color="#ffffff">MYSQLI_CLIENT_FOUND_ROWS</font></tt></b></td>
<td align="left">return number of matched rows, not the number of affected rows</td>
</tr>
</tbody>
</table>
</p>
<p>&nbsp;</p>	]]></description>
	<guid isPermaLink="false">http://www.leeon.me/feed/167</guid>
  </item>
    <item>
    <title>jQuery UI accordion插件使用小记</title>
    <link>http://leeon.me/a/jquery-ui-accordion-collapsible-all</link>
	<pubDate>Wed, 07 Dec 2011 15:38:23 +0800</pubDate>
	<category>javascript</category>
    <description><![CDATA[
	<p>需要将accordion的所有tab全部收缩，默认情况下是默认展开第一个，查看jquery ui手册有collapsible属性可以设定，但是纯粹加这个属性并不能奏效，官网的demo也显示的有问题，第一个tab还是被展开了。搜索stackoverflow得到的答案：</p>
<p>[code="js"]<br />
$( "#accordion" ).accordion({ <br />
collapsible: true, <br />
active: false <br />
});<br />
[/code]</p>
<p>查看源代码：默认给active设置的0，这个参数影响了collapsible:true，导致第一个tab还是被展开了，这里需要强制将active设置成false</p>	]]></description>
	<guid isPermaLink="false">http://www.leeon.me/feed/166</guid>
  </item>
  </channel>


</rss>
