<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[田志刚博客]]></title>
  <subtitle type="html"><![CDATA[专注于网站制作相关技术,Asp,Php,网站优化,网站推广等内容，深入挖掘网站价值！]]></subtitle>
  <id>http://www.tianzhigang.com/</id>
  <link rel="alternate" type="text/html" href="http://www.tianzhigang.com/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.tianzhigang.com/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2012-05-20T00:13:32+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[VB实现Asp中的server.urlencode功能]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.tianzhigang.com/</uri>
		 <email>admin@tianzhigang.com</email>
	  </author>
	  <category term="" scheme="http://www.tianzhigang.com/default.asp?cateID=5" label="技术文章" /> 
	  <updated>2012-05-20T00:13:32+08:00</updated>
	  <published>2012-05-20T00:13:32+08:00</published>
		  <summary type="html"><![CDATA[<p>VB版URLEncode &nbsp;</p>
<div class="codeText">
<div class="codeHead">ASP/Visual Basic代码</div>
<ol start="1" class="dp-vb">
    <li class="alt"><span><span class="keyword">Private</span><span>&nbsp;</span><span class="keyword">Function</span><span>&nbsp;URLEncoding(vstrIn)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;strReturn&nbsp;=&nbsp;<span class="string">&quot;&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Dim</span><span>&nbsp;i&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;<span class="keyword">For</span><span>&nbsp;i&nbsp;=&nbsp;1&nbsp;</span><span class="keyword">To</span><span>&nbsp;Len(vstrIn)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;ThisChr&nbsp;=&nbsp;Mid(vstrIn,&nbsp;i,&nbsp;1)&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="keyword">If</span><span>&nbsp;Abs(Asc(ThisChr))&nbsp;&lt;&nbsp;&amp;HFF&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;strReturn&nbsp;=&nbsp;strReturn&nbsp;&amp;&nbsp;ThisChr&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="keyword">Else</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;innerCode&nbsp;=&nbsp;Asc(ThisChr)&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="keyword">If</span><span>&nbsp;innerCode&nbsp;&lt;&nbsp;0&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;innerCode&nbsp;=&nbsp;innerCode&nbsp;+&nbsp;&amp;H10000&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;Hight8&nbsp;=&nbsp;(innerCode&nbsp;<span class="keyword">And</span><span>&nbsp;&amp;HFF00)&nbsp;\&nbsp;&amp;HFF&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;Low8&nbsp;=&nbsp;innerCode&nbsp;<span class="keyword">And</span><span>&nbsp;&amp;HFF&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;strReturn&nbsp;=&nbsp;strReturn&nbsp;&amp;&nbsp;<span class="string">&quot;%&quot;</span><span>&nbsp;&amp;&nbsp;Hex(Hight8)&nbsp;&amp;&nbsp;</span><span class="string">&quot;%&quot;</span><span>&nbsp;&amp;&nbsp;Hex(Low8)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;<span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;<span class="keyword">Next</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;strReturn&nbsp;=&nbsp;Replace(strReturn,&nbsp;Chr(32),&nbsp;<span class="string">&quot;%20&quot;</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;URLEncoding&nbsp;=&nbsp;strReturn&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="keyword">End</span><span>&nbsp;</span><span class="keyword">Function</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="comment">'这个是根据HTML里面的ENSCAPE函数仿做的一个函数实现程序,将文字转换为16进制码表示的代码编码和解码方案</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="keyword">Function</span><span>&nbsp;ChangeToChar(CharAsc&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">Long</span><span>)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;<span class="keyword">On</span><span>&nbsp;</span><span class="keyword">Error</span><span>&nbsp;</span><span class="keyword">GoTo</span><span>&nbsp;OnError&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ChangeToChar&nbsp;=&nbsp;ChrW(CharAsc)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Exit</span><span>&nbsp;</span><span class="keyword">Function</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;OnError:&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Exit</span><span>&nbsp;</span><span class="keyword">Function</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;<span class="keyword">End</span><span>&nbsp;</span><span class="keyword">Function</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="keyword">Function</span><span>&nbsp;UnEnscape(enstr&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">String</span><span>)&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">String</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;<span class="keyword">Dim</span><span>&nbsp;DataLen&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">Long</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;<span class="keyword">Dim</span><span>&nbsp;TempData&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">String</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;<span class="keyword">Dim</span><span>&nbsp;filepoint&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">Long</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;<span class="keyword">Dim</span><span>&nbsp;ChinaText&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">Long</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;DataLen&nbsp;=&nbsp;Len(enstr)&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;filepoint&nbsp;=&nbsp;1&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;<span class="keyword">Do</span><span>&nbsp;</span><span class="keyword">While</span><span>&nbsp;(filepoint&nbsp;&lt;=&nbsp;DataLen)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">If</span><span>&nbsp;Mid(enstr,&nbsp;filepoint,&nbsp;1)&nbsp;=&nbsp;</span><span class="string">&quot;%&quot;</span><span>&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">If</span><span>&nbsp;Mid(enstr,&nbsp;filepoint&nbsp;+&nbsp;1,&nbsp;1)&nbsp;=&nbsp;</span><span class="string">&quot;u&quot;</span><span>&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">On</span><span>&nbsp;</span><span class="keyword">Error</span><span>&nbsp;</span><span class="keyword">Resume</span><span>&nbsp;</span><span class="keyword">Next</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ChinaText&nbsp;=&nbsp;<span class="keyword">CLng</span><span>(</span><span class="string">&quot;&amp;H&quot;</span><span>&nbsp;+&nbsp;Mid(enstr,&nbsp;filepoint&nbsp;+&nbsp;2,&nbsp;4))&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempData&nbsp;=&nbsp;TempData&nbsp;+&nbsp;ChangeToChar(ChinaText)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filepoint&nbsp;=&nbsp;filepoint&nbsp;+&nbsp;6&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Else</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempData&nbsp;=&nbsp;TempData&nbsp;+&nbsp;ChrW(<span class="keyword">CLng</span><span>(</span><span class="string">&quot;&amp;H&quot;</span><span>&nbsp;+&nbsp;Mid(enstr,&nbsp;filepoint&nbsp;+&nbsp;1,&nbsp;2)))&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filepoint&nbsp;=&nbsp;filepoint&nbsp;+&nbsp;3&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Else</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempData&nbsp;=&nbsp;TempData&nbsp;+&nbsp;Mid(enstr,&nbsp;filepoint,&nbsp;1)&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filepoint&nbsp;=&nbsp;filepoint&nbsp;+&nbsp;1&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;<span class="keyword">Loop</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;UnEnscape&nbsp;=&nbsp;TempData&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="keyword">End</span><span>&nbsp;</span><span class="keyword">Function</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="keyword">Function</span><span>&nbsp;Enscape(enstr&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">String</span><span>)&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">String</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;<span class="keyword">Dim</span><span>&nbsp;OutPutStr&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">String</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;<span class="keyword">Dim</span><span>&nbsp;TmpStr&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">String</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;<span class="keyword">Dim</span><span>&nbsp;DataLen&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">Long</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;TmpStr&nbsp;=&nbsp;<span class="string">&quot;&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;DataLen&nbsp;=&nbsp;Len(enstr)&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="keyword">Dim</span><span>&nbsp;TempNum&nbsp;</span><span class="keyword">As</span><span>&nbsp;</span><span class="keyword">Long</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;<span class="keyword">For</span><span>&nbsp;i&nbsp;=&nbsp;1&nbsp;</span><span class="keyword">To</span><span>&nbsp;DataLen&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;TempNum&nbsp;=&nbsp;AscW(Mid(enstr,&nbsp;i,&nbsp;1))&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print&nbsp;TempNum&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">If</span><span>&nbsp;TempNum&nbsp;&lt;&nbsp;16&nbsp;</span><span class="keyword">And</span><span>&nbsp;TempNum&nbsp;&gt;&nbsp;0&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TmpStr&nbsp;=&nbsp;TmpStr&nbsp;+&nbsp;<span class="string">&quot;%0&quot;</span><span>&nbsp;+&nbsp;Hex(TempNum)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ElseIf</span><span>&nbsp;48&nbsp;&lt;=&nbsp;TempNum&nbsp;</span><span class="keyword">And</span><span>&nbsp;TempNum&nbsp;&lt;=&nbsp;57&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TmpStr&nbsp;=&nbsp;TmpStr&nbsp;+&nbsp;Mid(enstr,&nbsp;i,&nbsp;1)&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ElseIf</span><span>&nbsp;65&nbsp;&lt;=&nbsp;TempNum&nbsp;</span><span class="keyword">And</span><span>&nbsp;TempNum&nbsp;&lt;=&nbsp;90&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TmpStr&nbsp;=&nbsp;TmpStr&nbsp;+&nbsp;Mid(enstr,&nbsp;i,&nbsp;1)&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ElseIf</span><span>&nbsp;97&nbsp;&lt;=&nbsp;TempNum&nbsp;</span><span class="keyword">And</span><span>&nbsp;TempNum&nbsp;&lt;=&nbsp;122&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TmpStr&nbsp;=&nbsp;TmpStr&nbsp;+&nbsp;Mid(enstr,&nbsp;i,&nbsp;1)&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ElseIf</span><span>&nbsp;16&nbsp;&lt;=&nbsp;TempNum&nbsp;</span><span class="keyword">And</span><span>&nbsp;TempNum&nbsp;&lt;&nbsp;256&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TmpStr&nbsp;=&nbsp;TmpStr&nbsp;+&nbsp;<span class="string">&quot;%&quot;</span><span>&nbsp;+&nbsp;Hex(TempNum)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ElseIf</span><span>&nbsp;4096&nbsp;&gt;&nbsp;TempNum&nbsp;</span><span class="keyword">And</span><span>&nbsp;TempNum&nbsp;&gt;=&nbsp;256&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">If</span><span>&nbsp;TempNum&nbsp;&gt;&nbsp;0&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TmpStr&nbsp;=&nbsp;TmpStr&nbsp;+&nbsp;<span class="string">&quot;%u0&quot;</span><span>&nbsp;+&nbsp;Hex(TempNum)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Else</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TmpStr&nbsp;=&nbsp;TmpStr&nbsp;+&nbsp;<span class="string">&quot;%u0&quot;</span><span>&nbsp;+&nbsp;Hex(</span><span class="keyword">CLng</span><span>(&amp;H10000)&nbsp;+&nbsp;TempNum)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">ElseIf</span><span>&nbsp;Abs(TempNum)&nbsp;&gt;=&nbsp;4096&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">If</span><span>&nbsp;TempNum&nbsp;&gt;&nbsp;0&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TmpStr&nbsp;=&nbsp;TmpStr&nbsp;+&nbsp;<span class="string">&quot;%u&quot;</span><span>&nbsp;+&nbsp;Hex(TempNum)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Else</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TmpStr&nbsp;=&nbsp;TmpStr&nbsp;+&nbsp;<span class="string">&quot;%u&quot;</span><span>&nbsp;+&nbsp;Hex(</span><span class="keyword">CLng</span><span>(&amp;H10000)&nbsp;+&nbsp;TempNum)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="keyword">Next</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;Enscape&nbsp;=&nbsp;TmpStr&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;<span class="keyword">End</span><span>&nbsp;</span><span class="keyword">Function</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<p>转载自：http://www.cnblogs.com/xxaxx/archive/2009/12/29/1635300.html</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.tianzhigang.com/article.asp?id=581" /> 
	  <id>http://www.tianzhigang.com/default.asp?id=581</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Imghash:相似图片搜索的php实现]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.tianzhigang.com/</uri>
		 <email>admin@tianzhigang.com</email>
	  </author>
	  <category term="" scheme="http://www.tianzhigang.com/default.asp?cateID=5" label="技术文章" /> 
	  <updated>2012-05-19T16:14:12+08:00</updated>
	  <published>2012-05-19T16:14:12+08:00</published>
		  <summary type="html"><![CDATA[<h2>图片相似搜索的简单原理</h2>
<p>根据文章里的描述，其实原理比较简单，大致有如下几个步骤：</p>
<p>1、缩小尺寸。将图片缩小到8&times;8的尺寸，总共64个像素。这一步的作用是去除图片的细节，只保留结构、明暗等基本信息，摒弃不同尺寸、比例带来的图片差异。</p>
<p>2、简化色彩。将缩小后的图片，转为64级灰度。也就是说，所有像素点总共只有64种颜色。</p>
<p>3、计算平均值。计算所有64个像素的灰度平均值。</p>
<p>4、比较像素的灰度。将每个像素的灰度，与平均值进行比较。大于或等于平均值，记为1；小于平均值，记为0。</p>
<p>5、计算哈希值。将上一步的比较结果，组合在一起，就构成了一个64位的整数，这就是这张图片的指纹。组合的次序并不重要，只要保证所有图片都采用同样次序就行了。得到指纹以后，就可以对比不同的图片，看看64位中有多少位是不一样的。</p>
<p>这种算法的优点是简单快速，不受图片大小缩放的影响，缺点是图片的内容不能变更。实际应用中，往往采用更强大的pHash算法和SIFT算法，它们能够识别图片的变形。只要变形程度不超过25%，它们就能匹配原图。</p>
<p>&nbsp;</p>
<h2>图片相似搜索的PHP实现</h2>
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span class="comment">/**</span>&nbsp;</span></li>
    <li><span><span class="comment">&nbsp;*&nbsp;</span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;*&nbsp;相似图片搜索hash的php实现</span>&nbsp;</span></li>
    <li><span><span class="comment">&nbsp;*&nbsp;@author&nbsp;welefen</span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">&nbsp;*</span>&nbsp;</span></li>
    <li><span><span class="comment">&nbsp;*/</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;Imghash{&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="vars">$_instance</span><span>&nbsp;=&nbsp;null;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="vars">$rate</span><span>&nbsp;=&nbsp;2;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;getInstance(){&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(self::</span><span class="vars">$_instance</span><span>&nbsp;===&nbsp;null){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self::<span class="vars">$_instance</span><span>&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;self();&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;self::</span><span class="vars">$_instance</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;run(</span><span class="vars">$file</span><span>){&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(!function_exists(</span><span class="string">'imagecreatetruecolor'</span><span>)){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">throw</span><span>&nbsp;</span><span class="keyword">new</span><span>&nbsp;Exception(</span><span class="string">'must&nbsp;load&nbsp;gd&nbsp;lib'</span><span>,&nbsp;1);&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$isString</span><span>&nbsp;=&nbsp;false;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(</span><span class="func">is_string</span><span>(</span><span class="vars">$file</span><span>)){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$file</span><span>&nbsp;=&nbsp;</span><span class="keyword">array</span><span>(</span><span class="vars">$file</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$isString</span><span>&nbsp;=&nbsp;true;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$result</span><span>&nbsp;=&nbsp;</span><span class="keyword">array</span><span>();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">foreach</span><span>&nbsp;(</span><span class="vars">$file</span><span>&nbsp;</span><span class="keyword">as</span><span>&nbsp;</span><span class="vars">$f</span><span>){&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$result</span><span>[]&nbsp;=&nbsp;</span><span class="vars">$this</span><span>-&gt;hash(</span><span class="vars">$f</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="vars">$isString</span><span>&nbsp;?&nbsp;</span><span class="vars">$result</span><span>[0]&nbsp;:&nbsp;</span><span class="vars">$result</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;checkIsSimilarImg(</span><span class="vars">$imgHash</span><span>,&nbsp;</span><span class="vars">$otherImgHash</span><span>){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(</span><span class="func">file_exists</span><span>(</span><span class="vars">$imgHash</span><span>)&nbsp;&amp;&amp;&nbsp;</span><span class="func">file_exists</span><span>(</span><span class="vars">$otherImgHash</span><span>)){&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$imgHash</span><span>&nbsp;=&nbsp;</span><span class="vars">$this</span><span>-&gt;run(</span><span class="vars">$imgHash</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$otherImgHash</span><span>&nbsp;=&nbsp;</span><span class="vars">$this</span><span>-&gt;run(</span><span class="vars">$otherImgHash</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(</span><span class="func">strlen</span><span>(</span><span class="vars">$imgHash</span><span>)&nbsp;!==&nbsp;</span><span class="func">strlen</span><span>(</span><span class="vars">$otherImgHash</span><span>))&nbsp;</span><span class="keyword">return</span><span>&nbsp;false;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$count</span><span>&nbsp;=&nbsp;0;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$len</span><span>&nbsp;=&nbsp;</span><span class="func">strlen</span><span>(</span><span class="vars">$imgHash</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span>&lt;</span><span class="vars">$len</span><span>;</span><span class="vars">$i</span><span>++){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(</span><span class="vars">$imgHash</span><span>{</span><span class="vars">$i</span><span>}&nbsp;!==&nbsp;</span><span class="vars">$otherImgHash</span><span>{</span><span class="vars">$i</span><span>}){&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$count</span><span>++;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="vars">$count</span><span>&nbsp;&lt;=&nbsp;(5&nbsp;*&nbsp;</span><span class="vars">$rate</span><span>&nbsp;*&nbsp;</span><span class="vars">$rate</span><span>)&nbsp;?&nbsp;true&nbsp;:&nbsp;false;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;hash(</span><span class="vars">$file</span><span>){&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(!</span><span class="func">file_exists</span><span>(</span><span class="vars">$file</span><span>)){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;false;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$height</span><span>&nbsp;=&nbsp;8&nbsp;*&nbsp;</span><span class="vars">$this</span><span>-&gt;rate;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$width</span><span>&nbsp;=&nbsp;8&nbsp;*&nbsp;</span><span class="vars">$this</span><span>-&gt;rate;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$img</span><span>&nbsp;=&nbsp;imagecreatetruecolor(</span><span class="vars">$width</span><span>,&nbsp;</span><span class="vars">$height</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list(<span class="vars">$w</span><span>,&nbsp;</span><span class="vars">$h</span><span>)&nbsp;=&nbsp;</span><span class="func">getimagesize</span><span>(</span><span class="vars">$file</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$source</span><span>&nbsp;=&nbsp;</span><span class="vars">$this</span><span>-&gt;createImg(</span><span class="vars">$file</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imagecopyresampled(<span class="vars">$img</span><span>,&nbsp;</span><span class="vars">$source</span><span>,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;</span><span class="vars">$width</span><span>,&nbsp;</span><span class="vars">$height</span><span>,&nbsp;</span><span class="vars">$w</span><span>,&nbsp;</span><span class="vars">$h</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$value</span><span>&nbsp;=&nbsp;</span><span class="vars">$this</span><span>-&gt;getHashValue(</span><span class="vars">$img</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imagedestroy(<span class="vars">$img</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="vars">$value</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;getHashValue(</span><span class="vars">$img</span><span>){&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$width</span><span>&nbsp;=&nbsp;imagesx(</span><span class="vars">$img</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$height</span><span>&nbsp;=&nbsp;imagesy(</span><span class="vars">$img</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$total</span><span>&nbsp;=&nbsp;0;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$array</span><span>&nbsp;=&nbsp;</span><span class="keyword">array</span><span>();&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="vars">$y</span><span>=0;</span><span class="vars">$y</span><span>&lt;</span><span class="vars">$height</span><span>;</span><span class="vars">$y</span><span>++){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="vars">$x</span><span>=0;</span><span class="vars">$x</span><span>&lt;</span><span class="vars">$width</span><span>;</span><span class="vars">$x</span><span>++){&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$gray</span><span>&nbsp;=&nbsp;(&nbsp;imagecolorat(</span><span class="vars">$img</span><span>,&nbsp;</span><span class="vars">$x</span><span>,&nbsp;</span><span class="vars">$y</span><span>)&nbsp;&gt;&gt;&nbsp;8&nbsp;)&nbsp;&amp;&nbsp;0xFF;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(!</span><span class="func">is_array</span><span>(</span><span class="vars">$array</span><span>[</span><span class="vars">$y</span><span>])){&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$array</span><span>[</span><span class="vars">$y</span><span>]&nbsp;=&nbsp;</span><span class="keyword">array</span><span>();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$array</span><span>[</span><span class="vars">$y</span><span>][</span><span class="vars">$x</span><span>]&nbsp;=&nbsp;</span><span class="vars">$gray</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$total</span><span>&nbsp;+=&nbsp;</span><span class="vars">$gray</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$average</span><span>&nbsp;=&nbsp;</span><span class="func">intval</span><span>(</span><span class="vars">$total</span><span>&nbsp;/&nbsp;(64&nbsp;*&nbsp;</span><span class="vars">$this</span><span>-&gt;rate&nbsp;*&nbsp;</span><span class="vars">$this</span><span>-&gt;rate));&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$result</span><span>&nbsp;=&nbsp;</span><span class="string">''</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="vars">$y</span><span>=0;</span><span class="vars">$y</span><span>&lt;</span><span class="vars">$height</span><span>;</span><span class="vars">$y</span><span>++){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="vars">$x</span><span>=0;</span><span class="vars">$x</span><span>&lt;</span><span class="vars">$width</span><span>;</span><span class="vars">$x</span><span>++){&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(</span><span class="vars">$array</span><span>[</span><span class="vars">$y</span><span>][</span><span class="vars">$x</span><span>]&nbsp;&gt;=&nbsp;</span><span class="vars">$average</span><span>){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$result</span><span>&nbsp;.=&nbsp;</span><span class="string">'1'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<span class="keyword">else</span><span>{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$result</span><span>&nbsp;.=&nbsp;</span><span class="string">'0'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="vars">$result</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;createImg(</span><span class="vars">$file</span><span>){&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$ext</span><span>&nbsp;=&nbsp;</span><span class="vars">$this</span><span>-&gt;getFileExt(</span><span class="vars">$file</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(</span><span class="vars">$ext</span><span>&nbsp;===&nbsp;</span><span class="string">'jpeg'</span><span>)&nbsp;</span><span class="vars">$ext</span><span>&nbsp;=&nbsp;</span><span class="string">'jpg'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$img</span><span>&nbsp;=&nbsp;null;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">switch</span><span>&nbsp;(</span><span class="vars">$ext</span><span>){&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;</span><span class="string">'png'</span><span>&nbsp;:&nbsp;</span><span class="vars">$img</span><span>&nbsp;=&nbsp;imagecreatefrompng(</span><span class="vars">$file</span><span>);</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;</span><span class="string">'jpg'</span><span>&nbsp;:&nbsp;</span><span class="vars">$img</span><span>&nbsp;=&nbsp;imagecreatefromjpeg(</span><span class="vars">$file</span><span>);</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;</span><span class="string">'gif'</span><span>&nbsp;:&nbsp;</span><span class="vars">$img</span><span>&nbsp;=&nbsp;imagecreatefromgif(</span><span class="vars">$file</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="vars">$img</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;getFileExt(</span><span class="vars">$file</span><span>){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$infos</span><span>&nbsp;=&nbsp;</span><span class="func">explode</span><span>(</span><span class="string">'.'</span><span>,&nbsp;</span><span class="vars">$file</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="vars">$ext</span><span>&nbsp;=&nbsp;</span><span class="func">strtolower</span><span>(</span><span class="vars">$infos</span><span>[</span><span class="func">count</span><span>(</span><span class="vars">$infos</span><span>)&nbsp;-&nbsp;1]);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="vars">$ext</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p>调用方式如下：</p>
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span class="keyword">require_once</span><span>&nbsp;</span><span class="string">&quot;Imghash.class.php&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span><span class="vars">$instance</span><span>&nbsp;=&nbsp;ImgHash::getInstance();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$result</span><span>&nbsp;=&nbsp;</span><span class="vars">$instance</span><span>-&gt;checkIsSimilarImg(</span><span class="string">'chenyin/IMG_3214.png'</span><span>,&nbsp;</span><span class="string">'chenyin/IMG_3212.JPG'</span><span>);&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<pre lang="php">&nbsp;</pre>
<p>如果$result值为true, 则表明2个图片相似，否则不相似。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>其他</h2>
<p>&nbsp;</p>
<p>在实际的相似图片搜索中，算图片的指纹并不是难点，难点而是在怎么从海量的图片指纹里找出与之相似的指纹。</p>
<p>原文链接：<a href="http://www.welefen.com/similar-image-search-in-php.html" target="_blank">http://www.welefen.com/similar-image-search-in-php.html</a></p>
<p>&nbsp;</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.tianzhigang.com/article.asp?id=580" /> 
	  <id>http://www.tianzhigang.com/default.asp?id=580</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[php addslashes及其他清除空格的方法是不安全的]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.tianzhigang.com/</uri>
		 <email>admin@tianzhigang.com</email>
	  </author>
	  <category term="" scheme="http://www.tianzhigang.com/default.asp?cateID=5" label="技术文章" /> 
	  <updated>2012-05-19T00:46:12+08:00</updated>
	  <published>2012-05-19T00:46:12+08:00</published>
		  <summary type="html"><![CDATA[<p>&nbsp;清除空格的方法是不安全的,部分原因是因为字符中的空格非常多,例如 &quot;addslashes的问题在 于黑客  可以用0xbf27来代替单引号，而addslashes只是将0xbf27修改为0xbf5c27，成为一个有效的多字节字符，其中的0xbf5c仍会  被看作是单引号，所以addslashes无法成功拦截。&quot; <br />
<br />
最好是按照具体的参数需求校验确定是 int  等不是,外加数据库的参数操作方法.其实这个是数据库的 sql 问题,应该从源头数据库本身来解决,只不过有些数据库滑提供相应的方法罢了.  <br />
<br />
SQL注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验，那么常容易遭到SQL注入攻击。SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现，很可能使数据库中的纪录遭到暴露，更改或被删除。  <br />
<br />
为了防止SQL注入攻击，PHP自带一个功能可以对输入的字符串进行处理，可以在较底层对输入进行安全上的初步处理，也即Magic  Quotes。(php.ini  magic_quotes_gpc)。如果magic_quotes_gpc选项启用，那么输入的字符串中的单引号，双引号和其它一些字符前将会被自动加 上反斜杠。  <br />
<br />
但Magic Quotes并不是一个很通用的解决方案，没能屏蔽所有有潜在危险的字符，并且在许多服务器上Magic  Quotes并没有被启用。所以，我们还需要使用其它多种方法来防止SQL注入。 <br />
<br />
许  多数据库本身就提供这种输入数据处理功能。例如PHP的MySQL操作函数中有addslashes()、  mysql_real_escape_string()、mysql_escape_string()等函数，可将特殊字符和可能引起数据库操作出错的字  符转义。那么这三个功能函数之间有什么却别呢？下面我们就来详细讲述下。  <br />
<br />
虽然国内很多PHP程序员仍在依靠addslashes防止SQL注入，还是建议大家加强中文防止SQL注入的检查。addslashes的问题在  于黑客  可以用0xbf27来代替单引号，而addslashes只是将0xbf27修改为0xbf5c27，成为一个有效的多字节字符，其中的0xbf5c仍会  被看作是单引号，所以addslashes无法成功拦截。  <br />
<br />
当然addslashes也不是毫无用处，它是用于单字节字符串的处理，多字节字符还是用mysql_real_escape_string吧。  <br />
<br />
另外对于php手册中get_magic_quotes_gpc的举例： <br />
if (!get_magic_quotes_gpc()) {  <br />
$lastname = addslashes($_POST[&lsquo;lastname']); <br />
} else { <br />
$lastname =  $_POST[&lsquo;lastname']; <br />
}  <br />
最好对magic_quotes_gpc已经开放的情况下，还是对$_POST['lastname']进行检查一下。  <br />
<br />
再说下mysql_real_escape_string和mysql_escape_string这2个函数的区别：  <br />
mysql_real_escape_string 必须在(PHP 4 &gt;= 4.3.0, PHP 5)的情况下才能使用。否则只能用  mysql_escape_string ，两者的区别是：mysql_real_escape_string  考虑到连接的当前字符集，而mysql_escape_string 不考虑。 <br />
<br />
总结一下： <br />
<br />
* addslashes() 是强行加；  <br />
* mysql_real_escape_string() 会判断字符集，但是对PHP版本有要求； <br />
*  mysql_escape_string不考虑连接的当前字符集。  <br />
<br />
dz中的防止sql注入就是用addslashes这个函数，同时在dthmlspecialchars这个函数中有进行一些替换$string =  preg_replace('/&amp;((#(d{3,5}|x[a-fA-F0-9]{4}));)/',  '&amp;\1',这个替换解决了注入的问题，同时也解决了中文乱码的一些问题&nbsp;<!--NEWSZW_HZH_END--></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.tianzhigang.com/article.asp?id=579" /> 
	  <id>http://www.tianzhigang.com/default.asp?id=579</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[神奇的contentEditable 让Div可以输入文字]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.tianzhigang.com/</uri>
		 <email>admin@tianzhigang.com</email>
	  </author>
	  <category term="" scheme="http://www.tianzhigang.com/default.asp?cateID=5" label="技术文章" /> 
	  <updated>2012-05-18T21:27:44+08:00</updated>
	  <published>2012-05-18T21:27:44+08:00</published>
		  <summary type="html"><![CDATA[<p>contentEditable　html中的一个属性。设置html的contentEditable=&lsquo;true&rsquo;时，即可开启该元素的编辑模式。&nbsp;</p>
<div class="spctrl">&nbsp;Html中的contentEditable的属性可以打开某些元素的可编辑状态．也许你没用过contentEditable属性．甚至从未听说过．contentEditable的作用相当神奇．可以让div或整个网页，以及span等等元素设置为可写．我们最常用的输入文本内容便是input与textarea  使用contentEditable属性后，可以在div,table,p,span,body,等等很多元素中输入内容．&nbsp;</div>
<div class="spctrl">&nbsp;</div>
<p>如果想要整个网页可编辑，请在body标签内设置contentEditable&nbsp;</p>
<div class="spctrl">&nbsp;contentEditable已在html5标准中得到有效的支持。&nbsp;</div>
<div class="spctrl">&nbsp;</div>
<p>在IE8下设置表格可写不支持，其他元素没有问题．在FireFox运行一切正常．谷歌浏览器运行一切正常。&nbsp;</p>
<h3>使用方法</h3>
<p>html中  &lt;p contentEditable=true&gt;</p>
<p>js 中 document.all(&quot;tjtxt&quot;).contentEditable =true;</p>
<h3>应用</h3>
<p>前段UI的美化，表单元素通过css样式不一定能达成设计师的要求，通过开启 div  p span等元素的contentEditable，来实现表单元素的功能（需要js搭配）。</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.tianzhigang.com/article.asp?id=578" /> 
	  <id>http://www.tianzhigang.com/default.asp?id=578</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Asp统计字符串在另一字符串中出现的次数]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.tianzhigang.com/</uri>
		 <email>admin@tianzhigang.com</email>
	  </author>
	  <category term="" scheme="http://www.tianzhigang.com/default.asp?cateID=5" label="技术文章" /> 
	  <updated>2012-05-17T17:57:48+08:00</updated>
	  <published>2012-05-17T17:57:48+08:00</published>
		  <summary type="html"><![CDATA[<p>&nbsp;Asp利用MID函数统计字符串在另一字符串中出现的次数：</p>
<div class="codeText">
<div class="codeHead">ASP/Visual Basic代码</div>
<ol start="1" class="dp-vb">
    <li class="alt"><span><span>function&nbsp;strcount(stra,strb)&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;k=len(stra)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;strcount=0&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;i=1&nbsp;to&nbsp;k&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;strb=mid(stra,i,1)&nbsp;then&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcount=strcount+1&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;next&nbsp;&nbsp;</span></li>
    <li class="alt"><span>end&nbsp;function&nbsp;&nbsp;</span></li>
</ol>
</div>
<p><span style="color: rgb(0, 0, 255); ">原创代码，转载请注明出处，谢谢！</span></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.tianzhigang.com/article.asp?id=577" /> 
	  <id>http://www.tianzhigang.com/default.asp?id=577</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[php 图片反色处理]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.tianzhigang.com/</uri>
		 <email>admin@tianzhigang.com</email>
	  </author>
	  <category term="" scheme="http://www.tianzhigang.com/default.asp?cateID=5" label="技术文章" /> 
	  <updated>2012-05-16T17:55:43+08:00</updated>
	  <published>2012-05-16T17:55:43+08:00</published>
		  <summary type="html"><![CDATA[<p>本来是想找Php取反相色彩的代码，找到这个也不错：</p>
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span>&lt;?php&nbsp;&nbsp;</span></span></li>
    <li><span>header(<span class="string">'Content-type:&nbsp;image/jpeg'</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$im</span><span>&nbsp;=&nbsp;imagecreatefromjpeg(</span><span class="string">'101636.jpg'</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span><span class="vars">$om</span><span>&nbsp;=&nbsp;imagecreatetruecolor(imagesx(</span><span class="vars">$im</span><span>),imagesy(</span><span class="vars">$im</span><span>));&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="vars">$bgcolor</span><span>=0;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span>&lt;imagesy(</span><span class="vars">$im</span><span>);</span><span class="vars">$i</span><span>++)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>{&nbsp;&nbsp;</span></li>
    <li><span><span class="keyword">for</span><span>(</span><span class="vars">$j</span><span>=0;</span><span class="vars">$j</span><span>&lt;imagesx(</span><span class="vars">$im</span><span>);</span><span class="vars">$j</span><span>++)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>{&nbsp;&nbsp;</span></li>
    <li><span><span class="vars">$colorPixel</span><span>&nbsp;=&nbsp;imagecolorat(</span><span class="vars">$im</span><span>,&nbsp;</span><span class="vars">$j</span><span>,&nbsp;</span><span class="vars">$i</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span><span class="vars">$colorReverse</span><span>=(~</span><span class="vars">$colorPixel</span><span>)&nbsp;&amp;&nbsp;0xFFFFFF&nbsp;;</span><span class="comment">//php用的32位的，所以需要去掉最开始８个1</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>imagesetpixel(<span class="vars">$om</span><span>,</span><span class="vars">$j</span><span>,</span><span class="vars">$i</span><span>,</span><span class="vars">$colorReverse</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span>}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>imagejpeg(<span class="vars">$om</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span>imagedestroy(<span class="vars">$om</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>imagedestroy(<span class="vars">$im</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span>?&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>出处：<a href="http://blog.sina.com.cn/s/blog_559964d1010004kd.html">http://blog.sina.com.cn/s/blog_559964d1010004kd.html</a></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.tianzhigang.com/article.asp?id=576" /> 
	  <id>http://www.tianzhigang.com/default.asp?id=576</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Php整除]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.tianzhigang.com/</uri>
		 <email>admin@tianzhigang.com</email>
	  </author>
	  <category term="" scheme="http://www.tianzhigang.com/default.asp?cateID=5" label="技术文章" /> 
	  <updated>2012-05-16T12:06:34+08:00</updated>
	  <published>2012-05-16T12:06:34+08:00</published>
		  <summary type="html"><![CDATA[<p>&nbsp;Ceil: &nbsp; 计算大于指定数的最小整数。 &nbsp; <br />
Floor: &nbsp; 计算小于指定数的最大整数。 &nbsp; <br />
round: &nbsp; 四舍五入。 &nbsp;  <br />
<br />
根据需要选用</p>
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span>&lt;?php&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span><span class="vars">$a</span><span>=20;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$b</span><span>&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;6;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li><span><span class="func">echo</span><span>&nbsp;&nbsp;&nbsp;(</span><span class="vars">$a</span><span>/</span><span class="vars">$b</span><span>).&nbsp;</span><span class="string">&quot;&nbsp;&lt;br&gt;&nbsp;&quot;</span><span>;&nbsp;&nbsp;&nbsp;</span><span class="comment">//out&nbsp;&nbsp;&nbsp;3.3333333333333&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="func">echo</span><span>&nbsp;&nbsp;&nbsp;</span><span class="func">ceil</span><span>(</span><span class="vars">$a</span><span>/</span><span class="vars">$b</span><span>).&nbsp;</span><span class="string">&quot;&nbsp;&lt;br&gt;&nbsp;&quot;</span><span>;&nbsp;&nbsp;&nbsp;</span><span class="comment">//out&nbsp;&nbsp;&nbsp;4&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="func">echo</span><span>&nbsp;&nbsp;&nbsp;</span><span class="func">floor</span><span>(</span><span class="vars">$a</span><span>/</span><span class="vars">$b</span><span>).&nbsp;</span><span class="string">&quot;&nbsp;&lt;br&gt;&nbsp;&quot;</span><span>;&nbsp;&nbsp;&nbsp;</span><span class="comment">//out&nbsp;&nbsp;&nbsp;3&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="func">echo</span><span>&nbsp;&nbsp;&nbsp;</span><span class="func">round</span><span>(</span><span class="vars">$a</span><span>/</span><span class="vars">$b</span><span>).&nbsp;</span><span class="string">&quot;&nbsp;&lt;br&gt;&nbsp;&quot;</span><span>;&nbsp;&nbsp;&nbsp;</span><span class="comment">//out&nbsp;&nbsp;&nbsp;3&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>?&gt; &nbsp;&nbsp;</span></li>
</ol>
</div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.tianzhigang.com/article.asp?id=575" /> 
	  <id>http://www.tianzhigang.com/default.asp?id=575</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[php随机整数]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.tianzhigang.com/</uri>
		 <email>admin@tianzhigang.com</email>
	  </author>
	  <category term="" scheme="http://www.tianzhigang.com/default.asp?cateID=5" label="技术文章" /> 
	  <updated>2012-05-13T00:22:05+08:00</updated>
	  <published>2012-05-13T00:22:05+08:00</published>
		  <summary type="html"><![CDATA[<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span class="vars">$random</span><span>&nbsp;=rand(1,99);&nbsp;</span><span class="comment">//1-99之间的随机数</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<p>随机数字字符串</p>
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span class="vars">$filename</span><span>=</span><span class="string">''</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=1;</span><span class="vars">$i</span><span>&lt;6;</span><span class="vars">$i</span><span>++){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$filename</span><span>=</span><span class="vars">$filename</span><span>.rand(1,9);&nbsp;&nbsp;</span></span></li>
    <li><span>} &nbsp;</span></li>
</ol>
</div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.tianzhigang.com/article.asp?id=574" /> 
	  <id>http://www.tianzhigang.com/default.asp?id=574</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[php计算日期差]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.tianzhigang.com/</uri>
		 <email>admin@tianzhigang.com</email>
	  </author>
	  <category term="" scheme="http://www.tianzhigang.com/default.asp?cateID=5" label="技术文章" /> 
	  <updated>2012-05-12T13:28:42+08:00</updated>
	  <published>2012-05-12T13:28:42+08:00</published>
		  <summary type="html"><![CDATA[<p>&nbsp;在php中计算时间差有时候是件麻烦的事!不过只要你掌握了日期时间函数的用法那这些也就变的简单了:&nbsp;</p>
<div>一个简单的例子就是计算借书的天数,这需要php根据每天的日期进行计算,下面就来谈谈实现这种日期计算的几种方法: <br />
(1) 如果有数据库就很容易了!若是MSSQL可以使用触发器!用专门计算日期差的函数datediff()便可! <br />
&nbsp;&nbsp; 若是MYSQL那就用两个日期字段的差值计算的计算结果保存在另一个数值型字段中!用时调用便可! <br />
(2)如果没有数据库,那就得完全用php的时间日期函数!下面主要说明之: <br />
例:计算1998年5月3日到1999-6-5的天数: <br />
$startdate=mktime(&quot;0&quot;,&quot;0&quot;,&quot;0&quot;,&quot;5&quot;,&quot;3&quot;,&quot;1998&quot;); //创建时间戳<br />
$enddate=mktime(&quot;0&quot;,&quot;0&quot;,&quot;0&quot;,&quot;6&quot;,&quot;5&quot;,&quot;1999&quot;); <br />
//所得到的值为从1970-1-1到参数时间的总秒数:是整数.那么&nbsp;&nbsp;<br />
//下面的代码就好编多了: <br />
$days=round(($enddate-$startdate)/3600/24) ; <br />
echo $days; <br />
//days为得到的天数; <br />
若mktime()中的参数缺省,那表示使用当前日期,这样便可计算从借书日期至今的天数.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
<div>php计算日期差天数</div>
<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span>&lt;?PHP&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">//今天与2004年10月27日相差多少天</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$Date_1</span><span>=</span><span class="func">date</span><span>(</span><span class="string">&quot;Y-m-d&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span><span class="vars">$Date_2</span><span>=</span><span class="string">&quot;2004-10-27&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$d1</span><span>=</span><span class="func">strtotime</span><span>(</span><span class="vars">$Date_1</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span><span class="vars">$d2</span><span>=</span><span class="func">strtotime</span><span>(</span><span class="vars">$Date_2</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$Days</span><span>=</span><span class="func">round</span><span>((</span><span class="vars">$d1</span><span>-</span><span class="vars">$d2</span><span>)/3600/24);&nbsp;&nbsp;</span></span></li>
    <li><span><span class="func">Echo</span><span>&nbsp;&nbsp;&nbsp;</span><span class="string">&quot;今天与2004年10月27日相差&quot;</span><span>.</span><span class="vars">$Days</span><span>.</span><span class="string">&quot;天&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="func">Echo</span><span>&nbsp;</span><span class="string">&quot;&lt;br&gt;&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li><span><span class="comment">//今天到2008年9月9日还有多少天</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$Date_1</span><span>=</span><span class="func">date</span><span>(</span><span class="string">&quot;Y-m-d&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span><span class="vars">$Date_2</span><span>=</span><span class="string">&quot;2008-09-09&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$d1</span><span>=</span><span class="func">strtotime</span><span>(</span><span class="vars">$Date_1</span><span>);&nbsp;&nbsp;</span></span></li>
    <li><span><span class="vars">$d2</span><span>=</span><span class="func">strtotime</span><span>(</span><span class="vars">$Date_2</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="vars">$Days</span><span>=</span><span class="func">round</span><span>((</span><span class="vars">$d2</span><span>-</span><span class="vars">$d1</span><span>)/3600/24);&nbsp;&nbsp;</span></span></li>
    <li><span><span class="func">Echo</span><span>&nbsp;&nbsp;&nbsp;</span><span class="string">&quot;今天到2008年9月9日还有&quot;</span><span>.</span><span class="vars">$Days</span><span>.</span><span class="string">&quot;天&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>?&gt; &nbsp;</span></li>
</ol>
</div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.tianzhigang.com/article.asp?id=573" /> 
	  <id>http://www.tianzhigang.com/default.asp?id=573</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[VB编程之webbrowser自动选择下拉框]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.tianzhigang.com/</uri>
		 <email>admin@tianzhigang.com</email>
	  </author>
	  <category term="" scheme="http://www.tianzhigang.com/default.asp?cateID=5" label="技术文章" /> 
	  <updated>2012-05-11T14:18:15+08:00</updated>
	  <published>2012-05-11T14:18:15+08:00</published>
		  <summary type="html"><![CDATA[<p>&nbsp;直接上代码：</p>
<div class="codeText">
<div class="codeHead">ASP/Visual Basic代码</div>
<ol start="1" class="dp-vb">
    <li class="alt"><span><span class="keyword">For</span><span>&nbsp;i&nbsp;=&nbsp;0&nbsp;</span><span class="keyword">To</span><span>&nbsp;WebBrowser1.Document.getElementById(</span><span class="string">&quot;下拉框ID&quot;</span><span>).Options.length&nbsp;-&nbsp;1&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">If</span><span>&nbsp;WebBrowser1.Document.getElementById(</span><span class="string">&quot;下拉框ID&quot;</span><span>).Options(i).Value&nbsp;=&nbsp;</span><span class="string">&quot;2&quot;</span><span>&nbsp;</span><span class="keyword">Then</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebBrowser1.Document.getElementById(<span class="string">&quot;下拉框ID&quot;</span><span>).Options(i).Selected&nbsp;=&nbsp;</span><span class="keyword">True</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">Exit</span><span>&nbsp;</span><span class="keyword">For</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">End</span><span>&nbsp;</span><span class="keyword">If</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span><span class="keyword">Next</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.tianzhigang.com/article.asp?id=572" /> 
	  <id>http://www.tianzhigang.com/default.asp?id=572</id>
  </entry>	
		
</feed>

