﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-peakway-随笔分类-php</title><link>http://www.cnitblog.com/peak/category/1110.html</link><description>奋斗不止，走向成功！</description><language>zh-cn</language><lastBuildDate>Fri, 30 Sep 2011 04:05:15 GMT</lastBuildDate><pubDate>Fri, 30 Sep 2011 04:05:15 GMT</pubDate><ttl>60</ttl><item><title>Google PageRank 和Alexa排名使用程序获取的方法</title><link>http://www.cnitblog.com/peak/archive/2005/11/10/4292.html</link><dc:creator>peakway</dc:creator><author>peakway</author><pubDate>Thu, 10 Nov 2005 08:28:00 GMT</pubDate><guid>http://www.cnitblog.com/peak/archive/2005/11/10/4292.html</guid><wfw:comment>http://www.cnitblog.com/peak/comments/4292.html</wfw:comment><comments>http://www.cnitblog.com/peak/archive/2005/11/10/4292.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnitblog.com/peak/comments/commentRss/4292.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/peak/services/trackbacks/4292.html</trackback:ping><description><![CDATA[<P>其实要得到这两个数据都不难，因为这两个工具都有Toolbar，随便找一个sniffer工具看一看就知道了。<BR>为什么要用程序得到这两个数据呢？Google Pagerank是Google排名的一个相对重要的参数，对于一批网站URL，如果能够批量地了解这些网站的PageRank，可以很快地了解这些网站的反向连接数。Alexa排名的前500名是能够列出来的，但是500名以后就没办法列出来了，如果能够通过程序得到任何域名的Alexa排名，也是相当有用的。<BR>以下是对Google PR和Alexa的一些分析及获取方法。</P>
<P>1 Google PageRank</P>
<P><A href="http://toolbarqueries.google.com/search?client=navclient-auto&amp;ch=CHECKSUM&amp;ie=UTF-8&amp;oe=UTF-8&amp;features=Rank:FVN&amp;q=info:http://YOURURL"><FONT color=#e59167>http://toolbarqueries.google.com/search?client=navclient-auto&amp;ch=CHECKSUM&amp;ie=UTF-8&amp;oe=UTF-8&amp;features=Rank:FVN&amp;q=info:http://YOURURL</FONT></A></P>
<P>以上地址中，CHECKSUM是通过对后面的<A href="http://yoururl/"><FONT color=#e59167>http://YOURURL</FONT></A>计算后得到的一个数字，用来验证URL是否从Toolbar过来的。</P>
<P>Checksum的算法请在网上搜索，一定找得到。流行最广的，也是最早的是一段PHP代码。</P>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<P><FONT color=#9966ff>&lt;?php <BR>/* <BR>&nbsp;&nbsp;&nbsp; This code is released unto the public domain <BR>*/ <BR>header("Content-Type: text/plain; charset=utf-8"); <BR>define('GOOGLE_MAGIC', 0xE6359A60); </FONT></P>
<P><FONT color=#9966ff>//unsigned shift right <BR>function zeroFill($a, $b) <BR>{ <BR>&nbsp;&nbsp;&nbsp; $z = hexdec(80000000); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($z &amp; $a) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $a = ($a&gt;&gt;1); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $a &amp;= (~$z); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $a |= 0x40000000; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $a = ($a&gt;&gt;($b-1)); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $a = ($a&gt;&gt;$b); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $a; <BR>} </FONT></P>
<P><BR><FONT color=#9966ff>function mix($a,$b,$c) { <BR>&nbsp; $a -= $b; $a -= $c; $a ^= (zeroFill($c,13)); <BR>&nbsp; $b -= $c; $b -= $a; $b ^= ($a&lt;&lt;8); <BR>&nbsp; $c -= $a; $c -= $b; $c ^= (zeroFill($b,13)); <BR>&nbsp; $a -= $b; $a -= $c; $a ^= (zeroFill($c,12)); <BR>&nbsp; $b -= $c; $b -= $a; $b ^= ($a&lt;&lt;16); <BR>&nbsp; $c -= $a; $c -= $b; $c ^= (zeroFill($b,5)); <BR>&nbsp; $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));&nbsp;&nbsp; <BR>&nbsp; $b -= $c; $b -= $a; $b ^= ($a&lt;&lt;10); <BR>&nbsp; $c -= $a; $c -= $b; $c ^= (zeroFill($b,15)); <BR>&nbsp;&nbsp; <BR>&nbsp; return array($a,$b,$c); <BR>} </FONT></P>
<P><FONT color=#9966ff>function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) { <BR>&nbsp;&nbsp;&nbsp; if(is_null($length)) { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $length = sizeof($url); <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; $a = $b = 0x9E3779B9; <BR>&nbsp;&nbsp;&nbsp; $c = $init; <BR>&nbsp;&nbsp;&nbsp; $k = 0; <BR>&nbsp;&nbsp;&nbsp; $len = $length; <BR>&nbsp;&nbsp;&nbsp; while($len &gt;= 12) { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $a += ($url[$k+0] +($url[$k+1]&lt;&lt;8) +($url[$k+2]&lt;&lt;16) +($url[$k+3]&lt;&lt;24)); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $b += ($url[$k+4] +($url[$k+5]&lt;&lt;8) +($url[$k+6]&lt;&lt;16) +($url[$k+7]&lt;&lt;24)); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $c += ($url[$k+8] +($url[$k+9]&lt;&lt;8) +($url[$k+10]&lt;&lt;16)+($url[$k+11]&lt;&lt;24)); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $mix = mix($a,$b,$c); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $a = $mix[0]; $b = $mix[1]; $c = $mix[2]; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $k += 12; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $len -= 12; <BR>&nbsp;&nbsp;&nbsp; } </FONT></P>
<P><FONT color=#9966ff>&nbsp;&nbsp;&nbsp; $c += $length; <BR>&nbsp;&nbsp;&nbsp; switch($len)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* all the case statements fall through */ <BR>&nbsp;&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 11: $c+=($url[$k+10]&lt;&lt;24); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 10: $c+=($url[$k+9]&lt;&lt;16); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 9 : $c+=($url[$k+8]&lt;&lt;8); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* the first byte of c is reserved for the length */ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 8 : $b+=($url[$k+7]&lt;&lt;24); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 7 : $b+=($url[$k+6]&lt;&lt;16); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 6 : $b+=($url[$k+5]&lt;&lt;8); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 5 : $b+=($url[$k+4]); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 4 : $a+=($url[$k+3]&lt;&lt;24); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 3 : $a+=($url[$k+2]&lt;&lt;16); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 2 : $a+=($url[$k+1]&lt;&lt;8); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 1 : $a+=($url[$k+0]); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* case 0: nothing left to add */ <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; $mix = mix($a,$b,$c); <BR>&nbsp;&nbsp;&nbsp; /*-------------------------------------------- report the result */ <BR>&nbsp;&nbsp;&nbsp; return $mix[2]; <BR>} </FONT></P>
<P><FONT color=#9966ff>//converts a string into an array of integers containing the numeric value of the char <BR>function strord($string) { <BR>&nbsp;&nbsp;&nbsp; for($i=0;$i&lt;strlen($string);$i++) { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $result[$i] = ord($string{$i}); <BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; return $result; <BR>} <BR>// </FONT><A href="http://www.example.com/"><FONT color=#9966ff>http://www.example.com/</FONT></A><FONT color=#9966ff> - Checksum: 6540747202 <BR>$url = 'info:'.$_GET['url']; <BR>print("</FONT><A href="http://spaces.msn.com/t{$_GET['url']}/n"><FONT color=#9966ff>url:\t{$_GET['url']}\n</FONT></A><FONT color=#9966ff>"); <BR>$ch = GoogleCH(strord($url)); <BR>printf("ch:\t6%u\n",$ch); <BR>?&gt;</FONT></P></BLOCKQUOTE>
<P><FONT color=#000000>还可以找到VB和Pascal的计算Checksum的源码。</FONT></P>
<P>GET那个URL可以直接得到那个URL的Pagerank。注意URL可以是一个域名，也可以是一个地址。这样就可以完全得到google pagerank了。</P>
<P>2 Alexa排名数据</P>
<P><A href="http://data.alexa.com/data/+wQ411en8000lA?cli=10&amp;dat=snba&amp;ver=7.0&amp;cdt=alx_vw%3D20%26wid%3D12206%26act%3D00000000000%26ss%3D1680x16t%3D0%26ttl%3D35371%26vis%3D1%26rq%3D4&amp;url=spaces.msn.com"><FONT color=#e59167>http://data.alexa.com/data/+wQ411en8000lA?cli=10&amp;dat=snba&amp;ver=7.0&amp;cdt=alx_vw%3D20%26wid%3D12206%26act%3D00000000000%26ss%3D1680x16t%3D0%26ttl%3D35371%26vis%3D1%26rq%3D4&amp;url=spaces.msn.com</FONT></A></P>
<P>GET以上地址即可。把spaces.msn.com换程序要的地址。调用后将返回一段xml如下：</P>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<P><FONT color=#0099cc>&lt;?xml version="1.0" encoding="UTF-8"?&gt;</FONT></P>
<P><FONT color=#0099cc>&lt;ALEXA VER="0.9" URL="spaces.msn.com/" HOME="0" AID="="&gt;<BR>&lt;RLS TITLE="Related Links" PREFIX="http://" more ="389"&gt;<BR>&lt;RL HREF="mobile.msn.co.jp/" TYPE="link" SRC="NTrails" TITLE="Msn" CONF="034" /&gt;<BR>&lt;RL HREF="cnn.com/" TYPE="link" SRC="Siblinks" TITLE="CNN - Cable News Network" CONF="300" ASIN="B00006B48F"/&gt;<BR>&lt;RL HREF="cbsnews.com/sections/home/main100.shtml" TYPE="link" SRC="Siblinks" TITLE="CBS News" CONF="300" ASIN="B00006DFEQ"/&gt;<BR>&lt;RL HREF="abcnews.go.com/" TYPE="link" SRC="Siblinks" TITLE="ABC News" CONF="300" ASIN="B00006CBMR"/&gt;<BR>&lt;RL HREF="altavista.com/" TYPE="link" SRC="Siblinks" TITLE="Altavista" CONF="300" ASIN="B00006CZ94"/&gt;<BR>&lt;RL HREF="yahoo.com/" TYPE="link" SRC="UserEdit" TITLE="Yahoo!" CONF="300" ASIN="B00006D2TC"/&gt;<BR>&lt;RL HREF="</FONT><A href="http://www.hotbot.com/"><FONT color=#0099cc>www.hotbot.com/</FONT></A><FONT color=#0099cc>" TYPE="link" SRC="UserEdit" TITLE="HotBot" CONF="300" ASIN="B00006BUYX"/&gt;<BR>&lt;RL HREF="netscape.com/" TYPE="link" SRC="UserEdit" TITLE="Netscape" CONF="300" ASIN="B00006C6KQ"/&gt;<BR>&lt;RL HREF="excite.com/" TYPE="link" SRC="UserEdit" TITLE="My Excite" CONF="300" ASIN="B00006E21K"/&gt;<BR>&lt;RL HREF="aol.com/" TYPE="link" SRC="UserEdit" TITLE="AOL Anywhere" CONF="300" ASIN="B00006ARD3"/&gt;<BR>&lt;RL HREF="</FONT><A href="http://www.geocities.com/"><FONT color=#0099cc>www.geocities.com/</FONT></A><FONT color=#0099cc>" TYPE="link" SRC="Usertrails" TITLE="</FONT><A href="http://www.geocities.com/"><FONT color=#0099cc>www.geocities.com/</FONT></A><FONT color=#0099cc>" CONF="000"/&gt;<BR>&lt;/RLS&gt;<BR>&lt;SD TITLE="Alexa Site Data" FLAGS="DMOZ"&gt;<BR>&lt;AMZN ASIN="B000304FNA" URL="spaces.msn.com/"/&gt;<BR>&lt;ADDR STREET="One Microsoft Way" CITY="Redmond" STATE="WA" ZIP="98052" COUNTRY="US"/&gt;<BR>&lt;CREATED DATE="10-Nov-1994" DAY="10" MONTH="11" YEAR="1994"/&gt;<BR>&lt;PHONE NUMBER="unlisted"/&gt;<BR>&lt;OWNER NAME="</FONT><A href='http://www.msn.com"/'><FONT color=#0099cc>www.msn.com"/</FONT></A><FONT color=#0099cc>&gt;<BR>&lt;EMAIL ADDR="</FONT><A href='mailto:info@msn.com"/'><FONT color=#0099cc>info@msn.com"/</FONT></A><FONT color=#0099cc>&gt;<BR>&lt;POP RATE="13"/&gt;<BR>&lt;DOS&gt;<BR>&lt;DO DOMAIN="microsoft.com" TITLE="microsoft.com"/&gt;<BR>&lt;DO DOMAIN="passport.com" TITLE="passport.com"/&gt;<BR>&lt;DO DOMAIN="msnbc.com" TITLE="msnbc.com"/&gt;<BR>&lt;DO DOMAIN="windowsmedia.com" TITLE="windowsmedia.com"/&gt;<BR>&lt;DO DOMAIN="iechannelguide.com" TITLE="iechannelguide.com"/&gt;<BR>&lt;DO DOMAIN="cooltravelassistant.com" TITLE="cooltravelassistant.com"/&gt;<BR>&lt;DO DOMAIN="mstrav.com" TITLE="mstrav.com"/&gt;<BR>&lt;DO DOMAIN="msnusers.com" TITLE="msnusers.com"/&gt;<BR>&lt;DO DOMAIN="msimg.com" TITLE="msimg.com"/&gt;<BR>&lt;DO DOMAIN="eshop.com" TITLE="eshop.com"/&gt;<BR>&lt;DO DOMAIN="windowsupdate.com" TITLE="windowsupdate.com"/&gt;<BR>&lt;DO DOMAIN="passportimages.com" TITLE="passportimages.com"/&gt;<BR>&lt;DO DOMAIN="home-publishing.com" TITLE="home-publishing.com"/&gt;<BR>&lt;DO DOMAIN="slate.com" TITLE="slate.com"/&gt;<BR>&lt;DO DOMAIN="windows.com" TITLE="windows.com"/&gt;<BR>&lt;DO DOMAIN="windows95.com" TITLE="windows95.com"/&gt;<BR>&lt;DO DOMAIN="expediamaps.com" TITLE="expediamaps.com"/&gt;<BR>&lt;DO DOMAIN="encarta.com" TITLE="encarta.com"/&gt;<BR>&lt;DO DOMAIN="homeadvisor.com" TITLE="homeadvisor.com"/&gt;<BR>&lt;DO DOMAIN="carpoint.com" TITLE="carpoint.com"/&gt;<BR>&lt;DO DOMAIN="hotmai.com" TITLE="hotmai.com"/&gt;<BR>&lt;DO DOMAIN="msn.net" TITLE="msn.net"/&gt;<BR>&lt;DO DOMAIN="moneycentral.com" TITLE="moneycentral.com"/&gt;<BR>&lt;DO DOMAIN="msretech.com" TITLE="msretech.com"/&gt;<BR>&lt;DO DOMAIN="microsoftfrontpage.com" TITLE="microsoftfrontpage.com"/&gt;<BR>&lt;DO DOMAIN="vworlds.org" TITLE="vworlds.org"/&gt;<BR>&lt;DO DOMAIN="investor.com" TITLE="investor.com"/&gt;<BR>&lt;DO DOMAIN="homail.com" TITLE="homail.com"/&gt;<BR>&lt;DO DOMAIN="crimsonskies.com" TITLE="crimsonskies.com"/&gt;<BR>&lt;/DOS&gt;<BR>&lt;TICKER SYMBOL="MSFT"/&gt;<BR>&lt;LANG LEX="en"/&gt;<BR>&lt;LINKSIN NUM="5558"/&gt;<BR>&lt;SPEED TEXT="2537" PCT="30"/&gt;<BR>&lt;REVIEWS AVG="4.0" NUM="21"/&gt;<BR>&lt;POPULARITY URL="msn.com/" TEXT="2"/&gt;<BR>&lt;CHILD SRATING="0"/&gt;<BR>&lt;ASSOCS&gt;<BR>&lt;ASSOC ID="start-buymusiclink"/&gt;&lt;/ASSOCS&gt;<BR>&lt;REACH RANK="2"/&gt;<BR>&lt;/SD&gt;</FONT></P>
<P><FONT color=#0099cc>&lt;KEYWORDS&gt;<BR>&lt;/KEYWORDS&gt;<BR>&nbsp;&lt;/ALEXA&gt;<BR></FONT></P></BLOCKQUOTE>
<P dir=ltr>这样，就可以通过程序得到任何一个地址的Google PR和Alexa排名了。</P><img src ="http://www.cnitblog.com/peak/aggbug/4292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/peak/" target="_blank">peakway</a> 2005-11-10 16:28 <a href="http://www.cnitblog.com/peak/archive/2005/11/10/4292.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>测试用PHP上传大文件</title><link>http://www.cnitblog.com/peak/archive/2005/11/07/4055.html</link><dc:creator>peakway</dc:creator><author>peakway</author><pubDate>Mon, 07 Nov 2005 02:29:00 GMT</pubDate><guid>http://www.cnitblog.com/peak/archive/2005/11/07/4055.html</guid><wfw:comment>http://www.cnitblog.com/peak/comments/4055.html</wfw:comment><comments>http://www.cnitblog.com/peak/archive/2005/11/07/4055.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/peak/comments/commentRss/4055.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/peak/services/trackbacks/4055.html</trackback:ping><description><![CDATA[这几天用PHP做一个程序，用到了大文件的上传，因为仅在局域网中使用，所以速度不是问题。我想测试一下PHP到底能传多大的文件，我修改了php.ini的几个配置，用一下程序传文件，果然可以上传几十兆甚至上百兆的文件了。<BR><BR>php.ini需要修改的量，这里仅列出原始配置，可以修改成你希望的大小
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">upload_max_filesize&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;2m&nbsp;<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top>post_max_size&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;2m&nbsp;<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top>max_execution_time&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">30</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top>max_input_time&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">600</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top>memory_limit&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;8m&nbsp;</SPAN></DIV><BR>我上传文件的代码如下：<BR><SPAN style="COLOR: #000000">------------upload.html---------------</SPAN><BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">html</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">head</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">title</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">Upload&nbsp;new&nbsp;news&nbsp;file</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">title</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">head</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">h1</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">Upload&nbsp;new&nbsp;news&nbsp;file</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">h1</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">form&nbsp;</SPAN><SPAN style="COLOR: #ff0000">enctype</SPAN><SPAN style="COLOR: #0000ff">="multipart/form-data"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;method</SPAN><SPAN style="COLOR: #0000ff">="post"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;action</SPAN><SPAN style="COLOR: #0000ff">="./upload.php"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">label</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">upload&nbsp;this&nbsp;file:<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">input&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="userfile"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="file"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;id</SPAN><SPAN style="COLOR: #0000ff">="userfile"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">label</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">label</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">input&nbsp;</SPAN><SPAN style="COLOR: #ff0000">type</SPAN><SPAN style="COLOR: #0000ff">="submit"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;name</SPAN><SPAN style="COLOR: #0000ff">="Submit"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;value</SPAN><SPAN style="COLOR: #0000ff">="Send&nbsp;File"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">label</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">form</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">body</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">body</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">html</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV><FONT face=Verdana size=2>------------upload.php------------
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">html</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">head</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">title</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">Uploading&nbsp;</SPAN><SPAN style="COLOR: #008080">File</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.cnitblog.com/images/dot.gif">&lt;/</SPAN><SPAN style="COLOR: #000000">title</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">head</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">body</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">h1</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">Uploading&nbsp;</SPAN><SPAN style="COLOR: #008080">File</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.cnitblog.com/images/dot.gif">&lt;/</SPAN><SPAN style="COLOR: #000000">h1</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;?</SPAN><SPAN style="COLOR: #000000">php<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">put&nbsp;the&nbsp;file&nbsp;where&nbsp;we'd&nbsp;like&nbsp;it</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #800080">$upfile</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">./upload/</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">.</SPAN><SPAN style="COLOR: #800080">$_FILES</SPAN><SPAN style="COLOR: #000000">[</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">userfile</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">][</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">name</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">];<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(</SPAN><SPAN style="COLOR: #008080">is_uploaded_file</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #800080">$_FILES</SPAN><SPAN style="COLOR: #000000">[</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">userfile</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">][</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">tmp_name</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">]))<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top>{<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #000000">!</SPAN><SPAN style="COLOR: #008080">move_uploaded_file</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #800080">$_FILES</SPAN><SPAN style="COLOR: #000000">[</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">userfile</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">][</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">tmp_name</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">]</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #800080">$upfile</SPAN><SPAN style="COLOR: #000000">))<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top>{<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">echo</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">Problem:&nbsp;Could&nbsp;not&nbsp;move&nbsp;file&nbsp;to&nbsp;destination&nbsp;directory</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">exit</SPAN><SPAN style="COLOR: #000000">;&nbsp;<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top>}<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top>}<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top>{<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">echo</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">Problem:&nbsp;Possible&nbsp;file&nbsp;upload&nbsp;attack.&nbsp;Filename:&nbsp;</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">echo</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #800080">$_FILES</SPAN><SPAN style="COLOR: #000000">[</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">userfile</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">][</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">name</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">];<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">exit</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top>}<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">echo</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">File&nbsp;upload&nbsp;successfully&lt;br&gt;&lt;br&gt;</SPAN><SPAN style="COLOR: #000000">'</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">?&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">body</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.cnitblog.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">html</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN></DIV></FONT><img src ="http://www.cnitblog.com/peak/aggbug/4055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/peak/" target="_blank">peakway</a> 2005-11-07 10:29 <a href="http://www.cnitblog.com/peak/archive/2005/11/07/4055.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JPG Thumbnails</title><link>http://www.cnitblog.com/peak/archive/2005/11/07/4049.html</link><dc:creator>peakway</dc:creator><author>peakway</author><pubDate>Mon, 07 Nov 2005 02:13:00 GMT</pubDate><guid>http://www.cnitblog.com/peak/archive/2005/11/07/4049.html</guid><wfw:comment>http://www.cnitblog.com/peak/comments/4049.html</wfw:comment><comments>http://www.cnitblog.com/peak/archive/2005/11/07/4049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/peak/comments/commentRss/4049.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/peak/services/trackbacks/4049.html</trackback:ping><description><![CDATA[Automatically create thumbnails of JPG images to your required size. Great for creating a thumbnail of an image automatically when a user uploads a 2.5MB 3500x2500 picture and you want to have a thumbnail on the website of a specific dimension. This version only does JPGs.<BR><BR><FONT face="Courier New"><FONT color=#0000bb>&lt;?php <BR></FONT><FONT color=#007700>function&nbsp;</FONT><FONT color=#0000bb>thumbnail</FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$i</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$nw</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$p</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$nn</FONT></FONT><FONT face="Courier New"><FONT color=#007700>)&nbsp;{&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT color=#0000bb>$img</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb><A class=a5 href="http://php.net/imagecreatefromjpeg" target=_blank>imagecreatefromjpeg</A></FONT><FONT color=#007700>(</FONT><FONT color=#dd0000>"$i"</FONT></FONT><FONT face="Courier New"><FONT color=#007700>);&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT color=#0000bb>$ow</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb><A class=a5 href="http://php.net/imagesx" target=_blank>imagesx</A></FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$img</FONT></FONT><FONT face="Courier New"><FONT color=#007700>);&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT color=#0000bb>$oh</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb><A class=a5 href="http://php.net/imagesy" target=_blank>imagesy</A></FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$img</FONT></FONT><FONT face="Courier New"><FONT color=#007700>);&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT color=#0000bb>$scale</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb>$nw</FONT><FONT color=#007700>/</FONT><FONT color=#0000bb>$ow</FONT></FONT><FONT face="Courier New"><FONT color=#007700>; <BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT color=#0000bb>$nh</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb><A class=a5 href="http://php.net/ceil" target=_blank>ceil</A></FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$oh</FONT><FONT color=#007700>*</FONT><FONT color=#0000bb>$scale</FONT></FONT><FONT face="Courier New"><FONT color=#007700>); <BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT color=#0000bb>$newimg</FONT><FONT color=#007700>=</FONT><FONT color=#0000bb><A class=a5 href="http://php.net/imagecreate" target=_blank>imagecreate</A></FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$nw</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$nh</FONT></FONT><FONT face="Courier New"><FONT color=#007700>);&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT color=#0000bb><A class=a5 href="http://php.net/imagecopyresized" target=_blank>imagecopyresized</A></FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$newimg</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$img</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>0</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>0</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>0</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>0</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$nw</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$nh</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$ow</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>$oh</FONT></FONT><FONT face="Courier New"><FONT color=#007700>); <BR>&nbsp;&nbsp;&nbsp;&nbsp;</FONT><FONT color=#0000bb><A class=a5 href="http://php.net/imagejpeg" target=_blank>imagejpeg</A></FONT><FONT color=#007700>(</FONT><FONT color=#0000bb>$newimg</FONT><FONT color=#007700>,&nbsp;</FONT><FONT color=#0000bb>$p</FONT><FONT color=#007700>.</FONT><FONT color=#0000bb>$nn</FONT></FONT><FONT face="Courier New"><FONT color=#007700>);&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</FONT><FONT color=#0000bb>true</FONT></FONT><FONT face="Courier New" color=#007700>;&nbsp; <BR>} <BR><BR></FONT><FONT face="Courier New"><FONT color=#ff8000>#thumbnail(filetouse,newwidth,newpath,newname); <BR></FONT><FONT color=#0000bb>thumbnail</FONT><FONT color=#007700>(</FONT><FONT color=#dd0000>"/img/x.jpg"</FONT><FONT color=#007700>,</FONT><FONT color=#0000bb>100</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>"/img/thm/"</FONT><FONT color=#007700>,</FONT><FONT color=#dd0000>"xt.jpg"</FONT></FONT><FONT face="Courier New"><FONT color=#007700>); <BR></FONT><FONT color=#0000bb>?&gt;</FONT> </FONT><img src ="http://www.cnitblog.com/peak/aggbug/4049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/peak/" target="_blank">peakway</a> 2005-11-07 10:13 <a href="http://www.cnitblog.com/peak/archive/2005/11/07/4049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>php 发送带附件的邮件</title><link>http://www.cnitblog.com/peak/archive/2005/11/02/3815.html</link><dc:creator>peakway</dc:creator><author>peakway</author><pubDate>Wed, 02 Nov 2005 07:35:00 GMT</pubDate><guid>http://www.cnitblog.com/peak/archive/2005/11/02/3815.html</guid><wfw:comment>http://www.cnitblog.com/peak/comments/3815.html</wfw:comment><comments>http://www.cnitblog.com/peak/archive/2005/11/02/3815.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/peak/comments/commentRss/3815.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/peak/services/trackbacks/3815.html</trackback:ping><description><![CDATA[作者：<span style="text-decoration: underline;">cn-linux<br></span><br>　　我经常听到这样一个问题：“我有一个从网站发来的合同。我如何给通过表单发送的电子邮件增加一个附件呢？” <br><br>　　首先我要说的是要做到这个没有什么简单的办法。你要很好的理解PHP或其它的服务器端的脚本语言。当然你还要一个真正支持PHP的网站的账号。如果满足了这个前提，在你读完了本章后就可以用PHP发送带附件的电子邮件了。 <br><br>1. 附件是如何工作的 <br><br>　　如果你曾经在PHP的手册中搜索过“附件”函数，那么结果可能是什么都没有（至少在我写本文的时间还没有）。后来你就要花很多时间来了解这方面的知识。 <br><br>　
　你也许会想当你给某个人发送一封带附件的电子邮件时，附件是和邮件一起放到收件人的信箱里的（比如，如果你给他/她发了一个PNG的图片文件，他/她的
信箱里会包含一个txt文件（电子邮件）和一个.png文件（附件）。但这不是它的工作原理。当你加入一个附件时，你的邮件程序把附件转换成纯文本文件，
并在你写的内容（实际的电子邮件）后面插入这个文本块。这个，当你把所有的东西发出来后，收件人的信箱里只有一个纯文本文件——一个同时包含附件和实际电
子邮件内容的文件。 <br><br>　　下面是一个带附件（一个HTML文件）电子邮件的例子。 <br><br>Return-Path: <br>Date: Mon, 22 May 2000 19:17:29 +0000 <br>From: Someone <br>To: Person <br>Message-id: &lt;83729KI93LI9214@example.com&gt; <br>Content-type: multipart/mixed; boundary="396d983d6b89a" <br>Subject: Here's the subject <br>--396d983d6b89a <br>Content-type: text/plain; charset=iso-8859-1 <br>Content-transfer-encoding: 8bit <br><br>This is the body of the email. <br><br>--396d983d6b89a <br>Content-type: text/html; name=attachment.html <br>Content-disposition: inline; filename=attachment.html <br>Content-transfer-encoding: 8bit <br><br><br><br><br>This is the attached HTML file <br><br><br><br>--396d983d6b89a-- <br><br><br>　
　前面的7行是邮件的头，其中值得注意的是Content-type头部分。这个头告诉邮件程序电子邮件是由一个以上的部分组成的。不含附件的邮件只有一
个部分：消息本身。带附件的电子通常至少由两部分组成：消息和附件。这样，带两个附件的邮件由三部分组成：消息，第一个附件和第二个附件。 <br><br>　　带附件的电子邮件的不同部分之间用分界线来分隔。分界线在Content--type头中定义。邮件的每个新部分以两个连字号（--）和分界线开始。 <br>最后一个分界线后也有两个连字号，表示这个邮件中没有其它的部分了。 <br><br>　　在每个分界线后有一些行，用来告诉邮件程序这个部分的内容的类型。 <br>比
如，看看上面例子中第一个分界线后面的两行--以Content-type:
text/plain开头的行。这些行说明后面的部分是ISO-8859-1字符集的纯文本。跟在第二个分界线后的行告诉邮件程序现在的部分是一个
HTML文件，它的名字是"attachment.html"。 <br><br>　　Content-disposition这持告诉邮件程序如果可
能就以内嵌的方式显示附件。现在新的邮件程序会在消息后显示HTML的内容。如果Content-
disposition被设为attachment，那么邮件程序就不会显示HTML文件的内容，而是显示一个连接到文件的图标（或其它的类似的东西）。
收件人要看附件的内容，必须点击这个图标。一般情况下，如果附件是一些文本（包含HTML），Content-disposition会被设为
inline，这是因为现在大部分邮件程序能够不借助其它浏览器而直接显示附件（文本）的内容。如果附件不是文本（比如图片或其它类似的内容），
Content-disposition 就设为attachment。 <br><br>2. 用PHP生成带附件的电子邮件 <br><br>　　这里一个例子，告诉你如果把一个定义好的HTML文件加为邮件的附件： <br><br># 我们首先写实际的消息内容 <br>$emailBody = "This is text that goes into the body of the email."; <br><br># 然后我们要作为附件的HTML文件 <br>$attachment = " <br><br>This is the attached HTML file <br><br><br>"; <br><br># 建立在邮件中分隔不同部分的分界线。 <br># 基本上，分界线可以是任意的字符串。 <br># 但是重要的一点是确定一个写邮件的人 <br># 这会随意写出的字符串，所以我们用 <br># uniqid函数来产生一个随机的字符串。 <br>$boundary = uniqid( ""); <br><br># 现在我们要建立邮件头。不要忘了插入 <br># Content-type头来说明这个邮件包含一个或更多的附件。 <br>$headers = "From: someone@example.com <br>Content-type: multipart/mixed; boundary="$boundary""; <br><br># 好，现在我们已经有了邮件的所有内容。 <br># 下一件事是修改邮件的主体。 <br>$emailBody = "--$boundary <br>Content-type: text/plain; charset=iso-8859-1 <br>Content-transfer-encoding: 8bit <br><br>$emailBody <br><br>--$boundary <br>Content-type: text/html; name=attachment.html <br>Content-disposition: inline; filename=attachment.html <br>Content-transfer-encoding: 8bit <br><br>$attachment <br><br>--$boundary--"; <br><br># 现在可以把邮件发出去了 <br>mail( "person@eksempel.dk", "The subject", $emailBody, $headers); <br>?&gt; <br><br><br>3. 把用户上传的文件作为附件 <br><br>　　你也许会觉得上面的例子难以理解，但下面...。在下面的例子中事情更难了，因为我们要用一个表单让用户上传他们的文件，并把这个文件作为我们要发的邮件的附件。麻烦的是我们不能预先知道文件的MIME类型。 <br>在
前面的例子中，我们已经知道该它是一个HTML文件，所以给这个附件设置Content-type头是很简单的。在下面的例子中，MIME类型可能是任意
的，因为用户可能会上传一个HTML文件，一个PNG文件，一个vCard文件，或者其它的东西。让我们来看看例子： <br><br># 现在我们来生成表单。在产生可以上传文件的表单时， <br># 不要忘了把 <br><br><br># 如果用户已经按了"Send"按钮" <br>if ($send) { <br># 定义分界线 <br>$boundary = uniqid( ""); <br><br># 生成邮件头 <br>$headers = "From: $from <br>Content-type: multipart/mixed; boundary="$boundary""; <br><br># 确定上传文件的MIME类型 <br>if ($attachment_type) $mimeType = $attachment_type; <br># 如果浏览器没有指定文件的MIME类型， <br># 我们可以把它设为"application/unknown". <br>else $mimeType = "application/unknown"; <br><br># 确定文件的名字 <br>$fileName = $attachment_name; <br><br># 打开文件 <br>$fp = fopen($attachment, "r"); <br># 把整个文件读入一个变量 <br>$read = fread($fp, filesize($attachment)); <br><br># 好，现在变量$read中保存的是包含整个文件内容的文本块。 <br># 现在我们要把这个文本块转换成邮件程序可以读懂的格式 <br># 我们用base64方法把它编码 <br>$read = base64_encode($read); <br><br># 现在我们有一个用base64方法编码的长字符串。 <br># 下一件事是要把这个长字符串切成由每行76个字符组成的小块 <br>$read = chunk_split($read); <br><br># 现在我们可以建立邮件的主体 <br>$body = "--$boundary <br>Content-type: text/plain; charset=iso-8859-1 <br>Content-transfer-encoding: 8bit <br><br>$body <br><br>--$boundary <br>Content-type: $mimeType; name=$fileName <br>Content-disposition: attachment; filename=$fileName <br>Content-transfer-encoding: base64 <br><br>$read <br><br>--$boundary--"; <br><br># 发送邮件 <br>mail($to, $subject, $body, $headers); <br>} <br>?&gt; <br><br>　　这就是全部内容。如果你不能很好地理解上面的例子，我的建议是给你自己发送几个带附件的邮件，然后仔细研究邮件的源代码。<img src ="http://www.cnitblog.com/peak/aggbug/3815.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/peak/" target="_blank">peakway</a> 2005-11-02 15:35 <a href="http://www.cnitblog.com/peak/archive/2005/11/02/3815.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修正o-blog 2.5的一个bug </title><link>http://www.cnitblog.com/peak/archive/2005/10/30/3729.html</link><dc:creator>peakway</dc:creator><author>peakway</author><pubDate>Sun, 30 Oct 2005 09:03:00 GMT</pubDate><guid>http://www.cnitblog.com/peak/archive/2005/10/30/3729.html</guid><wfw:comment>http://www.cnitblog.com/peak/comments/3729.html</wfw:comment><comments>http://www.cnitblog.com/peak/archive/2005/10/30/3729.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/peak/comments/commentRss/3729.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/peak/services/trackbacks/3729.html</trackback:ping><description><![CDATA[<p>　　本人对于新技术的接触总是慢半拍，从以前的电子邮件和QQ，别人都开始用的时候我还不怎么了解，而现在也听说RSS很火，可惜我也没用过。今天一个偶然的机会，我搜索了一下RSS并下载了新浪点点通阅读器，一下被RSS新颖、使用的功能给吸引了。</p><p>　　因为我宿舍不能上网，只好单机玩。今晚我在玩我前几天下载的<strong>O-blog 2.5</strong>时，看到这个程序就有RSS功能嘛，于是我就装了新浪点点通阅读器，将<strong>O-blog</strong>假如频道，感觉不错！可是当我每次打开一篇文章时，都是打开的首页，原来是文章的链接错误，于是我看了一下xml代码（其实我也没学过xml），果然其中有个<span class="m"><font color="#0000ff"><</font></span><span class="t"><font color="#990000">link</font></span><span class="m"><font color="#0000ff">></font></span><span class="tx"><strong>http://localhost/......</strong></span><span class="m"><font color="#0000ff"></</font></span><span class="t"><font color="#990000">link</font></span><span class="m"><font color="#0000ff">></font></span> 这个地址是错误的，下面我就打开rss文件开始研究了，其实也不难嘛，我就下手改掉了错误。因为我很少写程序，所以代码写的很不规范，下面附上我的代码，请高手们指点、规范、完善以下。</p><p>1、首先在class\rss.php中加入GetExtra函数，获取静态文件扩展名，加在GetExtra()函数后即可。<br>//add some codes<br>function GetExtra()<br>{<br> global $mysql_prefix;<br> $sql = "SELECT `extraname` FROM `".$mysql_prefix."config`";<br> $result = mysql_query($sql);<br> $re = mysql_fetch_array($result);<br> return $re[0];<br>}//<br>最后一行加入<br>//add some codes<br>$extraname  = GetExtra();</p><p>2、以程序目录下rss2.php为例修改，在$a[5] = $blog[$i]['content']一行后面加入部分代码。<br>//add some codes<br>if ($blog[$i]['filename'] == "")<br>    $filename = $a[1].".".$extraname;<br>else <br>    $filename = $blog[$i]['filename'].".".$extraname;</p><p>$date_array = getdate ($blog[$i]['date']); <br>$filepath = "/archives/".$date_array['year']."/".$date_array['mon']."/".$date_array['mday']."/".$filename;<br><br>　　现在保存文件，到新浪点点通验证，success！</p><a href="http://blog.csdn.net/ipeak/archive/2005/10/30/519323.aspx"></a><img src ="http://www.cnitblog.com/peak/aggbug/3729.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/peak/" target="_blank">peakway</a> 2005-10-30 17:03 <a href="http://www.cnitblog.com/peak/archive/2005/10/30/3729.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>imap的一些资料</title><link>http://www.cnitblog.com/peak/archive/2005/10/29/3731.html</link><dc:creator>peakway</dc:creator><author>peakway</author><pubDate>Fri, 28 Oct 2005 17:48:00 GMT</pubDate><guid>http://www.cnitblog.com/peak/archive/2005/10/29/3731.html</guid><wfw:comment>http://www.cnitblog.com/peak/comments/3731.html</wfw:comment><comments>http://www.cnitblog.com/peak/archive/2005/10/29/3731.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/peak/comments/commentRss/3731.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/peak/services/trackbacks/3731.html</trackback:ping><description><![CDATA[<p><a href="http://pear.php.net/package/Mail_IMAPv2">http://pear.php.net/package/Mail_IMAPv2</a><br><a href="http://pear.php.net/package/Mail_IMAP">http://pear.php.net/package/Mail_IMAP</a><br><a href="http://cn2.php.net/imap">http://cn2.php.net/imap</a></p><a href="http://blog.csdn.net/ipeak/archive/2005/10/28/518543.aspx"></a><img src ="http://www.cnitblog.com/peak/aggbug/3731.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/peak/" target="_blank">peakway</a> 2005-10-29 01:48 <a href="http://www.cnitblog.com/peak/archive/2005/10/29/3731.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>正则表达式在网络编程中的运用</title><link>http://www.cnitblog.com/peak/archive/2005/10/27/3733.html</link><dc:creator>peakway</dc:creator><author>peakway</author><pubDate>Thu, 27 Oct 2005 09:37:00 GMT</pubDate><guid>http://www.cnitblog.com/peak/archive/2005/10/27/3733.html</guid><wfw:comment>http://www.cnitblog.com/peak/comments/3733.html</wfw:comment><comments>http://www.cnitblog.com/peak/archive/2005/10/27/3733.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/peak/comments/commentRss/3733.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/peak/services/trackbacks/3733.html</trackback:ping><description><![CDATA[<font size="3">　　［前言：］在我们编写WEB程序时，经常会判断一个字符串的有效性，如；一个串是否是数字、是否是有效的Email地址等
等。如果不使用正则表达式，那么判断的程序会很长，并且容易出错，如果使用正则表达式，这些判断就是一件很轻松的工作了。本文全面介绍正则表达式的慨念、
格式。并以在PHP、ASP中的应用实例增加读者的感性认识。正则表达式的应用很广,需要大家在学习和实践中不断的总结。 </font><p>　　正则表达式简介 </p><p>　
　简单的说，正则表达式是一种可以用于模式匹配和替换的强有力的工具。在网络编程中应用广泛，如PHP脚本语言或是JavaScript、
VBScript这样的客户端脚本语言都提供了对正则表达式的支持。由此可见，正则表达式已经超出了某种语言或某个系统的局限，成为人们广为接受的概念和
功能。 </p><p>　　正则表达式可以让用户通过使用一系列的特殊字符构建匹配模式，然后把匹配模式与数据文件、程序输入以及WEB页面的表单输入等目标对象进行比较，根据比较对象中是否包含匹配模式，执行相应的程序。 </p><p>　
　举例来说，正则表达式的一个最为普遍的应用就是用于验证用户在线输入的邮件地址的格式是否正确，如果通过正则表达式验证用户邮件地址的格式正确，用户所
填写的表单信息将会被正常处理；反之，如果用户输入的邮件地址与正则表达的模式不匹配，将会弹出提示信息，要求用户重新输入正确的邮件地址。由此可见正则
表达式在WEB应用的逻辑判断中具有举足轻重的作用。在后面我们会举例详细介绍。 </p><p>　　正则表达式形式一般如：/love/，其中位于
"/"定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入"/"定界符之间即可。为了能够使用户更加灵活的
定制模式内容，正则表达式提供了专门的"元字符"。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符，可以用来规定其前导字符（即位于元字符前
面的字符）在目标对象中的出现模式。较为常用的元字符包括： "+，"*，?以及{}"，或者"\s,\S,\d,\w和\W"等等。为了能够方便用户更
加灵活的设定匹配模式，正则表达式允许使用者在匹配模式中利用[]界定匹配于某一个范围的字符而不局限于具体的字符。 </p><p>　　除了我们以上的元字符之外，正则表达式中还具有另外一种较为独特的专用字符，即定位符。定位符用于规定匹配模式在目标对象中的出现位置。较为常用的定位符包括： "^", "$", "\b" 以及 "\B"。 </p><p>　　如果我们希望在正则表达式中实现类似编程逻辑中的"或"运算，在多个不同的模式中任选一个进行匹配的话，可以使用管道符 "|"。例如： </p><p>　
　正则表达式中还有一个较为常用的运算符，即否定符 "[^]"。与我们前文所提到的定位符 "^" 不同，否定符 "[^]"规定目标对象中不能存在模
式中所规定的字符串。一般来说，当"^"出现在 "[]"内时就被视做否定运算符；而当"^"位于"[]"之外，或没有"[]"时，则应当被视做定位符。
 </p><p>　　最后，当用户需要在正则表达式的模式中加入元字符，并查找其匹配对象时，可以使用转义符"\"。例如：/Th\*/，该正则表达式将会与目标对象中的"Th*"而非"The"等相匹配。 </p><p>　　正则表达式的语法规则和标记</p><p>　
