<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[蓝羽翩跹]]></title>
        <image>
        <title>http://hi.baidu.com</title>
        <link>http://hi.baidu.com</link>
        <url>http://img.baidu.com/img/logo-hi.gif</url>
        </image>
<description><![CDATA[在此舒发心情，在此一展风采，在此交流学术！]]></description>
<link>http://hi.baidu.com/hengcheng</link>
<language>zh-cn</language>
<generator>www.baidu.com</generator>
<ttl>5</ttl>


<item>
        <title><![CDATA[recaptcha]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/0fe37e60cf52054eeaf8f850.html]]></link>
        <description><![CDATA[
		
		http://api.recaptcha.net/js/recaptcha.js

http://rikugun.javaeye.com/blog/438924 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/0fe37e60cf52054eeaf8f850.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-30  17:13</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/0fe37e60cf52054eeaf8f850.html</guid>
</item>

<item>
        <title><![CDATA[IE  下的 Expected identifier, string or number]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/2dc020fa9d621f839f5146e5.html]]></link>
        <description><![CDATA[
		
		今天做JS程序的时候发现在FF下正常。而在IE下就有<br>
<font color="#ff0000">Expected identifier, string or number </font>这样的错误。<br>
为啥呢！<br>
这里就是FF和IE细微的差别了<br>
你应该可以在程序里发现<br>
var RecaptchaOptions = { lang : &quot;fr&quot;<font size="5"><strong><font color="#ff0000"> , </font></strong></font>};<br>
看到了么红色 那个<br>
IE 在解释这类似代码的时候会认为最后还有一个空元素，这就导致的错误。<br>
而FF忽略最后这个元素。 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/Ajax">Ajax</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/2dc020fa9d621f839f5146e5.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-19  19:45</pubDate>
        <category><![CDATA[Ajax]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/2dc020fa9d621f839f5146e5.html</guid>
</item>

<item>
        <title><![CDATA[死扑街”嘅由来]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/a272dcea364107dad439c904.html]]></link>
        <description><![CDATA[
		
		<p style="margin-bottom: 0pt; margin-top: 0pt;" class="p0"><font size="3"><strong><span style="font-size: 10pt; "><font face="宋体">死扑街</font><font face="Tahoma">&rdquo;</font><font face="宋体">嘅由来</font><font face="Tahoma">[</font><font face="宋体">原来捂糸粗口离嘎</font><font face="Tahoma">] </font></span><span style="font-size: 10.5pt; "><br>
</span></strong><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10pt; ">五六十年代系香港有好多有钱的死鬼佬，成日媾女。 </span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10pt; ">果阵时唔似而家又卡拉<font face="Tahoma">ok</font><font face="宋体">、又上网甘多娱乐活动，媾女基本上只有四种选择， </font></span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10pt; ">第一种：比较无钱就去公园郊游 </span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10pt; ">第二种：有<font face="Tahoma">d</font><font face="宋体">钱就去睇戏 </font></span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10pt; ">第三种：比较有钱就去跳茶舞 </span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10pt; ">第四种：高尚人家去打网球 </span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10pt; ">一般用打网球呢种方法媾女的都系有钱仔，又偏偏系呢班友最无本心，经常嚼完松，搞大人个肚又唔认数，所以广大市民都好憎恨呢班以体育为名玩弄女性的家伙，因为系呢班人里面有好多都系鬼仔，果时系香港鬼佬仲比较霸道，所以大家都唔敢直接叫<font face="Tahoma">&ldquo;</font><font face="宋体">衰人</font><font face="Tahoma">&rdquo;</font><font face="宋体">，就用英文叫呢班人做</font><font face="Tahoma">&ldquo;sports guy&rdquo;</font><font face="宋体">，中文意思系</font><font face="Tahoma">&ldquo;</font><font face="宋体">玩体育的死仔</font><font face="Tahoma">&rdquo; </font></span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10pt; ">经常有家长同<font face="Tahoma">d</font><font face="宋体">意乱情迷的女儿讲，</font><font face="Tahoma">&ldquo;</font><font face="宋体">果个系</font><font face="Tahoma">sports guy</font><font face="宋体">尼嘎，玩你嘎咋，女。</font><font face="Tahoma">&rdquo; </font></span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10.5pt; "><br>
</span><span style="font-size: 10pt; ">到后来，<font face="Tahoma">&ldquo;sports guy&rdquo;</font><font face="宋体">就被音译成广州话</font><font face="Tahoma">&ldquo;</font><font face="宋体">死扑街</font><font face="Tahoma">&rdquo;</font><font face="宋体">，凡系</font><font face="Tahoma">d</font><font face="宋体">好衰好衰的人都系</font><font face="Tahoma">--- </font></span><span style="font-size: 10.5pt; "><br>
</span></font></p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/%C8%A4%CE%B6%C8%A4%CE%C5">趣味趣闻</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/a272dcea364107dad439c904.html#comment">查看评论</a>]]></description>
        <pubDate>2009-07-01  16:41</pubDate>
        <category><![CDATA[趣味趣闻]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/a272dcea364107dad439c904.html</guid>
</item>

<item>
        <title><![CDATA[jquery 对象与dom对象区分及jquery技巧]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/b32a3b739d4444148601b005.html]]></link>
        <description><![CDATA[
		
		<span style="border-collapse: separate; color: rgb(51, 51, 51);  font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 22px; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;" class="Apple-style-span">
<p>iwms的讨论区用到了jQuery这个javascript开发框架，的确很方便，能节省不少开发时间。如果你还没用过jQuery，那一起来学习吧。</p>
<p><strong>一、简介</strong><br>
<br>
<strong>1.1、概述</strong><br>
随着WEB2.0及 ajax思想在互联网上的快速发展传播，陆续出现了一些优秀的Js框架，其中比较著名的有Prototype、YUI、jQuery、mootools、 Bindows以及国内的JSVM框架等，通过将这些JS框架应用到我们的项目中能够使程序员从设计和书写繁杂的JS应用中解脱出来，将关注点转向功能需 求而非实现细节上，从而提高项目的开发速度。<a name="entrymore" title="entrymore"></a><br>
jQuery是继prototype 之后的又一个优秀的Javascript框架。它是由 John Resig 于 2006 年初创建的，它有助于简化 JavaScript&#8482; 以及Ajax 编程。有人使用这样的一比喻来比较prototype和jQuery：prototype就像Java，而jQuery就像ruby. 它是一个简洁快速灵活的JavaScript框架，它能让你在你的网页上简单的操作文档、处理事件、实现特效并为Web页面添加Ajax交互。<br>
<br>
它具有如下一些特点：</p>
<ol>
    <li>代码简练、语义易懂、学习快速、文档丰富。</li>
    <li>jQuery是一个轻量级的脚本，其代码非常小巧，最新版的JavaScript包只有20K左右。</li>
    <li>jQuery支持CSS1-CSS3,以及基本的xPath。</li>
    <li>jQuery是跨浏览器的，它支持的浏览器包括IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+。</li>
    <li>可以很容易的为jQuery扩展其他功能。</li>
    <li>能将JS代码和HTML代码完全分离，便于代码和维护和修改。</li>
    <li>插件丰富，除了jQuery本身带有的一些特效外，可以通过插件实现更多功能，如表单验证、tab导航、拖放效果、表格排序、DataGrid，树形菜单、图像特效以及ajax上传等。</li>
</ol>
<p>　　jQuery的设计会改变你写JavaScript代码的方式，降低你学习使用JS操作网页的复杂度，提高网页JS开发效率，无论对于js初学者还是资深专家，jQuery都将是您的首选。<br>
jQuery适合于设计师、开发者以及那些还好者，同样适合用于商业开发，可以说jQuery适合任何JavaScript应用的地方，可用于不同的Web应用程序中。<br>
官方站点：<a style="color: rgb(179, 43, 213); text-decoration: underline;" mce_href="http://jquery.com/" target="_blank" href="http://jquery.com/">http://jquery.com/</a>&nbsp;&nbsp;  中文站点：<a style="color: rgb(179, 43, 213); text-decoration: underline;" mce_href="http://jquery.org.cn/" target="_blank" href="http://jquery.org.cn/">http://jquery.org.cn/</a><br>
<br>
<strong>1.2、目的</strong><br>
通过学习本文档，能够对jQuery有一个简单的认识了解，清楚JQuery与其他JS框架的不同，掌握jQuery的常用语法、使用技巧及注意事项。<br>
<br>
<strong>二、使用方法</strong><br>
在需要使用JQuery的页面中引入JQuery的js文件即可。<br>
例如：&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.js&quot; mce_src=&quot;js/jquery.js&quot;&gt;&lt;/script&gt;<br>
引入之后便可在页面的任意地方使用jQuery提供的语法。<br>
<br>
<strong>三、学习教程及参考资料</strong><br>
请参照《jQuery中文API手册》和<a style="color: rgb(179, 43, 213); text-decoration: underline;" mce_href="http://jquery.org.cn/visual/cn/index.xml" target="_blank" href="http://jquery.org.cn/visual/cn/index.xml">http://jquery.org.cn/visual/cn/index.xml</a><br>
推荐两篇不错的jquery教程：《<a style="color: rgb(179, 43, 213); text-decoration: underline;" target="_blank" href="http://www.k99k.com/jQuery_getting_started.html">jQuery的起点教程</a>》和《<a style="color: rgb(179, 43, 213); text-decoration: underline;" target="_blank" href="http://www.ibm.com/developerworks/cn/xml/x-ajaxjquery.html">使用 jQuery 简化 Ajax 开发</a>》<br>
<br>
<br>
<strong>四、语法总结和注意事项</strong><br>
<br>
<span style="color: red;"><strong>1、关于页面元素的引用</strong></span><br>
通过jquery的$()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法，且返回的对象为jquery对象（集合对象），不能直接调用dom定义的方法。<br>
<br>
<span style="color: red;"><strong>2、jQuery对象与dom对象的转换</strong></span><br>
只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的，调用方法时要注意操作的是dom对象还是jquery对象。<br>
普通的dom对象一般可以通过$()转换成jquery对象。<br>
如：$(document.getElementById(&quot;msg&quot;))则为jquery对象，可以使用jquery的方法。<br>
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项，一般可通过索引取出。<br>
如：$(&quot;#msg&quot;)[0]，$(&quot;div&quot;).eq(1)[0]，$(&quot;div&quot;).get()[1]，$(&quot;td&quot;)[5]这些都是dom对象，可以使用dom中的方法，但不能再使用Jquery的方法。<br>
以下几种写法都是正确的：<br>
$(&quot;#msg&quot;).html();<br>
$(&quot;#msg&quot;)[0].innerHTML;<br>
$(&quot;#msg&quot;).eq(0)[0].innerHTML;<br>
$(&quot;#msg&quot;).get(0).innerHTML;<br>
<br>
<span style="color: red;"><strong>3、如何获取jQuery集合的某一项</strong></span><br>
对于获取的元素集合，获取其中的某一项（通过索引指定）可以使用<span style="color: blue;">eq</span>或<span style="color: blue;">get(n)</span>方法或者索引号获取，<span style="color: orange;">要注意，eq返回的是jquery对象，而get(n)和索引返回的是dom元素对象</span>。对于jquery对象只能使用jquery的方法，而dom对象只能使用dom的方法，如要获取第三个&lt;div&gt;元素的内容。有如下两种方法：<br>
$(&quot;div&quot;).eq(2).html();&nbsp;&nbsp;&nbsp;&nbsp;  //调用jquery对象的方法<br>
$(&quot;div&quot;).get(2).innerHTML;&nbsp;&nbsp;  //调用dom的方法属性<br>
<br>
<strong><span style="color: red;">4、同一函数实现set和get</span><br>
</strong>　　Jquery中的很多方法都是如此，主要包括如下几个：<br>
$(&quot;#msg&quot;).html();&nbsp;&nbsp;&nbsp;&nbsp;  //返回id为msg的元素节点的html内容。<br>
$(&quot;#msg&quot;).html(&quot;&lt;b&gt;new content&lt;/b&gt;&quot;);&nbsp;&nbsp;<br>
//将&ldquo;&lt;b&gt;new content&lt;/b&gt;&rdquo; 作为html串写入id为msg的元素节点内容中,页面显示粗体的new content<br>
<br>
$(&quot;#msg&quot;).text();&nbsp;&nbsp;&nbsp;&nbsp;  //返回id为msg的元素节点的文本内容。<br>
$(&quot;#msg&quot;).text(&quot;&lt;b&gt;new content&lt;/b&gt;&quot;);&nbsp;&nbsp;<br>
//将&ldquo;&lt;b&gt;new content&lt;/b&gt;&rdquo; 作为普通文本串写入id为msg的元素节点内容中,页面显示&lt;b&gt;new content&lt;/b&gt;<br>
<br>
$(&quot;#msg&quot;).height();&nbsp;&nbsp;&nbsp;&nbsp;  //返回id为msg的元素的高度<br>
$(&quot;#msg&quot;).height(&quot;300&quot;);&nbsp;&nbsp;  //将id为msg的元素的高度设为300<br>
$(&quot;#msg&quot;).width();&nbsp;&nbsp;&nbsp;&nbsp;  //返回id为msg的元素的宽度<br>
$(&quot;#msg&quot;).width(&quot;300&quot;);&nbsp;&nbsp;  //将id为msg的元素的宽度设为300<br>
<br>
$(&quot;input&quot;).val(&quot;);&nbsp;&nbsp;  //返回表单输入框的value值<br>
$(&quot;input&quot;).val(&quot;test&quot;);&nbsp;&nbsp;  //将表单输入框的value值设为test<br>
<br>
$(&quot;#msg&quot;).click();&nbsp;&nbsp;  //触发id为msg的元素的单击事件<br>
$(&quot;#msg&quot;).click(fn);&nbsp;&nbsp;  //为id为msg的元素单击事件添加函数<br>
同样blur,focus,select,submit事件都可以有着两种调用方法<br>
<br>
<span style="color: red;"><strong>5、集合处理功能</strong></span><br>
对于jquery返回的集合内容无需我们自己循环遍历并对每个对象分别做处理，jquery已经为我们提供的很方便的方法进行集合的处理。<br>
包括两种形式：<br>
$(&quot;p&quot;).each(function(i){this.style.color=['#f00','#0f0','#00f'][i]})&nbsp;&nbsp;<br>
//为索引分别为0，1，2的p元素分别设定不同的字体颜色。<br>
<br>
$(&quot;tr&quot;).each(function(i){this.style.backgroundColor=['#ccc','#fff'][i%2]})&nbsp;&nbsp;<br>
//实现表格的隔行换色效果<br>
<br>
$(&quot;p&quot;).click(function(){alert($(this).html())})&nbsp;&nbsp;&nbsp;&nbsp;<br>
//为每个p元素增加了click事件，单击某个p元素则弹出其内容<br>
<br>
<span style="color: red;"><strong>6、扩展我们需要的功能</strong></span><br>
$.extend({<br>
&nbsp;&nbsp;  min: function(a, b){return a &lt; b?a:b; },<br>
&nbsp;&nbsp;  max: function(a, b){return a &gt; b?a:b; }<span class="Apple-converted-space"> </span><br>
});&nbsp;&nbsp;  //为jquery扩展了min,max两个方法<br>
使用扩展的方法（通过&ldquo;$.方法名&rdquo;调用）：<br>
alert(&quot;a=10,b=20,max=&quot;+$.max(10,20)+&quot;,min=&quot;+$.min(10,20));<br>
<br>
<span style="color: red;"><strong>7、支持方法的连写</strong></span><br>
所谓连写，即可以对一个jquery对象连续调用各种不同的方法。<br>
例如：<br>
$(&quot;p&quot;).click(function(){alert($(this).html())})<br>
.mouseover(function(){alert('mouse over event')})<br>
.each(function(i){this.style.color=['#f00','#0f0','#00f'][i]});<br>
<br>
<span style="color: red;"><strong>8、操作元素的样式</strong></span><br>
主要包括以下几种方式：<br>
$(&quot;#msg&quot;).css(&quot;background&quot;);&nbsp;&nbsp;&nbsp;&nbsp;  //返回元素的背景颜色<br>
$(&quot;#msg&quot;).css(&quot;background&quot;,&quot;#ccc&quot;)&nbsp;&nbsp;  //设定元素背景为灰色<br>
$(&quot;#msg&quot;).height(300); $(&quot;#msg&quot;).width(&quot;200&quot;);&nbsp;&nbsp;  //设定宽高<br>
$(&quot;#msg&quot;).css({ color: &quot;red&quot;, background: &quot;blue&quot; });//以名值对的形式设定样式<br>
$(&quot;#msg&quot;).addClass(&quot;select&quot;);&nbsp;&nbsp;  //为元素增加名称为select的class<br>
$(&quot;#msg&quot;).removeClass(&quot;select&quot;);&nbsp;&nbsp;  //删除元素名称为select的class<br>
$(&quot;#msg&quot;).toggleClass(&quot;select&quot;);&nbsp;&nbsp;  //如果存在（不存在）就删除（添加）名称为select的class<br>
<br>
<span style="color: red;"><strong>9、完善的事件处理功能</strong></span><br>
Jquery已经为我们提供了各种事件处理方法，我们无需在html元素上直接写事件，而可以直接为通过jquery获取的对象添加事件。<br>
如：<br>
$(&quot;#msg&quot;).click(function(){alert(&quot;good&quot;)})&nbsp;&nbsp;  //为元素添加了单击事件<br>
$(&quot;p&quot;).click(function(i){this.style.color=['#f00','#0f0','#00f'][i]})<br>
//为三个不同的p元素单击事件分别设定不同的处理</p>
<p><font color="#e6421a">jQuery中几个自定义的事件</font>：<br>
（1）<span style="color: blue;">hover(fn1,fn2)：</span>一个模仿悬停事件（鼠标移动到一个对象上面及移出这个对象）的方法。当鼠标移动到一个匹配的元素上面时，会触发指定的第一个函数。当鼠标移出这个元素时，会触发指定的第二个函数。<br>
//当鼠标放在表格的某行上时将class置为over，离开时置为out。<br>
$(&quot;tr&quot;).hover(function(){<br>
$(this).addClass(&quot;over&quot;);<br>
},<br>
&nbsp;&nbsp;  function(){<br>
&nbsp;&nbsp;  $(this).addClass(&quot;out&quot;);<span class="Apple-converted-space"> </span><br>
});<br>
（2）<span style="color: blue;">ready(fn):</span>当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。<br>
$(document).ready(function(){alert(&quot;Load Success&quot;)})<br>
//页面加载完毕提示&ldquo;Load Success&rdquo;,相当于onload事件。与$(fn)等价<br>
（3）<span style="color: blue;">toggle(evenFn,oddFn):<span class="Apple-converted-space"> </span></span>每次点击时切换要调用的函数。如果点击了一个匹配的元素，则触发指定的第一个函数，当再次点击同一元素时，则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用。<br>
&nbsp;&nbsp;  //每次点击时轮换添加和删除名为selected的class。<br>
&nbsp;&nbsp;  $(&quot;p&quot;).toggle(function(){<br>
&nbsp;&nbsp;&nbsp;&nbsp;  $(this).addClass(&quot;selected&quot;);&nbsp;&nbsp;<span class="Apple-converted-space"> </span><br>
&nbsp;&nbsp;  },function(){<br>
&nbsp;&nbsp;&nbsp;&nbsp;  $(this).removeClass(&quot;selected&quot;);<span class="Apple-converted-space"> </span><br>
&nbsp;&nbsp;  });<br>
（4）<span style="color: blue;">trigger(eventtype):</span><span class="Apple-converted-space"> </span>在每一个匹配的元素上触发某类事件。<br>
例如：<br>
&nbsp;&nbsp;  $(&quot;p&quot;).trigger(&quot;click&quot;);&nbsp;&nbsp;&nbsp;&nbsp;  //触发所有p元素的click事件<br>
（5）<span style="color: blue;">bind(eventtype,fn)，unbind(eventtype):<span class="Apple-converted-space"> </span></span>事件的绑定与反绑定<br>
从每一个匹配的元素中（添加）删除绑定的事件。<br>
例如：<br>
$(&quot;p&quot;).bind(&quot;click&quot;, function(){alert($(this).text());});&nbsp;&nbsp;  //为每个p元素添加单击事件<br>
$(&quot;p&quot;).unbind();&nbsp;&nbsp;  //删除所有p元素上的所有事件<br>
$(&quot;p&quot;).unbind(&quot;click&quot;)&nbsp;&nbsp;  //删除所有p元素上的单击事件<br>
<br>
<span style="color: red;"><strong>10、几个实用特效功能</strong></span><br>
其中toggle()和slidetoggle()方法提供了状态切换功能。<br>
如toggle()方法包括了hide()和show()方法。<br>
slideToggle()方法包括了slideDown()和slideUp方法。<br>
<br>
<span style="color: red;"><strong>11、几个有用的jQuery方法</strong></span><br>
<span style="color: blue;">$.browser.浏览器类型：</span>检测浏览器类型。有效参数：safari, opera, msie, mozilla。如检测是否ie：$.browser.isie，是ie浏览器则返回true。<br>
<span style="color: blue;">$.each(obj, fn)：</span>通用的迭代函数。可用于近似地迭代对象和数组（代替循环）。<br>
如<br>
$.each( [0,1,2], function(i, n){ alert( &quot;Item #&quot; + i + &quot;: &quot; + n ); });<span class="Apple-converted-space"> </span><br>
等价于：<br>
var tempArr=[0,1,2];<br>
for(var i=0;i&lt;tempArr.length;i++){<br>
&nbsp;&nbsp;  alert(&quot;Item #&quot;+i+&quot;: &quot;+tempArr[i]);<br>
}<br>
也可以处理json数据，如<br>
$.each( { name: &quot;John&quot;, lang: &quot;JS&quot; }, function(i, n){ alert( &quot;Name: &quot; + i + &quot;, Value: &quot; + n ); });<br>
结果为：<br>
Name:name, Value:John<br>
Name:lang, Value:JS<br>
<span style="color: blue;">$.extend(target,prop1,propN)：</span>用一个或多个其他对象来扩展一个对象，返回这个被扩展的对象。这是jquery实现的继承方式。<br>
如：<br>
$.extend(settings, options);&nbsp;&nbsp;<br>
//合并settings和options，并将合并结果返回settings中，相当于options继承setting并将继承结果保存在setting中。<br>
var settings = $.extend({}, defaults, options);<br>
//合并defaults和options，并将合并结果返回到setting中而不覆盖default内容。<br>
可以有多个参数（合并多项并返回）<br>
<span style="color: blue;">$.map(array, fn)：</span>数组映射。把一个数组中的项目(处理转换后)保存到到另一个新数组中，并返回生成的新数组。<br>
如：<br>
var tempArr=$.map( [0,1,2], function(i){ return i + 4; });<br>
tempArr内容为：[4,5,6]<br>
var tempArr=$.map( [0,1,2], function(i){ return i &gt; 0 ? i + 1 : null; });<br>
tempArr内容为：[2,3]<br>
<span style="color: blue;">$.merge(arr1,arr2):</span>合并两个数组并删除其中重复的项目。<br>
如：$.merge( [0,1,2], [2,3,4] )&nbsp;&nbsp;  //返回[0,1,2,3,4]<br>
<span style="color: blue;">$.trim(str)：</span>删除字符串两端的空白字符。<span class="Apple-converted-space"> </span><br>
如：$.trim(&quot;&nbsp;&nbsp;  hello, how are you?&nbsp;&nbsp;  &quot;);&nbsp;&nbsp;  //返回&quot;hello,how are you? &quot;<br>
<br>
<span style="color: red;"><strong>12、解决自定义方法或其他类库与jQuery的冲突</strong></span><br>
很多时候我们自己定义了$(id)方法来获取一个元素，或者其他的一些js类库如prototype也都定义了$方法，如果同时把这些内容放在一起就会引起变量方法定义冲突，Jquery对此专门提供了方法用于解决此问题。<br>
使用jquery中的<span style="color: blue;">jQuery.noConflict();</span>方法即可把变量$的控制权让渡给第一个实现它的那个库或之前自定义的$方法。之后应用Jquery的时候只要将所有的$换成jQuery即可，如原来引用对象方法$(&quot;#msg&quot;)改为jQuery(&quot;#msg&quot;)。<br>
如：<br>
jQuery.noConflict();<span class="Apple-converted-space"> </span><br>
// 开始使用jQuery<br>
jQuery(&quot;div&nbsp;&nbsp;  p&quot;).hide();<br>
// 使用其他库的 $()<span class="Apple-converted-space"> </span><br>
$(&quot;content&quot;).style.display = 'none';</p>
</span> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/jquery%20%D7%A8%C7%F8">jquery 专区</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/b32a3b739d4444148601b005.html#comment">查看评论</a>]]></description>
        <pubDate>2009-06-09  18:30</pubDate>
        <category><![CDATA[jquery 专区]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/b32a3b739d4444148601b005.html</guid>
</item>

<item>
        <title><![CDATA[ISO Latin-1字符集]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/f5108423eba64a43ac34de2f.html]]></link>
        <description><![CDATA[
		
		<h1>ISO Latin-1字符集</h1>
                                                                  
<table>
    <tbody>
        <tr class="head">
            <td>字符</td>
            <td>十进制字符编号</td>
            <td>实体名字</td>
            <td>说明</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#00;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#01;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#02;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#03;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#04;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#05;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#06;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#07;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#08;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#09;</td>
            <td>---</td>
            <td>制表符Horizontal tab</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#10;</td>
            <td>---</td>
            <td>换行Line feed</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#11;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#12;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#13;</td>
            <td>---</td>
            <td>回车Carriage Return</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#14;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#15;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#16;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#17;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#18;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#19;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#20;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#21;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#22;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#23;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#24;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#25;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#26;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#27;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#28;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#29;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#30;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#31;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td> </td>
            <td>&amp;#32;</td>
            <td>---</td>
            <td>Space</td>
        </tr>
        <tr>
            <td>!</td>
            <td>&amp;#33;</td>
            <td>---</td>
            <td>惊叹号Exclamation mark</td>
        </tr>
        <tr>
            <td>&quot;</td>
            <td>&amp;#34;</td>
            <td>&amp;quot;</td>
            <td>双引号Quotation mark</td>
        </tr>
        <tr>
            <td>#</td>
            <td>&amp;#35;</td>
            <td>---</td>
            <td>数字标志Number sign</td>
        </tr>
        <tr>
            <td>$</td>
            <td>&amp;#36;</td>
            <td>---</td>
            <td>美元标志Dollar sign</td>
        </tr>
        <tr>
            <td>%</td>
            <td>&amp;#37;</td>
            <td>---</td>
            <td>百分号Percent sign</td>
        </tr>
        <tr>
            <td>&amp;</td>
            <td>&amp;#38;</td>
            <td>&amp;amp;</td>
            <td>Ampersand</td>
        </tr>
        <tr>
            <td>'</td>
            <td>&amp;#39;</td>
            <td>---</td>
            <td>单引号Apostrophe</td>
        </tr>
        <tr>
            <td>(</td>
            <td>&amp;#40;</td>
            <td>---</td>
            <td>小括号左边部分Left parenthesis</td>
        </tr>
        <tr>
            <td>)</td>
            <td>&amp;#41;</td>
            <td>---</td>
            <td>小括号右边部分Right parenthesis</td>
        </tr>
        <tr>
            <td>*</td>
            <td>&amp;#42;</td>
            <td>---</td>
            <td>星号Asterisk</td>
        </tr>
        <tr>
            <td>+</td>
            <td>&amp;#43;</td>
            <td>---</td>
            <td>加号Plus sign</td>
        </tr>
        <tr>
            <td>,</td>
            <td>&amp;#44;</td>
            <td>---</td>
            <td>逗号Comma</td>
        </tr>
        <tr>
            <td>-</td>
            <td>&amp;#45;</td>
            <td>---</td>
            <td>连字号Hyphen</td>
        </tr>
        <tr>
            <td>.</td>
            <td>&amp;#46;</td>
            <td>---</td>
            <td>句号Period (fullstop)</td>
        </tr>
        <tr>
            <td>/</td>
            <td>&amp;#47;</td>
            <td>---</td>
            <td>斜杠Solidus (slash)</td>
        </tr>
        <tr>
            <td>0</td>
            <td>&amp;#48;</td>
            <td>---</td>
            <td>数字0 Digit 0</td>
        </tr>
        <tr>
            <td>1</td>
            <td>&amp;#49;</td>
            <td>---</td>
            <td>数字1 Digit 1</td>
        </tr>
        <tr>
            <td>2</td>
            <td>&amp;#50;</td>
            <td>---</td>
            <td>数字2 Digit 2</td>
        </tr>
        <tr>
            <td>3</td>
            <td>&amp;#51;</td>
            <td>---</td>
            <td>数字3 Digit 3</td>
        </tr>
        <tr>
            <td>4</td>
            <td>&amp;#52;</td>
            <td>---</td>
            <td>数字4 Digit 4</td>
        </tr>
        <tr>
            <td>5</td>
            <td>&amp;#53;</td>
            <td>---</td>
            <td>数字5 Digit 5</td>
        </tr>
        <tr>
            <td>6</td>
            <td>&amp;#54;</td>
            <td>---</td>
            <td>数字6 Digit 6</td>
        </tr>
        <tr>
            <td>7</td>
            <td>&amp;#55;</td>
            <td>---</td>
            <td>数字7 Digit 7</td>
        </tr>
        <tr>
            <td>8</td>
            <td>&amp;#56;</td>
            <td>---</td>
            <td>数字8 Digit 8</td>
        </tr>
        <tr>
            <td>9</td>
            <td>&amp;#57;</td>
            <td>---</td>
            <td>数字9 Digit 9</td>
        </tr>
        <tr>
            <td>:</td>
            <td>&amp;#58;</td>
            <td>---</td>
            <td>冒号Colon</td>
        </tr>
        <tr>
            <td>;</td>
            <td>&amp;#59;</td>
            <td>---</td>
            <td>分号Semicolon</td>
        </tr>
        <tr>
            <td>&lt;</td>
            <td>&amp;#60;</td>
            <td>&amp;lt;</td>
            <td>小于号Less than</td>
        </tr>
        <tr>
            <td>=</td>
            <td>&amp;#61;</td>
            <td>---</td>
            <td>等于符号Equals sign</td>
        </tr>
        <tr>
            <td>&gt;</td>
            <td>&amp;#62;</td>
            <td>&amp;gt;</td>
            <td>大于号Greater than</td>
        </tr>
        <tr>
            <td>?</td>
            <td>&amp;#63;</td>
            <td>---</td>
            <td>问号Question mark</td>
        </tr>
        <tr>
            <td>@</td>
            <td>&amp;#64;</td>
            <td>---</td>
            <td>Commercial at</td>
        </tr>
        <tr>
            <td>A</td>
            <td>&amp;#65;</td>
            <td>---</td>
            <td>大写A Capital A</td>
        </tr>
        <tr>
            <td>B</td>
            <td>&amp;#66;</td>
            <td>---</td>
            <td>大写B Capital B</td>
        </tr>
        <tr>
            <td>C</td>
            <td>&amp;#67;</td>
            <td>---</td>
            <td>大写C Capital C</td>
        </tr>
        <tr>
            <td>D</td>
            <td>&amp;#68;</td>
            <td>---</td>
            <td>大写D Capital D</td>
        </tr>
        <tr>
            <td>E</td>
            <td>&amp;#69;</td>
            <td>---</td>
            <td>大写E Capital E</td>
        </tr>
        <tr>
            <td>F</td>
            <td>&amp;#70;</td>
            <td>---</td>
            <td>大写F Capital F</td>
        </tr>
        <tr>
            <td>G</td>
            <td>&amp;#71;</td>
            <td>---</td>
            <td>大写G Capital G</td>
        </tr>
        <tr>
            <td>H</td>
            <td>&amp;#72;</td>
            <td>---</td>
            <td>大写H Capital H</td>
        </tr>
        <tr>
            <td>I</td>
            <td>&amp;#73;</td>
            <td>---</td>
            <td>大写J Capital I</td>
        </tr>
        <tr>
            <td>J</td>
            <td>&amp;#74;</td>
            <td>---</td>
            <td>大写K Capital J</td>
        </tr>
        <tr>
            <td>K</td>
            <td>&amp;#75;</td>
            <td>---</td>
            <td>大写L Capital K</td>
        </tr>
        <tr>
            <td>L</td>
            <td>&amp;#76;</td>
            <td>---</td>
            <td>大写K Capital L</td>
        </tr>
        <tr>
            <td>M</td>
            <td>&amp;#77;</td>
            <td>---</td>
            <td>大写M Capital M</td>
        </tr>
        <tr>
            <td>N</td>
            <td>&amp;#78;</td>
            <td>---</td>
            <td>大写N Capital N</td>
        </tr>
        <tr>
            <td>O</td>
            <td>&amp;#79;</td>
            <td>---</td>
            <td>大写O Capital O</td>
        </tr>
        <tr>
            <td>P</td>
            <td>&amp;#80;</td>
            <td>---</td>
            <td>大写P Capital P</td>
        </tr>
        <tr>
            <td>Q</td>
            <td>&amp;#81;</td>
            <td>---</td>
            <td>大写Q Capital Q</td>
        </tr>
        <tr>
            <td>R</td>
            <td>&amp;#82;</td>
            <td>---</td>
            <td>大写R Capital R</td>
        </tr>
        <tr>
            <td>S</td>
            <td>&amp;#83;</td>
            <td>---</td>
            <td>大写S Capital S</td>
        </tr>
        <tr>
            <td>T</td>
            <td>&amp;#84;</td>
            <td>---</td>
            <td>大写T Capital T</td>
        </tr>
        <tr>
            <td>U</td>
            <td>&amp;#85;</td>
            <td>---</td>
            <td>大写U Capital U</td>
        </tr>
        <tr>
            <td>V</td>
            <td>&amp;#86;</td>
            <td>---</td>
            <td>大写V Capital V</td>
        </tr>
        <tr>
            <td>W</td>
            <td>&amp;#87;</td>
            <td>---</td>
            <td>大写W Capital W</td>
        </tr>
        <tr>
            <td>X</td>
            <td>&amp;#88;</td>
            <td>---</td>
            <td>大写X Capital X</td>
        </tr>
        <tr>
            <td>Y</td>
            <td>&amp;#89;</td>
            <td>---</td>
            <td>大写Y Capital Y</td>
        </tr>
        <tr>
            <td>Z</td>
            <td>&amp;#90;</td>
            <td>---</td>
            <td>大写Z Capital Z</td>
        </tr>
        <tr>
            <td>[</td>
            <td>&amp;#91;</td>
            <td>---</td>
            <td>中括号左边部分Left square bracket</td>
        </tr>
        <tr>
            <td>\</td>
            <td>&amp;#92;</td>
            <td>---</td>
            <td>反斜杠Reverse solidus (backslash)</td>
        </tr>
        <tr>
            <td>]</td>
            <td>&amp;#93;</td>
            <td>---</td>
            <td>中括号右边部分Right square bracket</td>
        </tr>
        <tr>
            <td>^</td>
            <td>&amp;#94;</td>
            <td>---</td>
            <td>Caret</td>
        </tr>
        <tr>
            <td>_</td>
            <td>&amp;#95;</td>
            <td>---</td>
            <td>下划线Horizontal bar (underscore)</td>
        </tr>
        <tr>
            <td>`</td>
            <td>&amp;#96;</td>
            <td>---</td>
            <td>尖重音符Acute accent</td>
        </tr>
        <tr>
            <td>a</td>
            <td>&amp;#97;</td>
            <td>---</td>
            <td>小写a Small a</td>
        </tr>
        <tr>
            <td>b</td>
            <td>&amp;#98;</td>
            <td>---</td>
            <td>小写b Small b</td>
        </tr>
        <tr>
            <td>c</td>
            <td>&amp;#99;</td>
            <td>---</td>
            <td>小写c Small c</td>
        </tr>
        <tr>
            <td>d</td>
            <td>&amp;#100;</td>
            <td>---</td>
            <td>小写d Small d</td>
        </tr>
        <tr>
            <td>e</td>
            <td>&amp;#101;</td>
            <td>---</td>
            <td>小写e Small e</td>
        </tr>
        <tr>
            <td>f</td>
            <td>&amp;#102;</td>
            <td>---</td>
            <td>小写f Small f</td>
        </tr>
        <tr>
            <td>g</td>
            <td>&amp;#103;</td>
            <td>---</td>
            <td>小写g Small g</td>
        </tr>
        <tr>
            <td>h</td>
            <td>&amp;#104;</td>
            <td>---</td>
            <td>小写h Small h</td>
        </tr>
        <tr>
            <td>i</td>
            <td>&amp;#105;</td>
            <td>---</td>
            <td>小写i Small i</td>
        </tr>
        <tr>
            <td>j</td>
            <td>&amp;#106;</td>
            <td>---</td>
            <td>小写j Small j</td>
        </tr>
        <tr>
            <td>k</td>
            <td>&amp;#107;</td>
            <td>---</td>
            <td>小写k Small k</td>
        </tr>
        <tr>
            <td>l</td>
            <td>&amp;#108;</td>
            <td>---</td>
            <td>小写l Small l</td>
        </tr>
        <tr>
            <td>m</td>
            <td>&amp;#109;</td>
            <td>---</td>
            <td>小写m Small m</td>
        </tr>
        <tr>
            <td>n</td>
            <td>&amp;#110;</td>
            <td>---</td>
            <td>小写n Small n</td>
        </tr>
        <tr>
            <td>o</td>
            <td>&amp;#111;</td>
            <td>---</td>
            <td>小写o Small o</td>
        </tr>
        <tr>
            <td>p</td>
            <td>&amp;#112;</td>
            <td>---</td>
            <td>小写p Small p</td>
        </tr>
        <tr>
            <td>q</td>
            <td>&amp;#113;</td>
            <td>---</td>
            <td>小写q Small q</td>
        </tr>
        <tr>
            <td>r</td>
            <td>&amp;#114;</td>
            <td>---</td>
            <td>小写r Small r</td>
        </tr>
        <tr>
            <td>s</td>
            <td>&amp;#115;</td>
            <td>---</td>
            <td>小写s Small s</td>
        </tr>
        <tr>
            <td>t</td>
            <td>&amp;#116;</td>
            <td>---</td>
            <td>小写t Small t</td>
        </tr>
        <tr>
            <td>u</td>
            <td>&amp;#117;</td>
            <td>---</td>
            <td>小写u Small u</td>
        </tr>
        <tr>
            <td>v</td>
            <td>&amp;#118;</td>
            <td>---</td>
            <td>小写v Small v</td>
        </tr>
        <tr>
            <td>w</td>
            <td>&amp;#119;</td>
            <td>---</td>
            <td>小写w Small w</td>
        </tr>
        <tr>
            <td>x</td>
            <td>&amp;#120;</td>
            <td>---</td>
            <td>小写x Small x</td>
        </tr>
        <tr>
            <td>y</td>
            <td>&amp;#121;</td>
            <td>---</td>
            <td>小写y Small y</td>
        </tr>
        <tr>
            <td>z</td>
            <td>&amp;#122;</td>
            <td>---</td>
            <td>小写z Small z</td>
        </tr>
        <tr>
            <td>{</td>
            <td>&amp;#123;</td>
            <td>---</td>
            <td>大括号左边部分Left curly brace</td>
        </tr>
        <tr>
            <td>|</td>
            <td>&amp;#124;</td>
            <td>---</td>
            <td>竖线Vertical bar</td>
        </tr>
        <tr>
            <td>}</td>
            <td>&amp;#125;</td>
            <td>---</td>
            <td>大括号右边部分Right curly brace</td>
        </tr>
        <tr>
            <td>~</td>
            <td>&amp;#126;</td>
            <td>---</td>
            <td>Tilde</td>
        </tr>
        <tr>
            <td>---</td>
            <td>&amp;#127;</td>
            <td>---</td>
            <td>未使用Unused</td>
        </tr>
        <tr>
            <td> </td>
            <td>&amp;#160;</td>
            <td>&amp;nbsp;</td>
            <td>空格Nonbreaking space</td>
        </tr>
        <tr>
            <td>&#161;</td>
            <td>&amp;#161;</td>
            <td>&amp;iexcl;</td>
            <td>Inverted exclamation</td>
        </tr>
        <tr>
            <td>&#162;</td>
            <td>&amp;#162;</td>
            <td>&amp;cent;</td>
            <td>货币分标志Cent sign</td>
        </tr>
        <tr>
            <td>&#163;</td>
            <td>&amp;#163;</td>
            <td>&amp;pound;</td>
            <td>英镑标志Pound sterling</td>
        </tr>
        <tr>
            <td>¤</td>
            <td>&amp;#164;</td>
            <td>&amp;curren;</td>
            <td>通用货币标志General currency sign</td>
        </tr>
        <tr>
            <td>&#165;</td>
            <td>&amp;#165;</td>
            <td>&amp;yen;</td>
            <td>日元标志Yen sign</td>
        </tr>
        <tr>
            <td>&#166;</td>
            <td>&amp;#166;</td>
            <td>&amp;brvbar; or &amp;brkbar;</td>
            <td>断竖线Broken vertical bar</td>
        </tr>
        <tr>
            <td>§</td>
            <td>&amp;#167;</td>
            <td>&amp;sect;</td>
            <td>分节号Section sign</td>
        </tr>
        <tr>
            <td>&uml;</td>
            <td>&amp;#168;</td>
            <td>&amp;uml; or &amp;die;</td>
            <td>变音符号Umlaut</td>
        </tr>
        <tr>
            <td>&#169;</td>
            <td>&amp;#169;</td>
            <td>&amp;copy;</td>
            <td>版权标志Copyright</td>
        </tr>
        <tr>
            <td>&#170;</td>
            <td>&amp;#170;</td>
            <td>&amp;ordf;</td>
            <td>Feminine ordinal</td>
        </tr>
        <tr>
            <td>&#171;</td>
            <td>&amp;#171;</td>
            <td>&amp;laquo;</td>
            <td>Left angle quote, guillemet left</td>
        </tr>
        <tr>
            <td>&#172;</td>
            <td>&amp;#172;</td>
            <td>&amp;not</td>
            <td>Not sign</td>
        </tr>
        <tr>
            <td>&#173;</td>
            <td>&amp;#173;</td>
            <td>&amp;shy;</td>
            <td>Soft hyphen</td>
        </tr>
        <tr>
            <td>&#174;</td>
            <td>&amp;#174;</td>
            <td>&amp;reg;</td>
            <td>注册商标标志Registered trademark</td>
        </tr>
        <tr>
            <td>&#175;</td>
            <td>&amp;#175;</td>
            <td>&amp;macr; or &amp;hibar;</td>
            <td>长音符号Macron accent</td>
        </tr>
        <tr>
            <td>°</td>
            <td>&amp;#176;</td>
            <td>&amp;deg;</td>
            <td>度数标志Degree sign</td>
        </tr>
        <tr>
            <td>±</td>
            <td>&amp;#177;</td>
            <td>&amp;plusmn;</td>
            <td>加或减Plus or minus</td>
        </tr>
        <tr>
            <td>&#178;</td>
            <td>&amp;#178;</td>
            <td>&amp;sup2;</td>
            <td>上标2 Superscript two</td>
        </tr>
        <tr>
            <td>&#179;</td>
            <td>&amp;#179;</td>
            <td>&amp;sup3;</td>
            <td>上标3 Superscript three</td>
        </tr>
        <tr>
            <td>&#180;</td>
            <td>&amp;#180;</td>
            <td>&amp;acute;</td>
            <td>尖重音符Acute accent</td>
        </tr>
        <tr>
            <td>&#181;</td>
            <td>&amp;#181;</td>
            <td>&amp;micro;</td>
            <td>Micro sign</td>
        </tr>
        <tr>
            <td>&#182;</td>
            <td>&amp;#182;</td>
            <td>&amp;para;</td>
            <td>Paragraph sign</td>
        </tr>
        <tr>
            <td>·</td>
            <td>&amp;#183;</td>
            <td>&amp;middot;</td>
            <td>Middle dot</td>
        </tr>
        <tr>
            <td>&#184;</td>
            <td>&amp;#184;</td>
            <td>&amp;cedil;</td>
            <td>Cedilla</td>
        </tr>
        <tr>
            <td>&#185;</td>
            <td>&amp;#185;</td>
            <td>&amp;sup1;</td>
            <td>上标1 Superscript one</td>
        </tr>
        <tr>
            <td>&#186;</td>
            <td>&amp;#186;</td>
            <td>&amp;ordm;</td>
            <td>Masculine ordinal</td>
        </tr>
        <tr>
            <td>&#187;</td>
            <td>&amp;#187;</td>
            <td>&amp;raquo;</td>
            <td>Right angle quote, guillemet right</td>
        </tr>
        <tr>
            <td>&#188;</td>
            <td>&amp;#188;</td>
            <td>&amp;frac14;</td>
            <td>四分之一Fraction one-fourth</td>
        </tr>
        <tr>
            <td>&#189;</td>
            <td>&amp;#189;</td>
            <td>&amp;frac12;</td>
            <td>二分之一Fraction one-half</td>
        </tr>
        <tr>
            <td>&#190;</td>
            <td>&amp;#190;</td>
            <td>&amp;frac34;</td>
            <td>四分之三Fraction three-fourths</td>
        </tr>
        <tr>
            <td>&#191;</td>
            <td>&amp;#191;</td>
            <td>&amp;iquest;</td>
            <td>Inverted question mark</td>
        </tr>
        <tr>
            <td>&#192;</td>
            <td>&amp;#192;</td>
            <td>&amp;Agrave;</td>
            <td>Capital A, grave accent</td>
        </tr>
        <tr>
            <td>&#193;</td>
            <td>&amp;#193;</td>
            <td>&amp;Aacute;</td>
            <td>Capital A, acute accent</td>
        </tr>
        <tr>
            <td>&#194;</td>
            <td>&amp;#194;</td>
            <td>&amp;Acirc;</td>
            <td>Capital A, circumflex</td>
        </tr>
        <tr>
            <td>&#195;</td>
            <td>&amp;#195;</td>
            <td>&amp;Atilde;</td>
            <td>Capital A, tilde</td>
        </tr>
        <tr>
            <td>&#196;</td>
            <td>&amp;#196;</td>
            <td>&amp;Auml;</td>
            <td>Capital A, di?esis / umlaut</td>
        </tr>
        <tr>
            <td>&#197;</td>
            <td>&amp;#197;</td>
            <td>&amp;Aring;</td>
            <td>Capital A, ring</td>
        </tr>
        <tr>
            <td>&#198;</td>
            <td>&amp;#198;</td>
            <td>&amp;AElig;</td>
            <td>Capital AE ligature</td>
        </tr>
        <tr>
            <td>&#199;</td>
            <td>&amp;#199;</td>
            <td>&amp;Ccedil;</td>
            <td>Capital C, cedilla</td>
        </tr>
        <tr>
            <td>&#200;</td>
            <td>&amp;#200;</td>
            <td>&amp;Egrave;</td>
            <td>Capital E, grave accent</td>
        </tr>
        <tr>
            <td>&#201;</td>
            <td>&amp;#201;</td>
            <td>&amp;Eacute;</td>
            <td>Capital E, acute accent</td>
        </tr>
        <tr>
            <td>&#202;</td>
            <td>&amp;#202;</td>
            <td>&amp;Ecirc;</td>
            <td>Capital E, circumflex</td>
        </tr>
        <tr>
            <td>&#203;</td>
            <td>&amp;#203;</td>
            <td>&amp;Euml;</td>
            <td>Capital E, di?esis / umlaut</td>
        </tr>
        <tr>
            <td>&#204;</td>
            <td>&amp;#204;</td>
            <td>&amp;Igrave;</td>
            <td>Capital I, grave accent</td>
        </tr>
        <tr>
            <td>&#205;</td>
            <td>&amp;#205;</td>
            <td>&amp;Iacute;</td>
            <td>Capital I, acute accent</td>
        </tr>
        <tr>
            <td>&#206;</td>
            <td>&amp;#206;</td>
            <td>&amp;Icirc;</td>
            <td>Capital I, circumflex</td>
        </tr>
        <tr>
            <td>&#207;</td>
            <td>&amp;#207;</td>
            <td>&amp;Iuml;</td>
            <td>Capital I, di?esis / umlaut</td>
        </tr>
        <tr>
            <td>&#208;</td>
            <td>&amp;#208;</td>
            <td>&amp;ETH;</td>
            <td>Capital Eth, Icelandic</td>
        </tr>
        <tr>
            <td>&#209;</td>
            <td>&amp;#209;</td>
            <td>&amp;Ntilde;</td>
            <td>Capital N, tilde</td>
        </tr>
        <tr>
            <td>&#210;</td>
            <td>&amp;#210;</td>
            <td>&amp;Ograve;</td>
            <td>Capital O, grave accent</td>
        </tr>
        <tr>
            <td>&#211;</td>
            <td>&amp;#211;</td>
            <td>&amp;Oacute;</td>
            <td>Capital O, acute accent</td>
        </tr>
        <tr>
            <td>&#212;</td>
            <td>&amp;#212;</td>
            <td>&amp;Ocirc;</td>
            <td>Capital O, circumflex</td>
        </tr>
        <tr>
            <td>&#213;</td>
            <td>&amp;#213;</td>
            <td>&amp;Otilde;</td>
            <td>Capital O, tilde</td>
        </tr>
        <tr>
            <td>&#214;</td>
            <td>&amp;#214;</td>
            <td>&amp;Ouml;</td>
            <td>Capital O, di?esis / umlaut</td>
        </tr>
        <tr>
            <td>×</td>
            <td>&amp;#215;</td>
            <td>&amp;times;</td>
            <td>乘号Multiply sign</td>
        </tr>
        <tr>
            <td>&#216;</td>
            <td>&amp;#216;</td>
            <td>&amp;Oslash;</td>
            <td>Capital O, slash</td>
        </tr>
        <tr>
            <td>&#217;</td>
            <td>&amp;#217;</td>
            <td>&amp;Ugrave;</td>
            <td>Capital U, grave accent</td>
        </tr>
        <tr>
            <td>&#218;</td>
            <td>&amp;#218;</td>
            <td>&amp;Uacute;</td>
            <td>Capital U, acute accent</td>
        </tr>
        <tr>
            <td>&#219;</td>
            <td>&amp;#219;</td>
            <td>&amp;Ucirc;</td>
            <td>Capital U, circumflex</td>
        </tr>
        <tr>
            <td>&#220;</td>
            <td>&amp;#220;</td>
            <td>&amp;Uuml;</td>
            <td>Capital U, di?esis / umlaut</td>
        </tr>
        <tr>
            <td>&#221;</td>
            <td>&amp;#221;</td>
            <td>&amp;Yacute;</td>
            <td>Capital Y, acute accent</td>
        </tr>
        <tr>
            <td>&#222;</td>
            <td>&amp;#222;</td>
            <td>&amp;THORN;</td>
            <td>Capital Thorn, Icelandic</td>
        </tr>
        <tr>
            <td>&#223;</td>
            <td>&amp;#223;</td>
            <td>&amp;szlig;</td>
            <td>Small sharp s, German sz</td>
        </tr>
        <tr>
            <td>à</td>
            <td>&amp;#224;</td>
            <td>&amp;agrave;</td>
            <td>Small a, grave accent</td>
        </tr>
        <tr>
            <td>á</td>
            <td>&amp;#225;</td>
            <td>&amp;aacute;</td>
            <td>Small a, acute accent</td>
        </tr>
        <tr>
            <td>&#226;</td>
            <td>&amp;#226;</td>
            <td>&amp;acirc;</td>
            <td>Small a, circumflex</td>
        </tr>
        <tr>
            <td>&#227;</td>
            <td>&amp;#227;</td>
            <td>&amp;atilde;</td>
            <td>Small a, tilde</td>
        </tr>
        <tr>
            <td>&#228;</td>
            <td>&amp;#228;</td>
            <td>&amp;auml;</td>
            <td>Small a, di?esis / umlaut</td>
        </tr>
        <tr>
            <td>&#229;</td>
            <td>&amp;#229;</td>
            <td>&amp;aring;</td>
            <td>Small a, ring</td>
        </tr>
        <tr>
            <td>&#230;</td>
            <td>&amp;#230;</td>
            <td>&amp;aelig;</td>
            <td>Small ae ligature</td>
        </tr>
        <tr>
            <td>&#231;</td>
            <td>&amp;#231;</td>
            <td>&amp;ccedil;</td>
            <td>Small c, cedilla</td>
        </tr>
        <tr>
            <td>è</td>
            <td>&amp;#232;</td>
            <td>&amp;egrave;</td>
            <td>Small e, grave accent</td>
        </tr>
        <tr>
            <td>é</td>
            <td>&amp;#233;</td>
            <td>&amp;eacute;</td>
            <td>Small e, acute accent</td>
        </tr>
        <tr>
            <td>ê</td>
            <td>&amp;#234;</td>
            <td>&amp;ecirc;</td>
            <td>Small e, circumflex</td>
        </tr>
        <tr>
            <td>&#235;</td>
            <td>&amp;#235;</td>
            <td>&amp;euml;</td>
            <td>Small e, di?esis / umlaut</td>
        </tr>
        <tr>
            <td>ì</td>
            <td>&amp;#236;</td>
            <td>&amp;igrave;</td>
            <td>Small i, grave accent</td>
        </tr>
        <tr>
            <td>í</td>
            <td>&amp;#237;</td>
            <td>&amp;iacute;</td>
            <td>Small i, acute accent</td>
        </tr>
        <tr>
            <td>&#238;</td>
            <td>&amp;#238;</td>
            <td>&amp;icirc;</td>
            <td>Small i, circumflex</td>
        </tr>
        <tr>
            <td>&#239;</td>
            <td>&amp;#239;</td>
            <td>&amp;iuml;</td>
            <td>Small i, di?esis / umlaut</td>
        </tr>
        <tr>
            <td>&#240;</td>
            <td>&amp;#240;</td>
            <td>&amp;eth;</td>
            <td>Small eth, Icelandic</td>
        </tr>
        <tr>
            <td>&#241;</td>
            <td>&amp;#241;</td>
            <td>&amp;ntilde;</td>
            <td>Small n, tilde</td>
        </tr>
        <tr>
            <td>ò</td>
            <td>&amp;#242;</td>
            <td>&amp;ograve;</td>
            <td>Small o, grave accent</td>
        </tr>
        <tr>
            <td>ó</td>
            <td>&amp;#243;</td>
            <td>&amp;oacute;</td>
            <td>Small o, acute accent</td>
        </tr>
        <tr>
            <td>&#244;</td>
            <td>&amp;#244;</td>
            <td>&amp;ocirc;</td>
            <td>Small o, circumflex</td>
        </tr>
        <tr>
            <td>&#245;</td>
            <td>&amp;#245;</td>
            <td>&amp;otilde;</td>
            <td>Small o, tilde</td>
        </tr>
        <tr>
            <td>&#246;</td>
            <td>&amp;#246;</td>
            <td>&amp;ouml;</td>
            <td>Small o, di?esis / umlaut</td>
        </tr>
        <tr>
            <td>÷</td>
            <td>&amp;#247;</td>
            <td>&amp;divide;</td>
            <td>除号Division sign</td>
        </tr>
        <tr>
            <td>&#248;</td>
            <td>&amp;#248;</td>
            <td>&amp;oslash;</td>
            <td>Small o, slash</td>
        </tr>
        <tr>
            <td>ù</td>
            <td>&amp;#249;</td>
            <td>&amp;ugrave;</td>
            <td>Small u, grave accent</td>
        </tr>
        <tr>
            <td>ú</td>
            <td>&amp;#250;</td>
            <td>&amp;uacute;</td>
            <td>Small u, acute accent</td>
        </tr>
        <tr>
            <td>&#251;</td>
            <td>&amp;#251;</td>
            <td>&amp;ucirc;</td>
            <td>Small u, circumflex</td>
        </tr>
        <tr>
            <td>ü</td>
            <td>&amp;#252;</td>
            <td>&amp;uuml;</td>
            <td>Small u, di?esis / umlaut</td>
        </tr>
        <tr>
            <td>&#253;</td>
            <td>&amp;#253;</td>
            <td>&amp;yacute;</td>
            <td>Small y, acute accent</td>
        </tr>
        <tr>
            <td>&#254;</td>
            <td>&amp;#254;</td>
            <td>&amp;thorn;</td>
            <td>Small thorn, Icelandic</td>
        </tr>
        <tr>
            <td>&#255;</td>
            <td>&amp;#255;</td>
            <td>&amp;yuml;</td>
            <td>Small y, umlaut</td>
        </tr>
    </tbody>
</table> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/%B1%E0%C2%EB%B1%ED">编码表</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/f5108423eba64a43ac34de2f.html#comment">查看评论</a>]]></description>
        <pubDate>2009-02-18  18:22</pubDate>
        <category><![CDATA[编码表]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/f5108423eba64a43ac34de2f.html</guid>
</item>

<item>
        <title><![CDATA[HTTP 1.1状态代码及对应的状态信息和含义]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/f53324adc82e1a0e4a36d6f4.html]]></link>
        <description><![CDATA[
		
		下表显示了常见的HTTP 1.1状态代码以及它们对应的状态信息和含义。
<p>　　 应当谨慎地使用那些只有HTTP 1.1支持的状态代码，因为许多浏览器还只能够支持HTTP 1.0。如果你使用了HTTP 1.1特有的状态代码，最好能够检查一下请求的HTTP版本号。</p>
<table cols="3" cellspacing="0" cellpadding="5" border="1" rows="38" bordercolorlight="black" bordercolordark="#ffffff">
    <tbody>
        <tr align="center">
            <td width="70">状态代码</td>
            <td>状态信息</td>
            <td>含义</td>
        </tr>
        <tr>
            <td>100</td>
            <td>Continue</td>
            <td>初始的请求已经接受，客户应当继续发送请求的其余部分。（HTTP 1.1新）</td>
        </tr>
        <tr>
            <td>101</td>
            <td>Switching Protocols</td>
            <td>服务器将遵从客户的请求转换到另外一种协议（HTTP 1.1新）</td>
        </tr>
        <tr>
            <td>200</td>
            <td>OK</td>
            <td>一切正常，对GET和POST请求的应答文档跟在后面。</td>
        </tr>
        <tr>
            <td>201</td>
            <td>Created</td>
            <td>服务器已经创建了文档，Location头给出了它的URL。</td>
        </tr>
        <tr>
            <td>202</td>
            <td>Accepted</td>
            <td>已经接受请求，但处理尚未完成。</td>
        </tr>
        <tr>
            <td>203</td>
            <td>Non-Authoritative Information</td>
            <td>文档已经正常地返回，但一些应答头可能不正确，因为使用的是文档的拷贝（HTTP 1.1新）。</td>
        </tr>
        <tr>
            <td>204</td>
            <td>No Content</td>
            <td>没有新文档，浏览器应该继续显示原来的文档。如果用户定期地刷新页面，而Servlet可以确定用户文档足够新，这个状态代码是很有用的。</td>
        </tr>
        <tr>
            <td>205</td>
            <td>Reset Content</td>
            <td>没有新的内容，但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容（HTTP 1.1新）。</td>
        </tr>
        <tr>
            <td>206</td>
            <td>Partial Content</td>
            <td>客户发送了一个带有Range头的GET请求，服务器完成了它（HTTP 1.1新）。</td>
        </tr>
        <tr>
            <td>300</td>
            <td>Multiple Choices</td>
            <td>客户请求的文档可以在多个位置找到，这些位置已经在返回的文档内列出。如果服务器要提出优先选择，则应该在Location应答头指明。</td>
        </tr>
        <tr>
            <td>301</td>
            <td>Moved Permanently</td>
            <td>客户请求的文档在其他地方，新的URL在Location头中给出，浏览器应该自动地访问新的URL。</td>
        </tr>
        <tr>
            <td>302</td>
            <td>Found</td>
            <td>类似于301，但新的URL应该被视为临时性的替代，而不是永久性的。注意，在HTTP1.0中对应的状态信息是&ldquo;Moved Temporatily&rdquo;。
            <p>出现该状态代码时，浏览器能够自动访问新的URL，因此它是一个很有用的状态代码。</p>
            <p>注意这个状态代码有时候可以和301替换使用。例如，如果浏览器错误地请求http://host/~user（缺少了后面的斜杠），有的服务器返回301，有的则返回302。</p>
            <p>严格地说，我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。</p>
            </td>
        </tr>
        <tr>
            <td>303</td>
            <td>See Other</td>
            <td>类似于301/302，不同之处在于，如果原来的请求是POST，Location头指定的重定向目标文档应该通过GET提取（HTTP 1.1新）。</td>
        </tr>
        <tr>
            <td>304</td>
            <td>Not Modified</td>
            <td>客户端有缓冲的文档并发出了一个条件性的请求（一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档）。服务器告诉客户，原来缓冲的文档还可以继续使用。</td>
        </tr>
        <tr>
            <td>305</td>
            <td>Use Proxy</td>
            <td>客户请求的文档应该通过Location头所指明的代理服务器提取（HTTP 1.1新）。</td>
        </tr>
        <tr>
            <td>307</td>
            <td>Temporary Redirect</td>
            <td>和302（Found）相同。许多浏览器会错误地响应302应答进行重定向，即使原来的请求是POST，即使它实际上只能在POST请求的应答是 303时才能重定向。由于这个原因，HTTP 1.1新增了307，以便更加清除地区分几个状态代码：当出现303应答时，浏览器可以跟随重定向的GET和POST请求；如果是307应答，则浏览器只 能跟随对GET请求的重定向。（HTTP 1.1新）</td>
        </tr>
        <tr>
            <td>400</td>
            <td>Bad Request</td>
            <td>请求出现语法错误。</td>
        </tr>
        <tr>
            <td>401</td>
            <td>Unauthorized</td>
            <td>客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头，浏览器据此显示用户名字/密码对话框，然后在填写合适的Authorization头后再次发出请求。</td>
        </tr>
        <tr>
            <td>403</td>
            <td>Forbidden</td>
            <td>资源不可用。服务器理解客户的请求，但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。</td>
        </tr>
        <tr>
            <td>404</td>
            <td>Not Found</td>
            <td>无法找到指定位置的资源。这也是一个常用的应答。</td>
        </tr>
        <tr>
            <td>405</td>
            <td>Method Not Allowed</td>
            <td>请求方法（GET、POST、HEAD、DELETE、PUT、TRACE等）对指定的资源不适用。（HTTP 1.1新）</td>
        </tr>
        <tr>
            <td>406</td>
            <td>Not Acceptable</td>
            <td>指定的资源已经找到，但它的MIME类型和客户在Accpet头中所指定的不兼容（HTTP 1.1新）。</td>
        </tr>
        <tr>
            <td>407</td>
            <td>Proxy Authentication Required</td>
            <td>类似于401，表示客户必须先经过代理服务器的授权。（HTTP 1.1新）</td>
        </tr>
        <tr>
            <td>408</td>
            <td>Request Timeout</td>
            <td>在服务器许可的等待时间内，客户一直没有发出任何请求。客户可以在以后重复同一请求。（HTTP 1.1新）</td>
        </tr>
        <tr>
            <td>409</td>
            <td>Conflict</td>
            <td>通常和PUT请求有关。由于请求和资源的当前状态相冲突，因此请求不能成功。（HTTP 1.1新）</td>
        </tr>
        <tr>
            <td>410</td>
            <td>Gone</td>
            <td>所请求的文档已经不再可用，而且服务器不知道应该重定向到哪一个地址。它和404的不同在于，返回407表示文档永久地离开了指定的位置，而404表示由于未知的原因文档不可用。（HTTP 1.1新）</td>
        </tr>
        <tr>
            <td>411</td>
            <td>Length Required</td>
            <td>服务器不能处理请求，除非客户发送一个Content-Length头。（HTTP 1.1新）</td>
        </tr>
        <tr>
            <td>412</td>
            <td>Precondition Failed</td>
            <td>请求头中指定的一些前提条件失败（HTTP 1.1新）。</td>
        </tr>
        <tr>
            <td>413</td>
            <td>Request Entity Too Large</td>
            <td>目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求，则应该提供一个Retry-After头（HTTP 1.1新）。</td>
        </tr>
        <tr>
            <td>414</td>
            <td>Request URI Too Long</td>
            <td>URI太长（HTTP 1.1新）。</td>
        </tr>
        <tr>
            <td>416</td>
            <td>Requested Range Not Satisfiable</td>
            <td>服务器不能满足客户在请求中指定的Range头。（HTTP 1.1新）</td>
        </tr>
        <tr>
            <td>500</td>
            <td>Internal Server Error</td>
            <td>服务器遇到了意料不到的情况，不能完成客户的请求。</td>
        </tr>
        <tr>
            <td>501</td>
            <td>Not Implemented</td>
            <td>服务器不支持实现请求所需要的功能。例如，客户发出了一个服务器不支持的PUT请求。</td>
        </tr>
        <tr>
            <td>502</td>
            <td>Bad Gateway</td>
            <td>服务器作为网关或者代理时，为了完成请求访问下一个服务器，但该服务器返回了非法的应答。</td>
        </tr>
        <tr>
            <td>503</td>
            <td>Service Unavailable</td>
            <td>服务器由于维护或者负载过重未能应答。例如，Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头。</td>
        </tr>
        <tr>
            <td>504</td>
            <td>Gateway Timeout</td>
            <td>由作为代理或网关的服务器使用，表示不能及时地从远程服务器获得应答。（HTTP 1.1新）</td>
        </tr>
        <tr>
            <td>505</td>
            <td>HTTP Version Not Supported</td>
            <td>服务器不支持请求中所指明的HTTP版本。（HTTP 1.1新）</td>
        </tr>
    </tbody>
</table> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/%B7%FE%CE%F1%C6%F7%C5%E4%D6%C3">服务器配置</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/f53324adc82e1a0e4a36d6f4.html#comment">查看评论</a>]]></description>
        <pubDate>2008-12-19  12:02</pubDate>
        <category><![CDATA[服务器配置]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/f53324adc82e1a0e4a36d6f4.html</guid>
</item>

<item>
        <title><![CDATA[exec函数应用]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/94e55a4a291b6b2408f7efea.html]]></link>
        <description><![CDATA[
		
		<font size="2"><font color="#ff6600">[PHP] 在 Windows 下無法使用 exec() 的原因</font>
<p>先在 php 裡面測一下，是不是連Windows 的 dir 都不能用。</p>
<pre class="codeStyle">&lt;?<br>exec(&quot;dir&quot;);<br>?&gt;</pre>
<br>
<p>如果出現下面的訊息，就代表 exec 指令已經失效。</p>
<pre class="codeStyle">Warning: exec(): Unable to fork [dir] in testcmd.php on line 23</pre>
<p>這樣的狀況通常發生在 PHP 以 CGI 模式安裝在 IIS 上，如果連執行 dir 都出現這個訊息，就代表 PHP 找不到 cmd.exe，以致於 exec() 連帶無法使用。</p>
<p>這時把 cmd.exe 複製到 PHP 安裝的目錄 (如c:\php) 就可以了。</p>
</font> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/%B7%D6%CF%EDphp">分享php</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/94e55a4a291b6b2408f7efea.html#comment">查看评论</a>]]></description>
        <pubDate>2008-11-19  17:14</pubDate>
        <category><![CDATA[分享php]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/94e55a4a291b6b2408f7efea.html</guid>
</item>

<item>
        <title><![CDATA[step by step firefox2 firefox3共存]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/48f226fa9be83518a9d31155.html]]></link>
        <description><![CDATA[
		
		1.安装firefox2 <br>
<br>
2.打开命令运行窗口（开始&gt;运行或快捷键win+R），然后运行命令<code>firefox -profilemanager -no-remote</code>，打开Firefox的配置文件管理器。<code>&ndash;no-remote</code>命名允许浏览器正在运行的时候打开配置文件管理器。
<div forimg="1"><a href="http://hiphotos.baidu.com/hengcheng/pic/item/7b4cb31eea119106403417c7.jpg" target="_blank"><img border="0" src="http://hiphotos.baidu.com/hengcheng/abpic/item/7b4cb31eea119106403417c7.jpg" small="1" class="blogimg"></a></div>
<br>
<br>
3.点击&ldquo;创建配置文件&rdquo;按钮，创建一个名为Firefox3或者其他名字的配置文件。去掉对&ldquo;启动时不询问&rdquo;的选择。这一步是为Firefox3创建一个新的配置文件。<br>
<div forimg="1"><a href="http://hiphotos.baidu.com/hengcheng/pic/item/f7330ed5cbadb1dd50da4bc0.jpg" target="_blank"><img border="0" src="http://hiphotos.baidu.com/hengcheng/abpic/item/f7330ed5cbadb1dd50da4bc0.jpg" small="1" class="blogimg"></a><br>
4.在Firefox2的快捷方式上点击右键，然后选择属性。在&ldquo;目标&rdquo;输入框中<code>.exe&quot;</code>的后面输入一个空格和<code>-p default</code>，然后关闭。这步是告诉快捷方式使用默认配置文件来运行Firefox2<br>
<div forimg="1"><a href="http://hiphotos.baidu.com/hengcheng/pic/item/7345ac01de559a1a728da5c3.jpg" target="_blank"><img border="0" src="http://hiphotos.baidu.com/hengcheng/abpic/item/7345ac01de559a1a728da5c3.jpg" small="1" class="blogimg"></a></div>
5.安装Firefox3，&ldquo;安装类型&rdquo;选择&ldquo;自定义&rdquo;，这样就可以选择安装新的安装地方。虽然默认文件夹名是Mozilla Firefox 3 beta 2，但是最好还是自己重新定义一个，这样以后升级新的版本时候不用做什么修改。<br>
** 在安装结束时，不选择&ldquo;立即运行Firefox&rdquo;选项。如果现在运行，它使用的是默认配置文件，这不是我们想要的。<br>
6.在Firefox3的快捷方式上单击右键，选择&ldquo;属性&rdquo;，在目标输入框的<code>-no-remote -p firefox3</code>。这步是告诉这个快捷方式使用配置文件Firefox3来运行。<br>
<div forimg="1"><a href="http://hiphotos.baidu.com/hengcheng/pic/item/7b4cb31eea1a9106403417ce.jpg" target="_blank"><img border="0" src="http://hiphotos.baidu.com/hengcheng/abpic/item/7b4cb31eea1a9106403417ce.jpg" small="1" class="blogimg"></a></div>
</div> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/%B5%E7%C4%D4%C8%ED%D3%B2%BC%FE%CE%CA%CC%E2">电脑软硬件问题</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/48f226fa9be83518a9d31155.html#comment">查看评论</a>]]></description>
        <pubDate>2008-09-09  16:25</pubDate>
        <category><![CDATA[电脑软硬件问题]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/48f226fa9be83518a9d31155.html</guid>
</item>

<item>
        <title><![CDATA[盗版Windos XP如何安装IE7]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/fafc4eb537f840c836d3ca85.html]]></link>
        <description><![CDATA[
		
		<p><span style="color: red;">盗版Windos XP如何安装IE7：</span></p>
<p><span style="color: red;">具体步骤：<br>
●首先当然是先下载安装文件；然后启动安装程序，</span><span style="color: red;"><br>
●然后删除C：\Documents and Settings\All User\Application Data\Windows Genuine Advantage\data\data.dat 文件；<br>
●接着禁用网络链接；<br>
●最后安装时狂点NEXT就OK了。</span></p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/%B5%E7%C4%D4%C8%ED%D3%B2%BC%FE%CE%CA%CC%E2">电脑软硬件问题</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/fafc4eb537f840c836d3ca85.html#comment">查看评论</a>]]></description>
        <pubDate>2008-08-15  19:27</pubDate>
        <category><![CDATA[电脑软硬件问题]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/fafc4eb537f840c836d3ca85.html</guid>
</item>

<item>
        <title><![CDATA[MSN尾巴手工删除方法]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/f82e2c01655b8d087aec2c56.html]]></link>
        <description><![CDATA[
		
		手工删除方法：<br>
<br>
1、打开任务管理器进程，如果有，结束d11host.exe和N0tepad.exe进程，最后Kill掉taskmgr.exe；<br>
<br>
2、如果有，在以下位置找到相关文件并删除：<br>
搜索Windows安装目录下文件名含d11host的文件，找到所有并删除，通常位置如下<br>
C:/windows/system32/d11host.exe（注意是1不是L）<br>
<br>
搜索Windows安装目录下文件名含N0TEPAD的文件，找到所有并删除，通常位置如下<br>
C:/windows/N0TEPAD.exe（注意是零不是O）<br>
C:/windows/system/N0TEPAD.exe<br>
C:/windows/system32/ N0TEPAD.exe (注意是零不是O,前面还有空格)<br>
<br>
搜索Windows安装目录下文件名为windll.dll的文件，找到所有并删除，通常位置如下<br>
C:/windows/windll.dll<br>
C:/windows/system/windll.dll<br>
C:/windows/system32/windll.dll<br>
<br>
3、regedit打开注册表编辑器：<br>
搜索所有有关N0TEPAD的键，找到并删除；<br>
HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Run，如果有，删除有关d11host的键值<br>
<br>
4、重启计算机 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/%B5%E7%C4%D4%C8%ED%D3%B2%BC%FE%CE%CA%CC%E2">电脑软硬件问题</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/f82e2c01655b8d087aec2c56.html#comment">查看评论</a>]]></description>
        <pubDate>2008-08-04  10:42</pubDate>
        <category><![CDATA[电脑软硬件问题]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/f82e2c01655b8d087aec2c56.html</guid>
</item>

<item>
        <title><![CDATA[linux下Vi编辑器命令大全(转载，收藏)]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/f53324ad7086c20c4a36d653.html]]></link>
        <description><![CDATA[
		
		<h1 class="xspace-title">linux下Vi编辑器命令大全</h1>
<p class="xspace-smalltxt">2007-04-04 11:33:23</p>
<div class="xspace-itemmessage" ><span style="font-weight: bold">附送练习的地方：http://www.masswerk.at/jsuix/index.html</span><br>
<br>
文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等，其中，使用最为广泛的是vi，而vi命令繁多，论坛里好像这方面的总结不多，以下稍做总结，以资共享！渴望更正和补充！ <br>
<br>
<span style="color: rgb(255,1,2)">进入vi的命令 </span><br>
vi filename :打开或新建文件，并将光标置于第一行首 <br>
vi +n filename ：打开文件，并将光标置于第n行首 <br>
vi + filename ：打开文件，并将光标置于最后一行首 <br>
vi +/pattern filename：打开文件，并将光标置于第一个与pattern匹配的串处 <br>
vi -r filename ：在上次正用vi编辑时发生系统崩溃，恢复filename <br>
vi filename....filename ：打开多个文件，依次进行编辑 <br>
<br>
<span style="color: rgb(255,1,2)">移动光标类命令</span><br>
h ：光标左移一个字符 <br>
l ：光标右移一个字符 <br>
space：光标右移一个字符 <br>
Backspace：光标左移一个字符 <br>
k或Ctrl+p：光标上移一行 <br>
j或Ctrl+n ：光标下移一行 <br>
Enter ：光标下移一行 <br>
w或W ：光标右移一个字至字首 <br>
b或B ：光标左移一个字至字首 <br>
e或E ：光标右移一个字至字尾 <br>
) ：光标移至句尾 <br>
( ：光标移至句首 <br>
}：光标移至段落开头 <br>
{：光标移至段落结尾 <br>
nG：光标移至第n行首 <br>
n+：光标下移n行 <br>
n-：光标上移n行 <br>
n$：光标移至第n行尾 <br>
H ：光标移至屏幕顶行 <br>
M ：光标移至屏幕中间行 <br>
L ：光标移至屏幕最后行 <br>
0：（注意是数字零）光标移至当前行首 <br>
$：光标移至当前行尾 <br>
<br>
<span style="color: rgb(255,1,2)">屏幕翻滚类命令</span> <br>
Ctrl+u：向文件首翻半屏 <br>
Ctrl+d：向文件尾翻半屏 <br>
Ctrl+f：向文件尾翻一屏 <br>
Ctrl＋b；向文件首翻一屏 <br>
nz：将第n行滚至屏幕顶部，不指定n时将当前行滚至屏幕顶部。 <br>
<br>
<span style="color: rgb(255,1,2)">插入文本类命令</span> <br>
i ：在光标前 <br>
I ：在当前行首 <br>
a：光标后 <br>
A：在当前行尾 <br>
o：在当前行之下新开一行 <br>
O：在当前行之上新开一行 <br>
r：替换当前字符 <br>
R：替换当前字符及其后的字符，直至按ESC键 <br>
s：从当前光标位置处开始，以输入的文本替代指定数目的字符 <br>
S：删除指定数目的行，并以所输入文本代替之 <br>
ncw或nCW：修改指定数目的字 <br>
nCC：修改指定数目的行 <br>
<br>
<span style="color: rgb(255,1,2)">删除命令 </span><br>
ndw或ndW：删除光标处开始及其后的n-1个字 <br>
do：删至行首 <br>
d$：删至行尾 <br>
ndd：删除当前行及其后n-1行 <br>
x或X：删除一个字符，x删除光标后的，而X删除光标前的 <br>
Ctrl+u：删除输入方式下所输入的文本 <br>
<br>
<span style="color: rgb(255,1,2)">搜索及替换命令 </span><br>
/pattern：从光标开始处向文件尾搜索pattern <br>
?pattern：从光标开始处向文件首搜索pattern <br>
n：在同一方向重复上一次搜索命令 <br>
N：在反方向上重复上一次搜索命令 <br>
：s/p1/p2/g：将当前行中所有p1均用p2替代 <br>
：n1,n2s/p1/p2/g：将第n1至n2行中所有p1均用p2替代 <br>
：g/p1/s//p2/g：将文件中所有p1均用p2替换 <br>
<br>
<span style="color: rgb(255,1,2)">选项设置 </span><br>
all：列出所有选项设置情况 <br>
term：设置终端类型 <br>
ignorance：在搜索中忽略大小写 <br>
list：显示制表位(Ctrl+I)和行尾标志（$) <br>
number：显示行号 <br>
report：显示由面向行的命令修改过的数目 <br>
terse：显示简短的警告信息 <br>
warn：在转到别的文件时若没保存当前文件则显示NO write信息 <br>
nomagic：允许在搜索模式中，使用前面不带&ldquo;\&rdquo;的特殊字符 <br>
nowrapscan：禁止vi在搜索到达文件两端时，又从另一端开始 <br>
mesg：允许vi显示其他用户用write写到自己终端上的信息 <br>
<br>
<span style="color: rgb(255,1,2)">最后行方式命令 </span><br>
：n1,n2 co n3：将n1行到n2行之间的内容拷贝到第n3行下 <br>
：n1,n2 m n3：将n1行到n2行之间的内容移至到第n3行下 <br>
：n1,n2 d ：将n1行到n2行之间的内容删除 <br>
：w ：保存当前文件 <br>
：e filename：打开文件filename进行编辑 <br>
：x：保存当前文件并退出 <br>
：q：退出vi <br>
：q!：不保存文件并退出vi <br>
：!command：执行shell命令command <br>
：n1,n2 w!command：将文件中n1行至n2行的内容作为command的输入并执行之，若不指定n1，n2，则表示将整个文件内容作为command的输入 <br>
：r!command：将命令command的输出结果放到当前行 <br>
<br>
<span style="color: rgb(255,1,2)">寄存器操作 </span><br>
&quot;?nyy：将当前行及其下n行的内容保存到寄存器？中，其中?为一个字母，n为一个数字 <br>
&quot;?nyw：将当前行及其下n个字保存到寄存器？中，其中?为一个字母，n为一个数字 <br>
&quot;?nyl：将当前行及其下n个字符保存到寄存器？中，其中?为一个字母，n为一个数字 <br>
&quot;?p：取出寄存器？中的内容并将其放到光标位置处。这里？可以是一个字母，也可以是一个数字 <br>
ndd：将当前行及其下共n行文本删除，并将所删内容放到1号删除寄存器中。<br>
<br>
<strong>VI的使用</strong><br>
--------------------------------------------------------------------------------<br>
<br>
<br>
一、<span style="color: rgb(0,1,255)">插入文本</span> <br>
┌──┬────────────┐ <br>
│命令│描述           <br>
├──┼────────────┤ <br>
│i  │在当前字符前插入文本  <br>
├──┼────────────┤ <br>
│I  │在行首插入文本       <br>
├──┼────────────┤ <br>
│a  │在当前字符后添加文本  <br>
├──┼────────────┤ <br>
│A  │在行末添加文本     <br>
├──┼────────────┤<br>
│o  │在当前行后面插入一空行 <br>
├──┼────────────┤ <br>
│O  │在当前行前面插入一空行 <br>
├──┼────────────┤ <br>
│R  │以改写方式输入文本   <br>
└──┴────────────┘ <br>
二、<span style="color: rgb(0,1,255)">移动光标 </span><br>
┌─────┬───────────┐ <br>
│命令   │描述        <br>
├─────┼───────────┤ <br>
│j或下箭头&nbsp;&nbsp;&nbsp;  │向下移动一行    <br>
├─────┼───────────┤<br>
│k或上箭头&nbsp;&nbsp;&nbsp;  │向上移动一行     <br>
├─────┼───────────┤ <br>
│h或左箭头&nbsp;&nbsp;&nbsp;  │左移一个字符    <br>
├─────┼───────────┤ <br>
│l或右箭头&nbsp;&nbsp;&nbsp;  │右移一个字符    <br>
├─────┼───────────┤ <br>
│w     │右移一个词      <br>
├─────┼───────────┤ <br>
│W     │右移一个以空格分隔的词<br>
├─────┼───────────┤ <br>
│b     │左移一个词      <br>
├─────┼───────────┤ <br>
│B     │左移一个以空格分隔的词 <br>
├─────┼───────────┤ <br>
│0     │移到行首 <br>
      <br>
│Ctrl-F   │向前翻页       <br>
├─────┼───────────┤ <br>
│Ctrl-B   │向后翻页       <br>
├─────┼───────────┤ <br>
│nG    │到第n行        <br>
├─────┼───────────┤ <br>
│G     │到最后一行      <br>
└─────┴───────────┘ <br>
<br>
三、<span style="color: rgb(0,1,255)">替换文本 </span><br>
┌─────┬──────┐ <br>
│命令   │描述    <br>
├─────┼──────┤ <br>
│$     │到行尾   <br>
├─────┼──────┤ <br>
│(     │到句子的开头<br>
├─────┼──────┤ <br>
│)     │到句子的末尾<br>
├─────┼──────┤ <br>
│{     │到段落的开头<br>
├─────┼──────┤ <br>
│}     │到段落的末尾<br>
└─────┴──────┘ <br>
<br>
四、<span style="color: rgb(0,1,255)">删除文本 </span><br>
┌───┬───────────┐ <br>
│命令 │描述          <br>
├───┼───────────┤ <br>
│r   │替换一个字符      <br>
├───┼───────────┤ <br>
│c   │修改文本直到按下Esc健 <br>
├───┼───────────┤ <br>
│cw  │修改下一个词      <br>
├───┼───────────┤ <br>
│cnw  │修改接下来的n个词  <br>
<br>
<br>
五、<span style="color: rgb(0,1,255)">文本编辑 </span><br>
┌──┬──────────────────────┐ <br>
│命寺│描述                    <br>
├──┼──────────────────────┤ <br>
│yy  │将一行文本移到缺省缓冲区中          <br>
├──┼──────────────────────┤ <br>
│yn  │将下一个词移到缺省缓冲区中          <br>
├──┼──────────────────────┤ <br>
│ynw&nbsp;&nbsp;  │将后面的n个词移到缺省缓冲区中        <br>
├──┼──────────────────────┤ <br>
│p   │如果缺省缓冲区中包含一行文本，则在当前   <br>
│  │行后面插入一个空行井将缺省缓冲区中的声  <br>
│  │容粘贴到这一行中；如果缺省缓冲区中包含   <br>
│  │多个词，把这些词粘贴到光标的右边．     <br>
├──┼──────────────────────┤ <br>
│P   │如果缺省缓冲区中包含一行文本，则正当前    <br>
│    │行前面插入一个空行井将缺省缓冲区中的内    <br>
│   │容粘贴到这一行中；如果缺省缓冲区中包含    <br>
│    │多个词，把这些词粘贴到光标的左边       <br>
└──┴──────────────────────┘ <br>
<br>
<br>
六、<span style="color: rgb(0,1,255)">保存退出 </span><br>
┌───────────┬───────────────┐ <br>
│命令         │描述             <br>
├───────────┼───────────────┤ <br>
│zz      │保存并退出          <br>
├───────────┼───────────────┤ <br>
│:w filename   │写入文件            <br>
├───────────┼───────────────┤ <br>
│:W      │写入文件           <br>
├───────────┼───────────────┤ <br>
│:x      │保存(如果当前文件修改过)并退出<br>
├───────────┼───────────────┤ <br>
│:q!       │不保存文件，直接退出      <br>
├───────────┼───────────────┤ <br>
│:q       │退出vi            <br>
└───────────┴───────────────┘ <br>
 <br>
<br>
<br>
<br>
<br>
VI常用技巧<br>
<br>
VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了，但是因为它的命令集众多，很多人都不习惯使用它，其实您只需要掌握<a href=" :;" target="_self"><u><strong>基本命令</strong></u></a>，然后加以灵活运用，就会发现它的优势，并会逐渐喜欢使用这种方法。本文旨在介绍VI的一些最常用命令和高级应用技巧。 <br>
<br>
一、基本命令介绍 <br>
<br>
---- 1．<span style="font-weight: bold">光标命令 </span><br>
k、j、h、l&mdash;&mdash;上、下、左、右光标移动命令。虽然您可以在<a href=" :;" target="_self"><u><strong>Linux</strong></u></a>中使用键盘右边的4个光标键，但是记住这4个命令还是非常有用的。这4个键正是右手在键盘上放置的基本位置。 <br>
nG&mdash;&mdash;跳转命令。n为行数，该命令立即使光标跳到指定行。 <br>
Ctrl+G&mdash;&mdash;光标所在位置的行数和列数报告。 <br>
w、b&mdash;&mdash;使光标向前或向后跳过一个单词。 <br>
<br>
---- 2．<span style="font-weight: bold">编辑命令 </span><br>
i、a、r&mdash;&mdash;在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。 <br>
cw、dw&mdash;&mdash;改变(置换)/删除光标所在处的单词的命令 (c=change、d=delete)。 <br>
x、d$、dd&mdash;&mdash;删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。 <br>
<br>
---- 3．<span style="font-weight: bold">查找命令 </span><br>
---- /string、?string&mdash;&mdash;从光标所在处向后或向前查找相应的字符串的命令。 <br>
<br>
---- 4．<span style="font-weight: bold">拷贝复制命令 </span><br>
---- yy、p&mdash;&mdash;拷贝一行到剪贴板或取出剪贴板中内容的命令。 <br>
<br>
二、常见问题及应用技巧 <br>
<br>
---- 1．在一个新文件中读/etc/passwd中的内容，取出用户名部分。 <br>
---- vi file <br>
---- :r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd <br>
---- :%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分。 <br>
---- 您也可以在指定的行号后读入文件内容，例如使用命令&ldquo;:3r /etc/passwd&rdquo;从新文件的第3行开始读入 /etc/passwd的所有内容。 <br>
---- 我们还可以使用以下方法删掉文件中所有的空行及以#开始的注释行。 <br>
---- #cat squid.conf.default | grep -v ^$ | grep -v ^# <br>
<br>
---- 2．在打开一个文件编辑后才知道登录的用户对该文件没有写的权限，不能存盘，需要将所做修改存入临时文件。 <br>
---- vi file <br>
---- :w /tmp/1 保存所做的所有修改，也可以将其中的某一部分修改保存到临时文件，例如仅仅把第20～59行之间的内容存盘成文件/tmp/1，我们可以键入如下命令。 <br>
---- vi file <br>
---- :20,59w /tmp/1 <br>
<br>
---- 3．用VI编辑一个文件，但需要删除大段的内容。 <br>
---- 首先利用编辑命令&ldquo;vi file&rdquo;打开文件，然后将光标移到需要删除的行处按Ctrl+G显示行号，再到结尾处再按Ctrl+G，显示文件结尾的行号。 <br>
---- :23,1045d 假定2次得到的行号为23和1045，则把这期间的内容全删除，也可以在要删除的开始行和结束行中用ma、mb命令标记，然后利用&ldquo;:a,bd&rdquo;命令删除。 <br>
<br>
---- 4．在整个文件的各行或某几行的行首或行尾加一些字符串。 <br>
---- vi file <br>
---- :3,$s/^/some string / 在文件的第一行至最后一行的行首插入&ldquo;some string&rdquo;。 <br>
---- :%s/$/some string/g 在整个文件每一行的行尾添加&ldquo;some string&rdquo;。 <br>
---- :%s/string1/string2/g 在整个文件中替换&ldquo;string1&rdquo;成&ldquo;string2&rdquo;。 <br>
---- :3,7s/string1/string2/ 仅替换文件中的第3行到第7行中的&ldquo;string1&rdquo;成&ldquo;string2&rdquo;。 <br>
---- 注意: 其中s为substitute，%表示所有行，g表示global。 <br>
<br>
---- 5．同时编辑2个文件，拷贝一个文件中的文本并粘贴到另一个文件中。 <br>
---- vi file1 file2 <br>
---- yy 在文件1的光标处拷贝所在行 <br>
---- :n 切换到文件2 (n=next) <br>
---- p 在文件2的光标所在处粘贴所拷贝的行 <br>
---- :n 切换回文件1 <br>
<br>
---- 6．替换文件中的路径。 <br>
---- 使用命令&ldquo;:%s#/usr/bin#/bin#g&rdquo;可以把文件中所有路径/usr/bin换成/bin。也可以使用命令&ldquo;:%s//usr/bin//bin/g&rdquo;实现，其中&ldquo;&rdquo;是转义字符，表明其后的&ldquo;/&rdquo;字符是具有实际意义的字符，不是分隔符。</div> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/linux%20%D6%AA%CA%B6">linux 知识</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/f53324ad7086c20c4a36d653.html#comment">查看评论</a>]]></description>
        <pubDate>2008-06-17  14:01</pubDate>
        <category><![CDATA[linux 知识]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/f53324ad7086c20c4a36d653.html</guid>
</item>

<item>
        <title><![CDATA[MySQL有两种Unicode字符集]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/302d00ce9afe7c3cb600c89f.html]]></link>
        <description><![CDATA[
		
		<div class="cnt" >
<p><span>MySQL</span>有两种<span>Unicode</span>字符集。你能够使用这些字符集保存大约<span>650</span>种语言的文本。</p>
<p><span>·<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   </span></span><span>ucs2</span><span> (UCS-2 Unicode)</span>校对规则<span>: </span></p>
<div class="itemizedlist">
<ul type="disc">
    <li>
    <pre class="programlisting">mysql&gt; <strong class="userinput">SHOW COLLATION LIKE 'ucs2%';</strong><br>+--------------------+---------+-----+---------+----------+---------+<br>| Collation          | Charset | Id  | Default | Compiled | Sortlen |<br>+--------------------+---------+-----+---------+----------+---------+<br>| ucs2_general_ci    | ucs2    |  35 | Yes     | Yes      |       1 |<br>| ucs2_bin           | ucs2    |  90 |         | Yes      |       1 |<br>| ucs2_unicode_ci    | ucs2    | 128 |         | Yes      |       8 |<br>| ucs2_icelandic_ci  | ucs2    | 129 |         | Yes      |       8 |<br>| ucs2_latvian_ci    | ucs2    | 130 |         | Yes      |       8 |<br>| ucs2_romanian_ci   | ucs2    | 131 |         | Yes      |       8 |<br>| ucs2_slovenian_ci  | ucs2    | 132 |         | Yes      |       8 |<br>| ucs2_polish_ci     | ucs2    | 133 |         | Yes      |       8 |<br>| ucs2_estonian_ci   | ucs2    | 134 |         | Yes      |       8 |<br>| ucs2_spanish_ci    | ucs2    | 135 |         | Yes      |       8 |<br>| ucs2_swedish_ci    | ucs2    | 136 |         | Yes      |       8 |<br>| ucs2_turkish_ci    | ucs2    | 137 |         | Yes      |       8 |<br>| ucs2_czech_ci      | ucs2    | 138 |         | Yes      |       8 |<br>| ucs2_danish_ci     | ucs2    | 139 |         | Yes      |       8 |<br>| ucs2_lithuanian_ci | ucs2    | 140 |         | Yes      |       8 |<br>| ucs2_slovak_ci     | ucs2    | 141 |         | Yes      |       8 |<br>| ucs2_spanish2_ci   | ucs2    | 142 |         | Yes      |       8 |<br>| ucs2_roman_ci      | ucs2    | 143 |         | Yes      |       8 |<br>| ucs2_persian_ci    | ucs2    | 144 |         | Yes      |       8 |<br>| ucs2_esperanto_ci  | ucs2    | 145 |         | Yes      |       8 |<br>+--------------------+---------+-----+---------+----------+---------+</pre>
    </li>
    <li>
    <p><span>utf8</span><span> (UTF-8 Unicode)</span><span>校对规则<span>:</span></span></p>
    <pre class="programlisting">mysql&gt; <strong class="userinput">SHOW COLLATION LIKE 'utf8%';</strong><br>+--------------------+---------+-----+---------+----------+---------+<br>| Collation          | Charset | Id  | Default | Compiled | Sortlen |<br>+--------------------+---------+-----+---------+----------+---------+<br>| utf8_general_ci    | utf8    |  33 | Yes     | Yes      |       1 |<br>| utf8_bin           | utf8    |  83 |         | Yes      |       1 |<br>| utf8_unicode_ci    | utf8    | 192 |         | Yes      |       8 |<br>| utf8_icelandic_ci  | utf8    | 193 |         | Yes      |       8 |<br>| utf8_latvian_ci    | utf8    | 194 |         | Yes      |       8 |<br>| utf8_romanian_ci   | utf8    | 195 |         | Yes      |       8 |<br>| utf8_slovenian_ci  | utf8    | 196 |         | Yes      |       8 |<br>| utf8_polish_ci     | utf8    | 197 |         | Yes      |       8 |<br>| utf8_estonian_ci   | utf8    | 198 |         | Yes      |       8 |<br>| utf8_spanish_ci    | utf8    | 199 |         | Yes      |       8 |<br>| utf8_swedish_ci    | utf8    | 200 |         | Yes      |       8 |<br>| utf8_turkish_ci    | utf8    | 201 |         | Yes      |       8 |<br>| utf8_czech_ci      | utf8    | 202 |         | Yes      |       8 |<br>| utf8_danish_ci     | utf8    | 203 |         | Yes      |       8 |<br>| utf8_lithuanian_ci | utf8    | 204 |         | Yes      |       8 |<br>| utf8_slovak_ci     | utf8    | 205 |         | Yes      |       8 |<br>| utf8_spanish2_ci   | utf8    | 206 |         | Yes      |       8 |<br>| utf8_roman_ci      | utf8    | 207 |         | Yes      |       8 |<br>| utf8_persian_ci    | utf8    | 208 |         | Yes      |       8 |<br>| utf8_esperanto_ci  | utf8    | 209 |         | Yes      |       8 |<br>+--------------------+---------+-----+---------+----------+---------+</pre>
    </li>
</ul>
</div>
<a name="id2841510" class="indexterm"></a>
<p><span>utf8_unicode_ci</span>校对规则是根据<span>Unicode</span>校对规则算法（<span>UCA</span>）执行的， 校对规则描述见 <span><a target="_top" href="http://www.unicode.org/reports/tr10/" linkindex="8" set="yes">http://www.unicode.org/reports/tr10/</a></span>。此校对规则使用<span>UCA 4.0.0</span>版本砝码键：<span><a target="_top" href="http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt" linkindex="9" set="yes">http://www.unicode.org/Public/UC<span>一个</span>/4.0.0/<span>一个</span>llkeys-4.0.0.txt</a></span>。（以下讨论使用<span>utf8_unicode_ci</span>，但同样适合<span>ucs2_unicode_ci</span>。）</p>
<p>当前，<span>utf8_unicode_ci</span>校对规则仅部分支持<span>Unicode</span>校对规则算法。一些字符还是不能支持。并且，不能完全支持组合的记号。这主要影响越南和俄罗斯的一些少数民族语言，如：<span>Udmurt </span>、<span>Tatar</span>、<span>Bashkir</span>和<span>Mari</span>。</p>
<p><span>utf8_unicode_ci</span>的最主要的特色是支持扩展，即当把一个字母看作与其它字母组合相等时。例如，在德语和一些其它语言中&lsquo;<span>&#223;</span>&rsquo;等于&lsquo;<span>ss</span>&rsquo;。</p>
<p><span>utf8_general_ci</span>是一个遗留的 校对规则，不支持扩展。它仅能够在字符之间进行逐个比较。这意味着<span>utf8_general_ci</span>校对规则进行的比较速度很快，但是与使用<span>utf8_unicode_</span><span>ci</span>的 校对规则相比，比较正确性较差）。</p>
<p>例如，使用<span>utf8_general_ci</span>和<span>utf8_unicode_ci</span>两种 校对规则下面的比较相等：</p>
<pre><span>&#196;</span><span> = A</span></pre>
<pre><span>&#214;</span><span> = O</span></pre>
<pre><span>&#220;</span><span> = U</span></pre>
<p>两种校对规则之间的区别是，对于<span>utf8_general_ci</span>下面的等式成立：</p>
<pre><span>&#223;</span><span> = s</span></pre>
<p>但是，对于<span>utf8_unicode_ci</span>下面等式成立：</p>
<pre><span>&#223;</span><span> = ss</span></pre>
<p>对于一种语言仅当使用<span>utf8_unicode_ci</span>排序做的不好时，才执行与具体语言相关的<span>utf8</span>字符集 校对规则。例如，对于德语和法语，<span>utf8_unicode_ci</span>工作的很好，因此不再需要为这两种语言创建特殊的<span>utf8</span>校对规则。</p>
<p><span>utf8_general_ci</span>也适用与德语和法语，除了&lsquo;<span>&#223;</span>&rsquo;等于&lsquo;<span>s</span>&rsquo;，而不是&lsquo;<span>ss</span>&rsquo;之外。如果你的应用能够接受这些，那么应该使用<span><span>utf8_general_ci</span>，</span>因为它速度快。否则，使用<span>utf8_unicode_ci</span>，因为它比较准确。</p>
<p><span>utf8_swedish_ci</span>，与其它<span>语言相关的<span>utf8</span>的校</span>对规则相似，来源于<span><span>utf8_unicode_ci</span><span>，</span></span>使用额外的语言规则。例如，在瑞典语中，以下的关系式成立，它在德语和法语中不成立：</p>
<pre><span>&#220;</span><span> = Y &lt; </span><span>&#214;</span></pre>
<p><span>utf8_spanish_ci</span>和<span>utf8_spanish2_ci</span>校对规则分别适用于现代和古典西班牙语。在两种 校对规则中，<span>&#241;</span>&rsquo;（<span>n-</span>发音符）是&lsquo;<span>n</span>&rsquo;和&lsquo;<span>o</span>&rsquo;之间的间隔字母。另外，对于古典西班牙语，&lsquo;<span>ch</span>&rsquo;是&lsquo;<span>c</span>&rsquo;和<span>d</span>之间的间隔字母，并且&lsquo;<span>ll</span>&rsquo;是&lsquo;<span>l</span>&rsquo;和&lsquo;<span>m</span>&rsquo;之间的间隔字母。</p>
</div> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/%CA%FD%BE%DD%BF%E2">数据库</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/302d00ce9afe7c3cb600c89f.html#comment">查看评论</a>]]></description>
        <pubDate>2008-06-13  11:43</pubDate>
        <category><![CDATA[数据库]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/302d00ce9afe7c3cb600c89f.html</guid>
</item>

<item>
        <title><![CDATA[LDAP 类－－转载　（转载请注明：原创QQ405214421）]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/7e83fef8bb47f60ad9f9fdbd.html]]></link>
        <description><![CDATA[
		
		&lt;? <br>
class ldap <br>
{ <br>
private $hostName; //服务器地址 <br>
private $userDn; //用户名 <br>
private $pwd; //密码 <br>
private $port; //端口号 <br>
private $link; //返回的连接对象 <br>
public $state; //返回的一个公共的连接状态 <br>
<br>
//------------ 定义联接类的构造函数 ------------------ <br>
function __construct($hostName,$userDn,$pwd,$port=80) <br>
{ <br>
$this-&gt;hostName=$hostName; <br>
$this-&gt;userDn=$userDn; <br>
$this-&gt;pwd=$pwd; <br>
$this-&gt;port=$port; <br>
$this-&gt;state=0; <br>
} <br>
//--------------- end conStruct ------------------- <br>
<br>
//-------------- 定义link方法 连接并BIND数据库 ---------------- <br>
function open() <br>
{ <br>
/////////////////////*********加上@阻止错误********/////////////////////////////// <br>
$this-&gt;link = @ldap_connect($this-&gt;hostName); <br>
@ldap_set_option($this-&gt;link, LDAP_OPT_PROTOCOL_VERSION, 3); <br>
if ($this-&gt;link &amp;&amp; @ldap_bind($this-&gt;link,$this-&gt;userDn,$this-&gt;pwd)) { <br>
$ldapbind = @ldap_bind($this-&gt;link,$this-&gt;userDn,$this-&gt;pwd); <br>
$this-&gt;state=1; <br>
return $this-&gt;link; <br>
@ldap_unbind($this-&gt;link); //关闭数据库 <br>
@ldap_close($this-&gt;link); //关闭连接 <br>
} else { <br>
return $this-&gt;link; <br>
//echo &quot;抱歉，无法连上 LDAP 服务器。&quot;; <br>
exit; <br>
} <br>
} <br>
//--------------end open()-------------------------- <br>
<br>
} <br>
//--------------------定义基类recordSet------------------------------ <br>
class recordSet <br>
{ <br>
public $link; <br>
private $result; <br>
function __construct($conn) <br>
{ <br>
$this-&gt;link=$conn-&gt;open(); <br>
} <br>
//------ 定义execute 方法-------- <br>
public function execute($dn,$who) <br>
{ <br>
$tdn=$dn; <br>
$twho=$who; <br>
$sr=ldap_search($this-&gt;link,$tdn,$twho); <br>
$this-&gt;result = ldap_get_entries($this-&gt;link, $sr); <br>
return $this-&gt;result; <br>
} <br>
//////////////红色所标为关键部分/////////////////////// <br>
public function arrsort($arr,$column) <br>
{ <br>
for($j=0;$j&lt;=$arr[&quot;count&quot;];$j++){ <br>
for($i=0;$i&lt;=@count($column);$i++){ <br>
if($column[$i]==&quot;dn&quot;){ <br>
$array[$j][$i]=$arr[$j][$column[$i]]; <br>
} else { <br>
$array[$j][$i]=$arr[$j][$column[$i]][0]; <br>
} <br>
} <br>
} <br>
@sort($array); <br>
return $array; <br>
} <br>
} <br>
//-------------------- END 基类recordSet------------------------------ <br>
class selectRs extends recordSet <br>
{ <br>
private $result; //返回的查询结果数组 <br>
//public $dn; <br>
//public $who; <br>
///////////////// 执行继承类recordSet的execute（$dn,$who）方法//////////////////// <br>
function getArray($dn,$who) <br>
{ <br>
$this-&gt;result=$this-&gt;execute($dn,$who); <br>
return $this-&gt;result; <br>
} <br>
//---------*****************END EXECUTE（$dn,$who）****************************----------- <br>
//------ 定义 delete 方法-------- <br>
function delete($dn) // 传入一个详细的组织结构DN 删除成功则返回TRUE，否则返回FALSE <br>
{ <br>
$state=@ldap_delete($this-&gt;link,$dn); <br>
if($state){ <br>
return true; <br>
} else { <br>
return false; <br>
} <br>
} <br>
//------ end delete 方法-------- <br>
//------ 定义 update 方法-------- <br>
function update($dn,$column) // 传入一个详细的组织结构DN及成员数组 成功则返回TRUE，否则返回FALSE <br>
{ <br>
$state=ldap_modify($this-&gt;link,$dn,$column); <br>
if($state){ <br>
return true; <br>
} else { <br>
return false; <br>
} <br>
} <br>
//------ end update 方法-------- <br>
//------ 定义 insert 方法-------- <br>
function insert($dn,$column) // 传入一个详细的组织结构DN及成员数组 插入成功则返回TRUE，否则返回FALSE <br>
{ <br>
$state=ldap_add($this-&gt;link,$dn,$column); <br>
if($state){ <br>
return true; <br>
} else { <br>
return false; <br>
} <br>
} <br>
//------ end insert 方法-------- <br>
/////////////////传回查询数据的总行数getRowNum()//////////////////// <br>
function getRowNum() <br>
{ <br>
return $this-&gt;result[&quot;count&quot;]; <br>
} <br>
////////////////end-------getRowNum()//////////////////// <br>
<br>
///////////////// 分页结果 START//////////////////// <br>
function page($page,$arr,$column,$num=5) <br>
{ <br>
if($page&lt;1) $page=1; <br>
$rownum=$this-&gt;getRowNum(); <br>
$pagecount=ceil($rownum/$num); <br>
if($page&gt;$pagecount) $page=$pagecount; <br>
$a=$this-&gt;arrsort($arr,$column); <br>
$start=($page-1)*$num+1; <br>
$end=$page*$num; <br>
for($i=$start;$i&lt;=$end;$i++) <br>
{ <br>
if($i&gt;$rownum) <br>
{ <br>
continue; <br>
} <br>
for($j=0;$j&lt;=count($column)-1;$j++) <br>
{ <br>
$array[$i][$j]=$a[$i][$j]; <br>
} <br>
} <br>
return $array; <br>
} <br>
/////////////////分页结果 END()//////////////////// <br>
<br>
} <br>
/* 以下是我想对分页的一个简化，可惜时间不够，没有能够完成，不过上面的代码对一般的增删改查分页都巳足够了<br>
//-------------------- 继承 基类selectRs----执行分页类 待完善 今后会更新-------------------------- <br>
class pselectRs extends selectRs <br>
{ <br>
private $result; //返回的查询结果数组 <br>
private $currentPage; //当前页码 <br>
public $absoultpage=5; //每页的记录数 <br>
private $isSystemPage; //是否用系统默认分页,否则需要自己定制 <br>
public $pagecount; //总页数 <br>
///////////////// 重写继承类selectRs的getArray（$dn,$who）方法//////////////////// <br>
function getArray($dn,$who,$column,$currentPage=1,$isSystemPage=true) <br>
{ <br>
$this-&gt;result=$this-&gt;execute($dn,$who); <br>
$this-&gt;currentPage=$currentPage; <br>
$this-&gt;isSystemPage=$isSystemPage; <br>
$this-&gt;pagecount=ceil($this-&gt;getRowNum/$this-&gt;absoultpage); <br>
if($this-&gt;currentPage&lt;0) $this-&gt;currentPage=1; <br>
if($this-&gt;currentPage&gt;$this-&gt;pagecount) $this-&gt;currentPage=$this-&gt;pagecount; <br>
$row=$this-&gt;arrsort($this-&gt;result,$column); <br>
$start=($this-&gt;currentPage-1)*$this-&gt;absoultpage+1; <br>
$end=$this-&gt;currentPage*$this-&gt;absoultpage; <br>
for($i=$start;$i&lt;=$end;$i++) <br>
{ <br>
for($j=0;$j&lt;=count($column)-1;$j++) <br>
{ <br>
$arr[$i][$j]=$row[$i][$j]; <br>
} <br>
} <br>
return $arr; <br>
} <br>
//---------*****************END selectRs（$dn,$who）****************************----------- <br>
<br>
} */ <br>
?&gt; <br>
<br>
<br>
转载请注明：原创QQ405214421： 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/%B7%D6%CF%EDphp">分享php</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/7e83fef8bb47f60ad9f9fdbd.html#comment">查看评论</a>]]></description>
        <pubDate>2008-06-12  14:19</pubDate>
        <category><![CDATA[分享php]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/7e83fef8bb47f60ad9f9fdbd.html</guid>
</item>

<item>
        <title><![CDATA[用Php如何操作LDAP]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/47ce7e636a2ecc650c33fabc.html]]></link>
        <description><![CDATA[
		
		<p><strong>1 LDAP是什么</strong><font color="#0095da"><font size="2"><br>
</font></font>LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用，不过根据组织者的需要，它可以做得更加强大。<br>
　　LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果，不过在其它方面，例如更新，就慢得多。要特别注意的是，LDAP通常作为一个hierarchal数据库使用，而不是一个关系数据库。因此，它的结构用树来表示比用表格好。正因为这样，就不能用SQL语句了。<br>
<br>
　　简单说来，LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。<br>
<br>
LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写，其实是一话号码簿，类似于我们所使用诸如NIS(Network Information Service)、DNS (Domain Name Service)等网络目录，也类似于你在花园中所看到的树木。 <br>
LDAP是一种特殊的数据库。但是LDAP和一般的数据库不同，明白这一点是很重要的。 LDAP对查询进行了优化，与写性能相比LDAP的读性能要优秀很多。<br>
1.1 LDAP的存储规则<br>
区分名（DN，Distinguished Name） <br>
和自然界中的树不同，文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性，这一属性可以帮助我们来区别这些枝叶。 <br>
在文件系统中， 这些独一无二的属性就是带有完整路径的文件名。比如/etc/passwd，该文件名在该路径下是独一无二的。当然我们可以有/usr/passwd, /opt/passwd，但是根据它们的完整路径，它们仍然是唯一的。 <br>
在LDAP中，一个条目的区分名称叫做&ldquo;dn&rdquo;或者叫做区分名。在一个目录中这个名称总是唯一的。比如，我的dn是&quot;uid=aghaffar, ou=People, o=developer.ch&quot;。不可能有相同的dn，但是我们可以有诸如&quot;uid=aghaffar, ou=Administrators, o=developer.ch&quot;的dn。这同上面文件系统中/etc/passwd 和 /usr/passwd的例子很类似。 <br>
我们有独一无二的属性，在&quot;ou=Administrators, o=developer.ch&quot; 中uid和在&quot;ou=People, o=developer.ch&quot;中的uid。这并不矛盾。<br>
CN=Common Name 为用户名或服务器名，最长可以到80个字符，可以为中文；<br>
OU=Organization Unit为组织单元，最多可以有四级，每级最长32个字符，可以为中文；<br>
O=Organization 为组织名，可以3&mdash;64个字符长<br>
C=Country为国家名，可选，为2个字符长<br>
<br>
LDAP目录以一系列&ldquo;属性对&rdquo;的形式来存储记录项，每一个记录项包括属性类型和属性值（这与关系型数据库用行和列来存取数据有根本的不同）。<br>
mail = testmail@mccc.net<br>
othermailbox = testmailother@mccc.com<br>
givenname = givenname<br>
sn = test sn<br>
属性可添加，以下一个属性必须赋值：<br>
objectclass=person (值为：person 或 server 或 organization 或 其他自定义的值)<br>
<br>
<strong>2 Php如何操作LDAP</strong><font size="2"><font color="#0095da"><br>
</font></font>2.1 Php如何与LDAP连接和关闭<br>
$ds=ldap_connect(&quot;ServerName&quot;)<br>
ServerName是LDAP的服务器名，<br>
<br>
例:<br>
$ds=ldap_connect(&ldquo;10.31.172.30:1000&rdquo;)<br>
返回值是：true 或 false<br>
<br>
关闭连接<br>
ldap_close($ds);<br>
<br>
2.2 在php中如何搜索用户信息</p>
<p class="php">$ds=ldap_connect(&quot;10.31.172.30:1000&quot;);<br>
//首先连接上服务器<br>
$justthese = array(&quot;cn&quot;,&quot;userpassword&quot;,&rdquo;location&rdquo;);<br>
//搜索函数中的一个参数，要求返回哪些信息，<br>
//以上传回cn,userpassword,location,这些都要求小写<br>
$sr=ldap_search($ds,&quot;o=jite&quot;, &quot;cn=dom*&quot;,$justthese); <br>
//第一个参数开启LDAP的代号<br>
//第二个参数最基本的 dn 条件值 , 例：&rdquo;o=jite,c=cn&rdquo;<br>
//第三个参数 filter 为布林条件，它的语法可以在 Netscape 站上找一份 dirsdkpg.pdf 档案.<br>
// &rsquo;o&rsquo;为组织名，&rsquo;cn&rsquo; 为用户名,用户名可用通配符 &rsquo;*&rsquo;<br>
echo &quot;domadmin姓氏有&quot;.ldap_count_entries($ds,$sr).&quot; 个&lt;p&gt;&quot;;<br>
//ldap_count_entries($ds,$sr)传回记录总数<br>
<br>
$info = ldap_get_entries($ds, $sr);<br>
//LDAP的全部传回资料<br>
echo &quot;资料传回 &quot;.$info[&quot;count&quot;].&quot;笔:&lt;p&gt;&quot;;<br>
for ($i=0; $i&lt;$info[&quot;count&quot;]; $i ) {<br>
echo &quot;dn为：&quot;. $info[$i][&quot;dn&quot;] .&quot;&lt;br&gt;&quot;;<br>
echo &quot;cn为：&quot;. $info[$i][&quot;cn&quot;][0] .&quot;&lt;br&gt;&quot;; //显示用户名<br>
echo &quot;email为：&quot;. $info[$i][&quot;mail&quot;][0] .&quot;&lt;p&gt;&quot;; //显示mail<br>
echo &quot;email为：&quot;. $info[$i][&ldquo;userpassword&quot;][0] .&quot;&lt;p&gt;&quot;; //显示加密后的密码<br>
}<br>
2.3 添加用户<br>
$ds=ldap_connect(&quot;10.31.172.30:1000&quot;);<br>
//首先连接上服务器<br>
$r=ldap_bind($ds,&quot;cn=domadmin,o=jite&quot;,&quot;password&quot;);<br>
//系住一个管理员，有写的权限<br>
// cn=domadmin,o=jite顺序不能变<br>
$info[&quot;cn&quot;]=&quot;aaa&quot;; //必填 <br>
$info[&quot;userpassword&quot;]=&quot;aaa&quot;; <br>
$info[&quot;location&quot;]=&quot;shanghai&quot;;<br>
$info[&quot;objectclass&quot;] = &quot;person&quot;; //必填person为个人，还有server…<br>
ldap_add($ds, &quot;cn=&quot;.$info[&quot;cn&quot;].&quot;,o=jite&quot;, $info);<br>
ldap_unbind($ds);<br>
//取消绑定<br>
ldap_close($ds);<br>
//关闭连接<br>
2.4 删除用户<br>
$ds=ldap_connect(&quot;10.31.172.30:1000&quot;);<br>
//首先连接上服务器 <br>
ldap_bind($ds,&quot;cn=domadmin,o=jite&quot;,&quot;password&quot;);<br>
//绑定管理员，有删除的权限<br>
$dn=&quot;cn=dingxf,o=jite&quot;;<br>
ldap_delete($ds, $dn);<br>
//删除用户<br>
ldap_unbind($ds);<br>
//取消绑定<br>
ldap_close($ds);<br>
//关闭连接<br>
2.5 修改用户资料<br>
$ds=ldap_connect(&quot;10.31.172.30:1000&quot;);<br>
//首先连接上服务器 <br>
ldap_bind($ds,&quot;cn=domadmin,o=jite&quot;,&quot;password&quot;);<br>
//绑定管理员，有修改的权限<br>
$dn=&quot;cn=dingxf,o=jite&quot;; <br>
//用户dn<br>
$info[&quot;userpassword&quot;]=&quot;aaa&quot;; //要修改的信息，放在数组变量中<br>
$info[&quot;location&quot;]=&quot;shanghaisdaf&quot;;<br>
<br>
ldap_modify($ds, $dn , $info);<br>
//修改函数<br>
ldap_unbind($ds);<br>
//取消绑定<br>
ldap_close($ds);<br>
//关闭连接<br>
2.6 用户登录验证<br>
$ds=ldap_connect(&quot;10.31.172.30:1000&quot;);<br>
//首先连接上服务器 <br>
if (ldap_bind($ds,&quot;cn=dingxf,o=jite&quot;,&quot;dingxf&quot;)){<br>
echo &quot;验证通过&quot;;<br>
}else{<br>
echo &quot;验证不通过&quot;;<br>
}<br>
ldap_unbind($ds);<br>
//取消绑定<br>
ldap_close($ds);<br>
//关闭连接</p>
<br>
注：此方法比较简单，实用，它也有不足之处，如果不通过，ldap_bind()提示它自带的提示语：&rdquo;Warning: LDAP: Unable to bind to server: Inappropriate authentication in /home/htdocs/jldl.net/ldap/test.php3 on line 16&rdquo; 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/%B7%D6%CF%EDphp">分享php</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/47ce7e636a2ecc650c33fabc.html#comment">查看评论</a>]]></description>
        <pubDate>2008-06-12  14:18</pubDate>
        <category><![CDATA[分享php]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/47ce7e636a2ecc650c33fabc.html</guid>
</item>

<item>
        <title><![CDATA[Lightweight Directory Access Protocol]]></title>
        <link><![CDATA[http://hi.baidu.com/hengcheng/blog/item/fafc4eb565e8b2cb36d3cab4.html]]></link>
        <description><![CDATA[
		
		<div style="margin: 15px">
<div>1. LDAP介绍 4<br>
1.1. LDAP是什么 4<br>
1.2. LDAP是电话簿 4<br>
1.3. LDAP是不是数据库 4</div>
<div>2. LDAP的特点 5<br>
2.1. LDAP的优势 5<br>
2.1.1 跨平台 5<br>
2.1.2 费用及维护 5<br>
2.1.3 复制技术 5<br>
2.1.4 允许使用ACI 5<br>
2.2. LDAP存储什么数据 6<br>
2.3. 什么时候该用LDAP存储数据 6<br>
3. LDAP的基本模型 7<br>
3.1 信息模型：描述LDAP的信息表示方式 7<br>
3.2 命名模型：描述LDAP中的数据如何组织 7<br>
3.3 功能模型：描述LDAP中的数据操作访问 7<br>
3.4 安全模型：描述LDAP中的安全机制 8<br>
3.4.1 身份认证 8<br>
3.4.2 通讯安全 8<br>
3.4.3 访问控制 8</div>
<div>4. LDAP数据结构 9<br>
4.1 树状组织 9<br>
4.2 条目和条目认证 9<br>
4.3 数据样式（schema） 9<br>
4.4 对象类型(objectClass) 9<br>
4.5 过滤器和语法 10<br>
4.6 树移植 10<br>
4.7 LDIF交换文件 10<br>
4.8 JAVA或CORBA对象串行化存储 10</div>
<p>1.1. LDAP是什么<br>
LDAP是轻量目录访问协议，英文全称是Lightweight Directory Access Protocol，一般都简称为LDAP。它是基于X.500标准的，但是简单多了并且可以根据需要定制。与X.500不同，LDAP支持TCP/IP，这对访问<a href=" :;" target="_self"><u><strong><font color="#009999">Internet</font></strong></u></a>是必须的。LDAP的核心规范在RFC中都有定义，所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。<br>
简单说来，LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。 <br>
LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用，不过根据组织者的需要，它可以做得更加强大。 <br>
1.2. LDAP是电话簿<br>
LDAP其实是一电话簿，类似于我们所使用诸如NIS(Network Information Service)、DNS (Domain Name Service)等网络目录，也类似于你在花园中所看到的树木。 <br>
1.3. LDAP是不是数据库<br>
不少LDAP开发人员喜欢把LDAP与关系数据库相比，认为是另一种的存贮方式，然后在读性能上进行比较。实际上，这种对比的基础是错误的。LDAP和关系数据库是两种不同层次的概念，后者是存贮方式（同一层次如网格数据库，<a href=" :;" target="_self"><u><strong><font color="#009999">对象</font></strong></u></a>数据库），前者是存贮模式和访问协议。LDAP是一个比关系数据库抽象层次更高的存贮概念，与关系数据库的查询语言SQL属同一级别。LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果，不过在其它方面，例如更新，就慢得多。<br>
从另一个意义上 LDAP是实现了指定的数据结构的存贮，它是一种特殊的数据库。但是LDAP和一般的数据库不同，明白这一点是很重要的。 LDAP对查询进行了优化，与写性能相比LDAP的读性能要优秀很多。<br>
就象Sybase、Oracle、Informix或Microsoft的数据库管理系统（DBMS）是用于处理查询和更新关系型数据库那样，LDAP服务器也是用来处理查询和更新LDAP目录的。换句话来说LDAP目录也是一种类型的数据库，但不是关系型数据库。要特别注意的是，LDAP通常作为一个 hierarchal数据库使用，而不是一个关系数据库。因此，它的结构用树来表示比用表格好。正因为这样，就不能用SQL语句了。 <br>
2. LDAP的特点<br>
2.1. LDAP的优势<br>
2.1.1 跨平台<br>
LDAP最大的优势是：可以在任何计算机平台上，用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上LDAP的支持。<br>
LDAP 协议是跨平台的和标准的协议，因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。实际上，LDAP得到了业界的广泛认可，因为它是 Internet的标准。产商都很愿意在产品中加入对LDAP的支持，因为他们根本不用考虑另一端（客户端或服务端）是怎么样的。LDAP服务器可以是任何一个开发源<a href=" :;" target="_self"><u><strong><font color="#009999">代码</font></strong></u></a>或商用的LDAP目录服务器（或者还可能是具有LDAP界面的关系型数据库），因为可以用同样的协议、客户端连接软件包和查询命令与 LDAP服务器进行交互。与LDAP不同的是，如果软件产商想在软件产品中集成对DBMS的支持，那么通常都要对每一个数据库服务器单独定制。<br>
2.1.2 费用及维护<br>
不象很多商用的关系型数据库，你不必为LDAP的每一个客户端连接或许可协议付费。<br>
大多数的LDAP服务器<a href=" :;" target="_self"><u><strong><font color="#009999">安装</font></strong></u></a>起来很简单，也容易维护和优化。<br>
2.1.3 复制技术<br>
LDAP服务器可以用&quot;推&quot;或&quot;拉&quot;的<a href=" :;" target="_self"><u><strong><font color="#009999">方法</font></strong></u></a>复制部分或全部数据，例如：可以把数据&quot;推&quot;到远程的办公室，以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。如果要在DBMS中使用相同的复制功能，数据库产商就会要你支付额外的费用，而且也很难管理。<br>
2.1.4 允许使用ACI<br>
LDAP 允许你根据需要使用ACI（一般都称为ACL或者访问控制列表）控制对数据读和写的权限。例如，设备管理员可以有权改变员工的<a href=" :;" target="_self"><u><strong><font color="#009999">工作</font></strong></u></a>地点和办公室号码，但是不允许改变记录中其它的域。ACI可以根据谁访问数据、访问什么数据、数据存在什么地方以及其它对数据进行访问控制。因为这些都是由LDAP目录服务器完成的，所以不用担心在客户端的应用程序上是否要进行安全检查。<br>
2.2. LDAP存储什么数据<br>
LDAP对于这样存储这样的信息最为有用：也就是数据需要从不同的地点读取，但是不需要经常更新。例如，这些信息存储在LDAP目录中是十分有效的：<br>
l 公司员工的电话号码簿和组织结构图<br>
l 客户的联系信息<br>
l 计算机管理需要的信息，包括NIS映射、email假名，等等<br>
l 软件包的配置信息<br>
l 公用证书和安全密匙<br>
2.3. 什么时候该用LDAP存储数据<br>
大多数的LDAP服务器都为读密集型的操作进行专门的优化。因此，当从LDAP服务器中读取数据的时候会比从专门为OLTP优化的关系型数据库中读取数据快一个数量级。也是因为专门为读的性能进行优化，大多数的LDAP目录服务器并不适合存储需要需要经常改变的数据。例如，用LDAP服务器来存储电话号码是一个很好的选择，但是它不能作为电子商务站点的数据库服务器。<br>
如果下面每一个问题的答案都是&quot;是&quot;，那么把数据存在LDAP中就是一个好主意。<br>
l 需要在任何平台上都能读取数据吗？<br>
l 每一个单独的记录项是不是每一天都只有很少的改变？<br>
l 可以把数据存在平面数据库（flat database）而不是关系型数据库中吗？换句话来说，也就是不管什么范式不范式的，把所有东西都存在一个记录中（差不多只要满足第一范式）。<br>
最后一个问题可能会唬住一些人，其实用平面数据库去存储一些关系型的数据也是很一般的。例如，一条公司员工的记录就可以包含经理的登录名。用LDAP来存储这类信息是很方便的。一个简单的判断方法：如果可以把保数据存在一张张的卡片里，就可以很容易地把它存在LDAP目录里。<br>
3. LDAP的基本模型 <br>
3.1 信息模型：描述LDAP的信息表示方式 <br>
在LDAP 中信息以树状方式组织，在树状信息中的基本数据单元是条目，而每个条目由属性构成，属性中存储有属性值；LDAP中的信息模式，类似于<a href=" :;" target="_self"><u><strong><font color="#009999">面向对象</font></strong></u></a>的概念，在 LDAP中每个条目必须属于某个或多个对象类（Object Class），每个Object Class由多个属性类型组成，每个属性类型有所对应的语法和匹配规则；对象类和属性类型的定义均可以使用继承的概念。每个条目创建时，必须定义所属的对象类，必须提供对象类中的必选属性类型的属性值，在LDAP中一个属性类型可以对应多个值。 <br>
在LDAP中把对象类、属性类型、语法和匹配规则统称为Schema，在LDAP中有许多系统对象类、属性类型、语法和匹配规则，这些系统Schema在LDAP标准中进行了规定，同时不同的应用领域也定义了自己的Schema，同时用户在应用时，也可以根据需要自定义Schema。这有些类似于<a href=" :;" target="_self"><u><strong><font color="#009999">XML</font></strong></u></a>，除了XML标准中的XML定义外，每个行业都有自己标准的DTD或DOM定义，用户也可以自扩展；也如同XML，在LDAP中也鼓励用户尽量使用标准的Schema，以增强信息的互联互通。 <br>
在Schema中最难理解的是匹配规则，这是LDAP中为了加快查询的速度，针对不同的数据类型，可以提供不同的匹配方法，如针对字符串类型的相等、模糊、大于小于均提供自己的匹配规则。 <br>
3.2 命名模型：描述LDAP中的数据如何组织 <br>
LDAP中的命名模型，也即LDAP中的条目定位方式。在LDAP中每个条目均有自己的DN和RDN。DN是该条目在整个树中的唯一名称标识，RDN是条目在父节点下的唯一名称标识，如同文件系统中，带路径的文件名就是DN，文件名就是RDN。 <br>
3.3 功能模型：描述LDAP中的数据操作访问 <br>
在LDAP 中共有四类10种操作：查询类操作，如搜索、比较；更新类操作，如添加条目、删除条目、修改条目、修改条目名；认证类操作，如绑定、解绑定；其它操作，如放弃和扩展操作。除了扩展操作，另外9种是LDAP的标准操作；扩展操作是LDAP中为了增加新的功能，提供的一种标准的扩展<a href=" :;" target="_self"><u><strong><font color="#009999">框架</font></strong></u></a>，当前已经成为LDAP 标准的扩展操作，有修改密码和StartTLS扩展，在新的RFC标准和草案中正在增加一些新的扩展操作，不同的LDAP厂商也均定义了自己的扩展操作。 <br>
3.4 安全模型：描述LDAP中的安全机制 <br>
LDAP中的安全模型主要通过身份认证、安全通道和访问控制来实现。 <br>
3.4.1 身份认证<br>
在LDAP 中提供三种认证机制，即匿名、基本认证和SASL（Simple Authentication and Secure Layer）认证。匿名认证即不对用户进行认证，该方法仅对完全公开的方式适用；基本认证均是通过用户名和密码进行身份识别，又分为简单密码和摘要密码认证；SASL认证即LDAP提供的在SSL和TLS安全通道基础上进行的身份认证，包括数字证书的认证。 <br>
3.4.2 通讯安全<br>
在LDAP 中提供了基于SSL/TLS的通讯安全保障。SSL/TLS是基于PKI信息安全技术，是目前Internet上广泛采用的安全服务。LDAP通过 StartTLS方式启动TLS服务，可以提供通讯中的数据保密性、完整性保护；通过强制客户端证书认证的TLS服务，同时可以实现对客户端身份和服务器端身份的双向验证。 <br>
3.4.3 访问控制<br>
虽然LDAP目前并无访问控制的标准，但从一些草案中或是事实上LDAP产品的访问控制情况，我们不难看出：LDAP访问控制异常的灵活和丰富，在LDAP中是基于访问控制策略语句来实现访问控制的，这不同于现有的关系型数据库系统和应用系统，它是通过基于访问控制列表来实现的，无论是基于组模式或角色模式，都摆脱不了这种限制。 <br>
在使用关系型数据库系统开发应用时，往往是通过几个固定的数据库用户名访问数据库。对于应用系统本身的访问控制，通常是需要建立专门的用户表，在应用系统内开发针对不同用户的访问控制授权代码，这样一旦访问控制策略变更时，往往需要代码进行变更。总之一句话，关系型数据库的应用中用户数据管理和数据库访问标识是分离的，复杂的数据访问控制需要通过应用来实现。 <br>
而对于LDAP，用户数据管理和访问标识是一体的，应用不需要关心访问控制的实现。这是由于在LDAP中的访问控制语句是基于策略语句来实现的，无论是访问控制的数据对象，还是访问控制的主体对象，均是与这些对象在树中的位置和对象本身的数据特征相关。 <br>
在LDAP中，可以把整个目录、目录的子树、制定条目、特定条目属性集或符合某过滤条件的条目作为控制对象进行授权；可以把特定用户、属于特定组或所有目录用户作为授权主体进行授权；最后，还可以定义对特定位置（例如IP地址或DNS名称）的访问权。</p>
<p>4. LDAP数据结构<br>
LDAP是实现了指定的数据结构的存贮，它包括以下可以用关系数据库实现的结构要求：树状组织、条目认证、类型定义、许可树形记录拷贝。<br>
4.1 树状组织<br>
无论是X500还是LDAP都是采用树状方式进行记录。每一个树目录都有一个树根的入口条目，子记录全部是这一根条目的子孙。这是目录与关系数据类型最大的区别（关系数据库的应用结构也可实现树状记录）。因此，把目录看作是更高级的树状数据库也未尝不可，只不过除此外，它不能实现关系存贮的重要功能。<br>
4.2 条目和条目认证<br>
LDAP是以条目作为认证的根据。ROOT的权限认证与目录本身无关，但除此外所有条目的认证权限由条目本身的密码进行认证。LDAP可以配置成各种各样不同的父子条目权限继承方式。<br>
每一个条目相当于一个单一的平面文本记录，由条目自身或指定的条目认证进行访问控制。因此，LDAP定义的存贮结构等同于一批树状组织的平面数据库，并提供相应的访问控制。<br>
条目中的记录以名-值对的形式存在，每一个名值对必须由数据样式schema预定义。因此，LDAP可以看作是以规定的值类型以名值对形式存贮在一系列以树状组织的平面数据库的记录的集合。<br>
4.3 数据样式（schema）<br>
数据样式schema是针对不同的应用，由用户指定（设计）类和属性类型预定义，条目中的类(objectclass)和属性必须在在LDAP服务器启动时载入内存的schema已有定义。因此，AD活动目录中的条目记录就必须符合Active Directory的schema中。如果已提供的schema中的定义不够用，用户可以自行定义新的schema.<br>
在<a href="http://ldap.akbkhome.com/index.php"><font color="#007799">http://ldap.akbkhome.com/index.php</font></a>中可以看到常用的schema。<br>
4.4 对象类型(objectClass)<br>
因为LDAP目录可以定制成存储任何文本或二进制数据，到底存什么要由你自己决定。LDAP目录用对象类型（objectclass）的概念来定义运行哪一类的对象使用什么属性。在几乎所有的LDAP服务器中，你都要根据自己的需要扩展基本的LDAP目录的功能，创建新的对象类型或者扩展现存的对象类型。<br>
条目中的记录通过objectclass实现分类，objectClass是一个继承性的类定义，每一个类定义指定必须具备的属性。如某一条目指定必须符合某个类型，则它必须具备超类所指定的属性。<br>
通过objectclass分类，分散的条目中的记录就实际上建立了一个索引结构，为高速的读查询打下了基础。Objectclass也是过滤器的主要查询对象。<br>
4.5 过滤器和语法<br>
LDAP是一个查询为主的记录结构，无论是何种查询方式，最终都由过滤器缺点查询的条件。过滤器相当于SQL中的WHERE子句。任何LDAP的类过滤和字符串都必须放在括号内，如（objectclass=*）,指列出所有类型的记录（不过分类）。<br>
可以使用=，&gt;=，&lt;=，~=（约等于）进行比较，如(number&lt;=100)。合并条件是最怪的，必须把操作符放在两个操作对象的前面而不是中间，单一操作对象用括号括起来。如<br>
l A与B，不是A&amp;B，而是（&amp;(A)(B)）。<br>
l 或使用&quot;|&quot;表示；<br>
l 非使用&quot;！&quot;表示。<br>
l 对于&quot;与&quot;，或&quot;或&quot;在操作符后可以跟多个条件表达式，但非后则只参是单个表达式。<br>
详见RFC1558。<br>
4.6 树移植<br>
LDAP 最重要的特性和要求并不是读性能，而是扩展性。这一特性是通过树移植和树复制实现的。按LDAP的RFC要求，LDAP目录应该可以任意地在不同的目录间连接、合并并实现自动复制，及自动性同步。这意味着用户可以在任一LDAP中访问条目，而不用管其中某一部分是否复制自全世界另一目录中的记录，同时另一目录中的记录同样在正常运作。<br>
这一特性如果在关系数据库中实现，意味着要使用程序化的非规范化预复制。类似于汇总帐目的设计。<br>
4.7 LDIF交换文件<br>
LDIF是LDAP约定的记录交换格式，以平面文本的形式存在，是大部分LDAP内容交换的基础，如拷贝、添加、修改等操作，都是基于LDIF文件进行操作。<br>
4.8 JAVA或CORBA对象串行化存储<br>
网络高效率的访问加上JAVA的跨平台能力，当把JAVA或CORBA对象串行化后存储到LDAP目录上时，可以产生非同一般的集成效果--实际上，这正是EJB和.NET的网络定位基础技术。<br>
使用JAVA或CORBA对象存储时，必须首先让LDAP服务支持该对象定义，也就是说包含qmail.schema或corba.schema。<br>
JAVA 必须存储在objectclass=javacontainer的条目中，而且必须带有cn属性，这意味着除非该JAVA类专门实现了 DirContext接口，对于大多数JAVA类来说，只能采用DirContext代替Context实现bind的添加操作。取出JAVA类相对要简单得多，只需使用context.lookup()获得该对象的句柄，然后强制造型成所需要的对象就可以了,如：<br>
Person p=(Person)contex.lookup(&quot;cn=elvis,dc=daifu,dc=com&quot;);<br>
这个句法在EJB的程序中，是经常用到的。<br>
使用CORBA的跨语言性质，使用CORBA存储对象比JAVA更加诱人，这意味着所存储的对象可以被任何语言编写的客户端访问。其实，微软的.net说到底也非常简单，无非是把COM对象存储到微软自家的目录ActiveDirectory里面，从而可以在网络范围内使用任何微软平台的语言进行对象访问而已。众所周知，COM就是与CORBA相对的微软规范。<br>
使用对象串行化技术，可以把常用对象如某个打印机，某个客户直接存储到LDAP中，然后快速获取该对象的引用，这样，就比把对象信息存储到关系数据库中，分别取出属性，然后再初始化对象操作的做法，效率要高得多了。这是LDAP目前比普通关系数据库存储要优秀的地方，而对象数据库还不成熟。</p>
</div> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/hengcheng/blog/category/%B7%D6%CF%EDphp">分享php</a>&nbsp;<a href="http://hi.baidu.com/hengcheng/blog/item/fafc4eb565e8b2cb36d3cab4.html#comment">查看评论</a>]]></description>
        <pubDate>2008-06-12  14:04</pubDate>
        <category><![CDATA[分享php]]></category>
        <author><![CDATA[桁澄]]></author>
		<guid>http://hi.baidu.com/hengcheng/blog/item/fafc4eb565e8b2cb36d3cab4.html</guid>
</item>


</channel>
</rss>