　现在我们正式进入则表达式的学习，我会根据实例结合讲解正则表达式的用法，看完后你就会觉得写UBB代码如此简单了，只要你一步一步的跟着我学 看完本
文章后你就成为UBB高手了。激动人心的就是你能写出自已的UBB标签来了，再也不用到别人那里去拷贝现成的代码和模板了。 还好VBScritp5.0
给我们提供了"正则表达式"对象，只要你的服务器安装了IE5.x，就可以运行了.</p><p>　　字符描述：</p><p>　　 　　^符号匹配字符串的开头。例如：</p><p>　　　　^abc　与"abc xyz"匹配，而不与"xyz abc"匹配</p><p>　　$符号匹配字符串的结尾。例如：</p><p>　　　　abc$　与"xyz abc"匹配，而不与"abc xyz"匹配。</p><p>　　　　注意：如果同时使用^符号和$符号，将进行精确匹配。例如：</p><p>　　　　　　　^abc$　只与"abc"匹配　　　</p><p>　　*符号匹配0个或多个前面的字符。例如：</p><p>　　　　ab*　可以匹配"ab"、"abb"、"abbb"等</p><p>　　+符号匹配至少一个前面的字符。例如：</p><p>　　　　ab+　可以匹配"abb"、"abbb"等，但不匹配"ab"。 </p><p>　　?符号匹配0个或1个前面的字符。例如：</p><p>　　　　ab?c?　可以且只能匹配"abc"、"abbc"、"abcc"和"abbcc"</p><p>　　.符号匹配除换行符以外的任何字符。例如：</p><p>　　　　(.)+　匹配除换行符以外的所有字符串</p><p>　　x|y匹配"x"或"y"。例如：</p><p>　　　　abc|xyz　可匹配 "abc"或 "xyz"，而"ab(c|x)yz"匹配 "abcyz"和"abxyz"</p><p>　　{n}匹配恰好n次（n为非负整数）前面的字符。例如：</p><p>　　　　a{2}　可以匹配"aa"，但不匹配"a"</p><p>　　{n,}匹配至少n次（n为非负整数）前面的字符。例如：</p><p>　　　　a{3,}　匹配"aaa"、"aaaa"等，但不匹配"a"和"aa"。</p><p>　　　　注意：a{1,}等价于a+</p><p>　　　　　　　a{0,}等价于a*</p><p>　　{m,n}匹配至少m个，至多n个前面的字符。例如：</p><p>　　　　a{1,3}　只匹配"a"、"aa"和"aaa"。</p><p>　　　　注意：a{0,1}等价于a?</p><p>　　[xyz]表示一个字符集，匹配括号中字符的其中之一。例如：</p><p>　　　　[abc]　匹配"a"、"b"和"c"</p><p>　　[^xyz]表示一个否定的字符集。匹配不在此括号中的任何字符。例如：</p><p>　　　　[^abc]　可以匹配除"a"、"b"和"c"之外的任何字符</p><p>　　[a-z]表示某个范围内的字符，匹配指定区间内的任何字符。例如：</p><p>　　　　[a-z]　匹配从"a"到"z"之间的任何一个小写字母字符</p><p>　　[^m-n]表示某个范围之外的字符，匹配不在指定范围内的字符。例如：</p><p>　　　　[m-n]　匹配除从"m"到"n"之间的任何字符</p><p>　　\符号是转义操作符。例如：</p><p>　　　　\n　换行符</p><p>　　　　\f　分页符</p><p>　　　　\r　回车</p><p>　　　　\t　制表符</p><p>　　　　\v　垂直制表符 </p><p>　　　　\\　匹配"\"</p><p>　　　　\/　匹配"/"</p><p>　　　　\s　任何白字符，包括空格、制表符、分页符等。等价于"[ \f\n\r\t\v]"</p><p>　　　　\S　任何非空白的字符。等价于"^\f\n\r\t\v]"</p><p>　　　　\w　任何单词字符，包括字母和下划线。等价于"[A-Za-z0-9_]"</p><p>　　　　\W　任何非单词字符。等价于"[^A-Za-z0-9_]"</p><p>　　　　\b匹配单词的结尾。例如：</p><p>　　　　　　ve\b　匹配单词"love"等，但不匹配"very"、"even"等</p><p>　　　　\B匹配单词的开头。例如：</p><p>　　　　　　ve\B　匹配单词"very"等，但不匹配"love"等</p><p>　　　　\d匹配一个数字字符，等价于[0-9]。例如：</p><p>　　　　　　abc\dxyz　匹配"abc2xyz"、"abc4xyz"等，<br>　　　　　　但不匹配"abcaxyz"、"abc-xyz"等</p><p>　　　　\D匹配一个非数字字符，等价于[^0-9]。例如：</p><p>　　　　　　abc\Dxyz　匹配"abcaxyz"、"abc-xyz"等，<br>　　　　　　但不匹配"abc2xyz"、"abc4xyz"等</p><p>　　　　\NUM匹配NUM个（其中NUM为一个正整数），引用回到记住的匹配。例如：</p><p>　　　　　　(.)\1　匹配两个连续相同的字符。 </p><p>　　　　\oNUM匹配n（其中n为一个小于256的八进制换码值）。例如：</p><p>　　　　　　\o011　匹配制表符</p><p>　　　　\xNUM匹配NUM（其中NUM为一个小于256的十六进制换码值）。例如：</p><p>　　　　　　\x41　匹配字符"A"</p><p> <br>　　应用实例 </p><p>　　在对正则表达式有了较为全面的了解之后，就可以在Perl，PHP，以及ASP等程式中使用正则表达式了。</p><p>　　下面以PHP语言为例，使用验证用户在线输入的邮件地址以及网址的格式是否正确。PHP 提供了eregi()或ereg()资料处理函数实现字串比对剖析的模式匹配操作ereg()函数的使用格式如下： </p><p>　　 　　 ereg (pattern, string) </p><p>　
　其中，pattern代表正则表达式的模式；而string则是执行查找替换操作的目标对象,如Email地址值。本函式以 pattern 的规则来
剖析比对字串 string，找到则传回值为 true。函式ereg()与eregi()的区别就是前者区分大小写，后者与大小写无关。使用PHP编写
的程序代码如下： </p><p>　　 　　＜?php <br>　　 if (ereg("^([a-z0-9_-])+@([a-zZ0-9_-])+(\.[a-z0-9_-])+[a-z]{2,3}$",$email)) <br>　　　{ echo "您的 E-Mail 通过初步检查！";} <br>　　 else <br>　　　{ echo "不是合法的E-Mail 地址，请重新输入！";} <br>　　 ?＞ <br> </p><p>　
　这个例子是可对使用者输入的 E-Mail 作简单的检查，检查使用者的 E-Mail 字串是否有 @ 字元，在 @ 字元前有小写英文字母、数字或
下"_"，在 @ 之后有数节字串，最后的小数点后只能有二个或三个小写英文字母。如webmaster@mail.sever.net,
 hello_2001@88new.cn就可以通过检查，而New99@253.com(出现大写字母)和new99@253.comn(最后的小数点
后只能超过3个英文字母)就不能通过检查。 </p><p>　　我们通过调用自定义正规则判别函式也可以进行检查操作,如下面的网址检验函式: </p><p>function VerifyWebSiteAddr ($strWebSiteAddr){ <br>return (eregi ("^([_0-9a-z-]+.)+([0-9a-z-]+.)+[a-z]{2,3}$", $strWebSiteAddr)); <br>} </p><p>　
　我们知道,PHP程式的运行必须有服务器支持，如果您在自己的主页上想实现以上功能, 嵌入式脚本语言Javascript或许是好的选择。
JavaScript中带有一个功能强大的RegExp()对象，可以用来进行正则表达式的匹配操作。其中的test()方法可以检验目标对象中是否包含
匹配模式，并相应的返回true或false。只须在HTML文档的＜head＞区域添加一段Javascript代码。 </p><p>＜ language="Javascript1.2"＞ <br>　　function verifyAddress(obj){ <br>　　　var email = obj.email.value; <br>　　　var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; <br>　　　flag = pattern.test(email); <br>　　　if(flag){ <br>　　　　alert("您的 E-Mail 通过初步检查！"); <br>　　　　return true;} <br>　　　else{ <br>　　　　alert("不是合法的E-Mail 地址，请重新输入！"); <br>　　　　return false;} <br>　　} <br>　＜/script＞ <br> </p><p>　　然后在网页中输入信息的表单域＜form＞标签区域内中加入一行如下代码： </p><p>　　　＜onSubmit="return verifyAddress(this);"＞ </p><p>　　当按下提交按钮后，首先运行verifyAddress()函式，进行匹配识别，如果满足条件则发送表单信息到目标页面，否则返回错误信息。 <br></p><a href="http://blog.csdn.net/ipeak/archive/2005/10/27/517534.aspx"></a><img src ="http://www.cnitblog.com/peak/aggbug/3733.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/peak/" target="_blank">peakway</a> 2005-10-27 17:37 <a href="http://www.cnitblog.com/peak/archive/2005/10/27/3733.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PHP实现文件上传例子</title><link>http://www.cnitblog.com/peak/archive/2004/01/21/3735.html</link><dc:creator>peakway</dc:creator><author>peakway</author><pubDate>Tue, 20 Jan 2004 21:17:00 GMT</pubDate><guid>http://www.cnitblog.com/peak/archive/2004/01/21/3735.html</guid><wfw:comment>http://www.cnitblog.com/peak/comments/3735.html</wfw:comment><comments>http://www.cnitblog.com/peak/archive/2004/01/21/3735.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/peak/comments/commentRss/3735.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/peak/services/trackbacks/3735.html</trackback:ping><description><![CDATA[<p><strong>实例1：</strong></p>
<p>　　<strong>上载文件表单网页：updatefile.htm</strong> </p>
<p><textarea class="codeTextarea" style="width: 486px; height: 252px;" rows="1" cols="19"><html>
<head>
<title>上载文件表单</title>
</head>
<body onbeforeunload="RunOnBeforeUnload()">
<form ENCTYPE="multipart/form-data" ACTION="updatefile.php3" METHOD="POST">
<input type="hidden" name="MAX_FILE_SIZE"  value="1000">
<div align="center"><center> 请选取文件:  
<input NAME="userfile" TYPE="file">
<input TYPE="submit" VALUE="Send File">
</center></div>
</form>
</body>
</html>
<img src ="http://www.cnitblog.com/peak/aggbug/3735.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/peak/" target="_blank">peakway</a> 2004-01-21 05:17 <a href="http://www.cnitblog.com/peak/archive/2004/01/21/3735.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>