<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_随机博客</title><subtitle type="text">Random Blog</subtitle><id>http://feed.cnblogs.com/blog/u/16888/rss</id><updated>2012-01-30T11:30:14Z</updated><author><name>随机</name><uri>http://www.cnblogs.com/Random/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Random/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/16888/rss"/><entry><id>http://www.cnblogs.com/Random/archive/2012/01/30/2332361.html</id><title type="text">碎片4</title><summary type="text">1.又一年过去了，感觉这一年收获不是很多；2.买了相机研究了下摄影，然后拍的时间也不多；3.拿了驾照，然后就没上过路了；4.工作内容有一些小改变；5.又经历了一次修炼；</summary><published>2012-01-30T11:30:00Z</published><updated>2012-01-30T11:30:00Z</updated><author><name>随机</name><uri>http://www.cnblogs.com/Random/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Random/archive/2012/01/30/2332361.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Random/archive/2012/01/30/2332361.html"/><content type="html">&lt;p&gt;1.又一年过去了，感觉这一年收获不是很多；&lt;/p&gt;&lt;p&gt;2.买了相机研究了下摄影，然后拍的时间也不多；&lt;/p&gt;&lt;p&gt;3.拿了驾照，然后就没上过路了；&lt;/p&gt;&lt;p&gt;4.工作内容有一些小改变；&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5.又经历了一次修炼； &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Random/aggbug/2332361.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Random/archive/2012/01/30/2332361.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Random/archive/2011/12/28/2305398.html</id><title type="text">PhoneGap开发环境搭建</title><summary type="text">项目中要用PhoneGap开发，了解了下基本规则，记录一下，以备后查。(只针对Android平台)</summary><published>2011-12-28T13:31:00Z</published><updated>2011-12-28T13:31:00Z</updated><author><name>随机</name><uri>http://www.cnblogs.com/Random/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Random/archive/2011/12/28/2305398.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Random/archive/2011/12/28/2305398.html"/><content type="html">&lt;div&gt;&#xD;
&lt;div&gt;项目中要用PhoneGap开发，了解了下基本规则，记录一下，以备后查。(只针对Android平台)&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;strong&gt;一、安装&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;在安装PhoneGap开发环境之前，需要先安装以下框架：&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;1.&lt;a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html" target="_blank"&gt;Java SDK&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;	&lt;/span&gt;2.&lt;a href="http://www.eclipse.org/downloads/" target="_blank"&gt;Eclipse&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;3.&lt;a href="http://developer.android.com/sdk/index.html" target="_blank"&gt;Android SDK&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;	&lt;/span&gt;4.&lt;a href="http://developer.android.com/sdk/eclipse-adt.html" target="_blank"&gt;ADT Plugin&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;	&lt;/span&gt;5.&lt;a href="http://phonegap.com/download" target="_blank"&gt;PhoneGap&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;说明：&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;1.Java SDK直接下载安装即可，没什么可说的，安装不了就是人品问题了;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;	&lt;/span&gt;2.Eclipse 也是直接下载安装，建议为classic版的;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;3.Android SDK和ADT Plugin安装完成后，重启eclipse进入Window-&amp;gt;Android SDK Manager进行选择要安装的Android开发框架进行安装&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;span  style="white-space:pre"&gt;			&lt;img src="http://images.cnblogs.com/cnblogs_com/random/phonegap/AndroidSDKManager.jpg" alt="" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;	&lt;/span&gt;4.PhoneGap包不用安装，直接解压。&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;二、第一个PhoneGap项目&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;1.在eclipse中新建Android Project，名字神马的随便取吧；&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;2.在项目的目录下，建两个文件夹：&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;span  style="white-space:pre"&gt;		&lt;/span&gt; &lt;/span&gt;/libs&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;span  style="white-space:pre"&gt;		&lt;/span&gt;&lt;/span&gt;/assets/www&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;3.进入将刚刚下载并解压的PhoneGap包里Anroid目录，我们需要的资源都在这个目录下。&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt; &amp;nbsp;将phonegap-x.x.x.js这个js文件(具体名称视当时下载的版本而定)copy到/assets/www目录下,&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt; &amp;nbsp;把phonegap.jar文件copy到/libs目录下。&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt; &amp;nbsp;再把xml目录copy到android项目的res目录下。&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;4.在/assets/www下建立index.html文件，内容看起来像这样：&amp;nbsp;&lt;span  style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000ff; "&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #ff00ff; "&gt;DOCTYPE&amp;nbsp;HTML&lt;/span&gt;&lt;span style="color: #0000ff; "&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;p&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&lt;span  style="white-space:pre"&gt;		&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;PhoneGap&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&lt;span  style="white-space:pre"&gt;		&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;charset&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="utf-8"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;src&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="phonegap-x.x.x.js"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&lt;span  style="white-space:pre"&gt;		&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;h1&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;Hello&amp;nbsp;World&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;h1&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;5.将以下权限配置的xml内容copy到AndroidManifest.xml文件中：&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span  style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;supports-screens&lt;br /&gt;&#xD;
&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:largeScreens&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&lt;br /&gt;&#xD;
android:normalScreens&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&lt;br /&gt;&#xD;
android:smallScreens&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&lt;br /&gt;&#xD;
android:resizeable&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&lt;br /&gt;&#xD;
android:anyDensity&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="true"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&lt;br /&gt;&#xD;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.CAMERA"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.VIBRATE"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.ACCESS_COARSE_LOCATION"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.ACCESS_FINE_LOCATION"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.READ_PHONE_STATE"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.INTERNET"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.RECEIVE_SMS"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.RECORD_AUDIO"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.MODIFY_AUDIO_SETTINGS"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.READ_CONTACTS"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.WRITE_CONTACTS"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;android:name&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="android.permission.WRITE_EXTERNAL_STORAGE"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span  style="font-family: verdana, 'courier new'; line-height: 21px; font-size: 14px; "&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #800000; "&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #ff0000; "&gt;android:name&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;="android.permission.ACCESS_NETWORK_STATE"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #800000; "&gt;uses-permission&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #ff0000; "&gt;android:name&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;="android.permission.GET_ACCOUNTS"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;font  color="#0000FF" face="'Courier New'" size="3"&gt;&lt;span  style="font-size: 13px; line-height: 19px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;6.将以下内容添加到AndroidManifest.xml文件的activity标签中:&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span  style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;android:configChanges="orientation|keyboardHidden&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;7.AndroidManifest.xml最后看起来会像这样：&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space: pre; "&gt; &lt;span  style="white-space:pre"&gt;		&lt;/span&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/random/phonegap/manifest.jpg" width="790" height="810" alt="" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;8.在刚刚新建的Android Project中找到libs目录并在phonegap-x.x.x.jar上点击右键，选择&amp;nbsp;Build Path-&amp;gt;Add to Build Path&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;span  style="white-space:pre"&gt;		&lt;/span&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/random/phonegap/2011-12-27_222917.jpg" width="692" height="537" alt="" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;9.最后再修改下src下的Java主文件：&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;span  style="white-space:pre"&gt;		&lt;/span&gt;&lt;/span&gt;1)添加import com.phonegap.*;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;span  style="white-space:pre"&gt;		&lt;/span&gt;2&lt;/span&gt;)将类改成继承为DroidGap;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;span  style="white-space:pre"&gt;		&lt;/span&gt;3&lt;/span&gt;)删掉import android.app.Activity;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;&lt;span  style="white-space:pre"&gt;		&lt;/span&gt;4&lt;/span&gt;)把setContentView()这行替换为super.loadUrl("file:///android_asset/www/index.html");&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;span  style="white-space:pre"&gt;		&lt;/span&gt;5&lt;/span&gt;)最后看起来就像这样：&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;span  style="white-space:pre"&gt;			&lt;/span&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/random/phonegap/2011-12-27_223635.jpg" width="452" height="199" alt="" /&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;然后就可以试着运行一下，成功的话会出现Hello World的界面。&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;三、PhoneGap Plugin&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;PhoneGap的插件机制其实就是一个android类导出为jar文件，然后再被PhoneGap的项目引用，再通过js来调API：&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;1.创建一个Android Project;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;2.打开Java主文件，将继承的类改为Plugin;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;3.引入以下类：&lt;/div&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000FF;"&gt;&lt;span  style="white-space:pre"&gt;&lt;span  style="color: #000000; font-family: verdana, 'courier new'; line-height: 21px; white-space: normal; font-size: 14px; "&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;import&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&amp;nbsp;com.phonegap.api.Plugin;&lt;/span&gt;&lt;/span&gt;	&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="color: #0000FF;"&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;import&lt;/span&gt;&amp;nbsp;com.phonegap.api.PluginResult;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;import&lt;/span&gt;&amp;nbsp;com.phonegap.api.PluginResult.Status;&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;4.重写父类的execute方法：&lt;/div&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;div style="display: inline-block; "&gt;&lt;div&gt;&lt;span  style="font-family: verdana, 'courier new'; line-height: 21px; font-size: 14px; white-space: pre; "&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: #0000ff; "&gt;public&lt;/span&gt;&amp;nbsp;PluginResult&amp;nbsp;execute(String&amp;nbsp;action,&amp;nbsp;JSONArray&amp;nbsp;data,&amp;nbsp;String&amp;nbsp;callbackId)&amp;nbsp;{&lt;/div&gt;&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;PluginResult&amp;nbsp;pr=&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span  style="white-space:pre"&gt; 	&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(action.equals("method1")){&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span  style="white-space:pre"&gt; 	&lt;/span&gt;pr=&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;PluginResult(Status.IO_EXCEPTION,"method1");&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;span style="color: #0000FF;"&gt;else&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(action.equals("method2")){&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span  style="white-space:pre"&gt; 	&lt;/span&gt;pr=&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;PluginResult(Status.OK,"method2");&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&lt;span  style="white-space:pre"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;pr;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;其中，第一个参数action可以作为分类调用时的类型，我们就可以用该参数来实现多方法功能。&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;返回的PluginResult实例可以通过状态Status类型的控制来描述当前结果的执行状态。&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;span  style="white-space:pre"&gt;	&lt;/span&gt;&lt;/span&gt;最后，代码看起来可能像这样：&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="white-space:pre"&gt;		&lt;/span&gt;&lt;span  style="white-space:pre"&gt; &lt;img src="http://images.cnblogs.com/cnblogs_com/random/phonegap/2011-12-28_203647.jpg" width="665" height="388" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;5.将该类导出为jar(在类文件上右键-&amp;gt;Export-&amp;gt;JAR File)&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;6.回到之前创建的PhoneGap项目中，按上面添加jar包的方法再将该jar添加到工程中。&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;7.在/res/xml/plugins.xml文件中添加以下内容：&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;span  style="white-space:pre"&gt;		&lt;/span&gt;&lt;/span&gt;&lt;span  style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span  style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #800000;"&gt;plugin&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span  style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #FF0000;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span  style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000FF;"&gt;="PluginTest"&lt;/span&gt;&lt;/span&gt;&lt;span  style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;value&lt;/span&gt;&lt;/span&gt;&lt;span  style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000FF;"&gt;="aralork.moblie.plugin.PluginTest"&lt;/span&gt;&lt;/span&gt;&lt;span  style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;span  style="white-space:pre"&gt;		&lt;/span&gt;&lt;/span&gt;name是你在调用时要使用的类名，value是类在jar包中的全路径&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	8.&lt;/span&gt;最后再打开assets/www/index.html文件，写入类似于这样的内容：&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt; &lt;/span&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span  style="font-family: verdana, 'courier new'; line-height: 21px; font-size: 14px; "&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;&lt;span  style="white-space:pre"&gt;&lt;font  color="#000000"&gt;	 &lt;/font&gt;&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #800000; "&gt;script&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #ff0000; "&gt;type&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;="text/javascript"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #ff0000; "&gt;&amp;nbsp;charset&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;="utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #ff0000; "&gt;&amp;nbsp;src&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;="phonegap-x.x.x.js"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #800000; "&gt;script&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; line-height: 19px; font-size: 13px; "&gt;&lt;span style="color: #0000ff; "&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PhoneGap.exec(successCallback,&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;成功后的回调方法&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;&lt;br /&gt;&#xD;
&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;failureCallback,&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;失败后的回调方法&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;&lt;br /&gt;&#xD;
&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;PluginTest&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;,&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;刚才配置的类名&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;&lt;br /&gt;&#xD;
&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;method1&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;方法名称，就是之前提到的action参数&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;&lt;br /&gt;&#xD;
&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;/sdcard&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;]);&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;sdcard路径&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;&lt;br /&gt;&#xD;
&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;successCallback(data){&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;data:&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;data);&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;failureCallback(data){&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;error:&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;data);&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;人品没问题的话，这样就能run起来了。。。。。。。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;相关链接：&lt;/p&gt;&lt;p&gt;&lt;span  style="white-space:pre"&gt;		&lt;/span&gt;PhoneGap 官方网站：&lt;a href="http://www.phonegap.com/" target="_blank"&gt;http://www.phonegap.com&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&amp;nbsp;&lt;span  style="white-space: pre; "&gt;		&lt;/span&gt;PhoneGap 插件示例：&lt;a href="http://wiki.phonegap.com/w/page/36753494/How%20to%20Create%20a%20PhoneGap%20Plugin%20for%20Android" target="_blank"&gt;http://wiki.phonegap.com/w/page/36753494/How%20to%20Create%20a%20PhoneGap%20Plugin%20for%20Android&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Random/aggbug/2305398.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Random/archive/2011/12/28/2305398.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Random/archive/2011/11/30/2269629.html</id><title type="text">PHP文件POST类</title><summary type="text">最近学着写点PHP，写了个文件POST的类，可以很蛋疼地在服务器端POST文件到另一台服务器上</summary><published>2011-11-30T13:07:00Z</published><updated>2011-11-30T13:07:00Z</updated><author><name>随机</name><uri>http://www.cnblogs.com/Random/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Random/archive/2011/11/30/2269629.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Random/archive/2011/11/30/2269629.html"/><content type="html">&lt;p&gt;最近学着写点PHP，写了个文件POST的类，可以很蛋疼地在服务器端POST文件到另一台服务器上&amp;#8230;&amp;#8230;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&amp;nbsp;SingleFileSender{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$headers&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;array&lt;/span&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$boundary&lt;/span&gt;="";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$postData&lt;/span&gt;="";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@param&amp;nbsp;{Array}&amp;nbsp;$url参数集&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{String}&amp;nbsp;path&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{String}&amp;nbsp;host&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$urlParams&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;array&lt;/span&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&amp;nbsp;__construct(&lt;span style="color: #800080;"&gt;$url&lt;/span&gt;){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;updateURLParams(&lt;span style="color: #800080;"&gt;$url&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;initHeaders();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;设置发送的header&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@param&amp;nbsp;{String}&amp;nbsp;$key&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@param&amp;nbsp;{String}&amp;nbsp;$value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&amp;nbsp;setHeader(&lt;span style="color: #800080;"&gt;$key&lt;/span&gt;="",&lt;span style="color: #800080;"&gt;$value&lt;/span&gt;=""){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;headers[&lt;span style="color: #800080;"&gt;$key&lt;/span&gt;]=&lt;span style="color: #800080;"&gt;$value&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;POST发送数据&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@param&amp;nbsp;{Array}&amp;nbsp;$datas&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"postName"=&amp;gt;"pic",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"fileName"=&amp;gt;"/data/a.text",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"file"=&amp;gt;"file&amp;nbsp;content",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"type"=&amp;gt;"text/plain"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"name"=&amp;gt;"text1",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"value"=&amp;gt;"text1's&amp;nbsp;content"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&amp;nbsp;post(&lt;span style="color: #800080;"&gt;$datas&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;array&lt;/span&gt;()){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;="";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;updateBoundary();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$postData&lt;/span&gt;=&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;getPostData(&lt;span style="color: #800080;"&gt;$datas&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;headers["Content-Type"]="multipart/form-data;&amp;nbsp;boundary=".&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;boundary;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;headers["Content-Length"]=&lt;span style="color: #008080;"&gt;strlen&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$postData&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$sendContent&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;getHeaderStr(&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;headers)."\r\n".&lt;span style="color: #800080;"&gt;$postData&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;echo&amp;nbsp;$sendContent;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$fp&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&lt;span style="color: #008080;"&gt;fsockopen&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;urlParams["host"],&amp;nbsp;80,&amp;nbsp;&lt;span style="color: #800080;"&gt;$errno&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;$errstr&lt;/span&gt;,&amp;nbsp;30);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(!&lt;span style="color: #800080;"&gt;$fp&lt;/span&gt;)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;="&lt;span style="color: #800080;"&gt;$errstr&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #800080;"&gt;$errno&lt;/span&gt;)&amp;lt;br/&amp;gt;\n";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;span style="color: #0000FF;"&gt;else&lt;/span&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008080;"&gt;fwrite&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$fp&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080;"&gt;$sendContent&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;while&lt;/span&gt;&amp;nbsp;(!&lt;span style="color: #008080;"&gt;feof&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$fp&lt;/span&gt;))&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;.=&lt;span style="color: #008080;"&gt;fgets&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$fp&lt;/span&gt;,&amp;nbsp;128);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008080;"&gt;fclose&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$fp&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;初始化header&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&amp;nbsp;initHeaders(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;headers["Accept"]="*/*";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;headers["Connection"]="Keep-Alive";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;headers["Host"]=&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;urlParams["host"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;更新boundary&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&amp;nbsp;updateBoundary(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;boundary="BOUNDARY".&lt;span style="color: #008080;"&gt;microtime&lt;/span&gt;(&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;)*10000;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;获取要post的数据&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@param&amp;nbsp;{Array}&amp;nbsp;$datas&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@return&amp;nbsp;{String}&amp;nbsp;$ret&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&amp;nbsp;getPostData(&lt;span style="color: #800080;"&gt;$datas&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;array&lt;/span&gt;()){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;="";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$fileData&lt;/span&gt;=&lt;span style="color: #008080;"&gt;array_shift&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$datas&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;="--".&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;boundary."\r\n".&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'Content-Disposition:&amp;nbsp;form-data;&amp;nbsp;name="'.&lt;span style="color: #800080;"&gt;$fileData&lt;/span&gt;["postName"].'";&amp;nbsp;filename="'.&lt;span style="color: #800080;"&gt;$fileData&lt;/span&gt;["fileName"]."\"\r\n".&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"Content-Type:&amp;nbsp;".&lt;span style="color: #800080;"&gt;$fileData&lt;/span&gt;["type"]."\r\n\r\n".&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$fileData&lt;/span&gt;["file"]."\r\n";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$datas&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$k&lt;/span&gt;&amp;nbsp;=&amp;gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$v&lt;/span&gt;){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;.="--".&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;boundary."\r\n".&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'Content-Disposition:&amp;nbsp;form-data;&amp;nbsp;name="'.&lt;span style="color: #800080;"&gt;$v&lt;/span&gt;["name"]."\"\r\n\r\n".&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$v&lt;/span&gt;["value"]."\r\n";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;.="--".&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;boundary."--\r\n";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;更新URL参数&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@param&amp;nbsp;{String}&amp;nbsp;$url&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&amp;nbsp;updateURLParams(&lt;span style="color: #800080;"&gt;$url&lt;/span&gt;){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #008080;"&gt;preg_match&lt;/span&gt;('/^http\:\/\/([^\/]+)\/?(.*)/',&lt;span style="color: #800080;"&gt;$url&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$rets&lt;/span&gt;)){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$rets&lt;/span&gt;[1]&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;urlParams["host"]=&lt;span style="color: #800080;"&gt;$rets&lt;/span&gt;[1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$rets&lt;/span&gt;[2]&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;urlParams["path"]=&lt;span style="color: #800080;"&gt;$rets&lt;/span&gt;[2];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;*&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;将header数组转化为String&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@param&amp;nbsp;{Array}&amp;nbsp;$headerArr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@return&amp;nbsp;{String}&amp;nbsp;$ret&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&amp;nbsp;getHeaderStr(&lt;span style="color: #800080;"&gt;$headerArr&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;array&lt;/span&gt;()){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;="POST&amp;nbsp;/".&lt;span style="color: #800080;"&gt;$this&lt;/span&gt;-&amp;gt;urlParams["path"]."&amp;nbsp;HTTP/1.1\r\n";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$headerArr&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$k&lt;/span&gt;=&amp;gt;&lt;span style="color: #800080;"&gt;$v&lt;/span&gt;){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;.="&lt;span style="color: #800080;"&gt;$k&lt;/span&gt;:&amp;nbsp;&lt;span style="color: #800080;"&gt;$v&lt;/span&gt;\r\n";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;?&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用示例：&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;include&lt;/span&gt;&amp;nbsp;"SingleFileSender.php";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$fileName&lt;/span&gt;="1.jpg";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$handle&lt;/span&gt;&amp;nbsp;=&amp;nbsp;@&lt;span style="color: #008080;"&gt;fopen&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$fileName&lt;/span&gt;,&amp;nbsp;"r");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$file&lt;/span&gt;=&lt;span style="color: #008080;"&gt;fread&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$handle&lt;/span&gt;,&lt;span style="color: #008080;"&gt;filesize&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$fileName&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008080;"&gt;fclose&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$handle&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $sfs=new SingleFileSender("http://localhost/upload.php");&lt;/div&gt;&lt;p&gt;&lt;span style="color: #800080;"&gt;$sfs&lt;/span&gt;-&amp;gt;setHeader("Cookie","abc=123");&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;echo&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$sfs&lt;/span&gt;-&amp;gt;post(&lt;span style="color: #0000FF;"&gt;array&lt;/span&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;array&lt;/span&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"postName"=&amp;gt;"pic",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"fileName"=&amp;gt;&lt;span style="color: #800080;"&gt;$fileName&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"file"=&amp;gt;&lt;span style="color: #800080;"&gt;$file&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "type"=&amp;gt;"image/pjpeg"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;array&lt;/span&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"name"=&amp;gt;"value1",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"value"=&amp;gt;"123456"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000FF;"&gt;array&lt;/span&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "name"=&amp;gt;"value2",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "value"=&amp;gt;&lt;span style="color: #008080;"&gt;&lt;/span&gt;"abcdef")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;));&lt;br /&gt;?&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;说明，通过url实例化对象后，支持对其header的设置。&lt;/p&gt;&lt;p&gt;post参数为array类型，&lt;/p&gt;&lt;p&gt;第一个参数为文件数据，包括postName,fileName,file,type只个参数&lt;/p&gt;&lt;p&gt;postName 可以让接收方知道传递的文件参数名称；&lt;/p&gt;&lt;p&gt;fileName 为文件名；&lt;/p&gt;&lt;p&gt;file 为文件的数据；&lt;/p&gt;&lt;p&gt;type 为文件的MIMI类型名称。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;后面的参数可无限增加，为普通的post参数，以name和value的形式传入 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Random/aggbug/2269629.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Random/archive/2011/11/30/2269629.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Random/archive/2011/10/28/2228209.html</id><title type="text">碎片3</title><summary type="text">1.今年又遇到些事，很纠结，又修练了一次；2.又颓废了段时间，该收收心认真做点事情了；3.最近看书的时间少了，得好好静下心来多看点书；4.性格还是那么地急、快，对于做事有利也有弊，得学会自我好好调节；5.不知道激情这个东西能不能永远保留，希望它只会沉寂和起伏，不会消失；6.上火了，口腔溃疡、长痘痘、牙疼、淋巴疼，真悲催。。。。</summary><published>2011-10-28T14:44:00Z</published><updated>2011-10-28T14:44:00Z</updated><author><name>随机</name><uri>http://www.cnblogs.com/Random/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Random/archive/2011/10/28/2228209.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Random/archive/2011/10/28/2228209.html"/><content type="html">&lt;div&gt;1.今年又遇到些事，很纠结，又修练了一次；&lt;br /&gt;2.又颓废了段时间，该收收心认真做点事情了；&lt;br /&gt;3.最近看书的时间少了，得好好静下心来多看点书；&lt;br /&gt;4.性格还是那么地急、快，对于做事有利也有弊，得学会自我好好调节；&lt;br /&gt;5.不知道激情这个东西能不能永远保留，希望它只会沉寂和起伏，不会消失；&lt;br /&gt;6.上火了，口腔溃疡、长痘痘、牙疼、淋巴疼，真悲催。。。。&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Random/aggbug/2228209.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Random/archive/2011/10/28/2228209.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Random/archive/2011/09/28/2194812.html</id><title type="text">websocket draft-15 服务端握手Demo的perl实现</title><summary type="text">websocket这个坑爹的项目一直都在草案中，而且有时的更新变化还挺大的。目前最新的版本要先握手，信任后再发送相应数据，数据还掩码了。这次先实现了握手功能，其原理如下：</summary><published>2011-09-28T13:32:00Z</published><updated>2011-09-28T13:32:00Z</updated><author><name>随机</name><uri>http://www.cnblogs.com/Random/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Random/archive/2011/09/28/2194812.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Random/archive/2011/09/28/2194812.html"/><content type="html">&lt;p&gt;websocket这个坑爹的项目一直都在草案中，而且有时的更新变化还挺大的。目前最新的版本要先握手，信任后再发送相应数据，数据还掩码了。这次先实现了握手功能，其原理如下：&lt;/p&gt;&#xD;
&lt;p&gt;1.客端向服务器端发送类似这样的HTTP头：&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GET / HTTP/1.1&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Upgrade: websocket&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Connection: Upgrade&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Host: localhost:8000&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Sec-WebSocket-Origin: null&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Sec-WebSocket-Key: FcJ21uh+iiDs7haoaG1cKQ==&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Sec-WebSocket-Version: 8&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;其中&lt;/p&gt;&#xD;
&lt;p&gt;Upgrade:wesocket 描述了该信息是websocket协议，&lt;/p&gt;&#xD;
&lt;p&gt;Host:localhost:8000 这个就是请求的主机地址和端口号，&lt;/p&gt;&#xD;
&lt;p&gt;Sec-WebSocket-Version：8 是版本号，这里是8，用的chrome14作的测试&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;Sec-WebSocket-Key: FcJ21uh+iiDs7haoaG1cKQ== 这条是很重要的，FcJ21uh+iiDs7haoaG1cKQ==是客户端提供的握手所用的key，需要服务器端根据该key作相应计算后返回一个对应的key来完成握手，具体的计算方法马上就会说到。&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;2. 服务器端&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 服务器端接收到请求的数据后，先根据头来判断是否为websocket协议，是的话就会先作握手处理，然后再进行数据的相互发送，这里先只讨论握手，数据发送的内容下次再说了。。。。&lt;/div&gt;&#xD;
&lt;p&gt;握手步骤：&lt;/p&gt;&#xD;
&lt;p&gt;（1）服务器端获取到客户端发送过来的 Sec-WebSocket-Key 值（比如这里的 FcJ21uh+iiDs7haoaG1cKQ== ）；&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;（2）将获取到的key值与一个magic string &amp;#8220;258EAFA5-E914-47DA-95CA-C5AB0DC85B11&amp;#8221; 连接成一个新的key串 "FcJ21uh+iiDs7haoaG1cKQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11"，这个magic string为标准里给出的值，可以看作为一个唯一ID序列；&lt;/p&gt;&#xD;
&lt;p&gt;（3）将新生成的串进行SHA1编码，生成一个由多组两位16进制数构成的加密串，比如这里的 "FcJ21uh+iiDs7haoaG1cKQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11" 将生成 "11a8a543955aaf7f9a266c55b2a9cda3151cdec5"；&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;（4）把加密串按2位16进制数字分隔，进行base64编码生成最终的key：base64编码(11 a8 a5 43 95 5a af 7f 9a 26 6c 55 b2 a9 cd a3 15 1c de c5)；&lt;/p&gt;&#xD;
&lt;p&gt;（5）将最终生成的key以Sec-WebSocket-Accept:key值 整合到返回头中返回给客户端（该例子的key计算结果为 EailQ5Var3+aJmxVsqnNoxUc3sU=）：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 　　　　　　　　HTTP/1.1 101 Web Socket Protocol Handshake&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 　　　　　　　　Upgrade: websocket&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 　　　　　　　　Connection: Upgrade&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp; 　　 　　　　　　Sec-WebSocket-Accept: EailQ5Var3+aJmxVsqnNoxUc3sU=&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 　　　　　　　　WebSocket-Origin: localhost&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp; 　　 　　　　　　WebSocket-Location: ws://localhost:8000&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;服务端应答后就完成了这一次的握手，完整代码如下：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;!perl&amp;nbsp;-w&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&#xD;
&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;use&lt;/span&gt;&amp;nbsp;strict;&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;use&lt;/span&gt;&amp;nbsp;IO::Handle;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;use&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;Socket&lt;/span&gt;;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;use&lt;/span&gt;&amp;nbsp;Digest::SHA1&amp;nbsp;qw(sha1&amp;nbsp;sha1_hex&amp;nbsp;sha1_base64);&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;use&lt;/span&gt;&amp;nbsp;MIME::Base64;&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;my&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$buff&lt;/span&gt;;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;my&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$port&lt;/span&gt;=&lt;span style="color: #800000;"&gt;8000&lt;/span&gt;;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;my&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$host&lt;/span&gt;=&lt;span style="color: #000000; font-weight: bold;"&gt;'&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;localhost&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;'&lt;/span&gt;;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;my&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$packhost&lt;/span&gt;=inet_aton(&lt;span style="color: #800080;"&gt;$host&lt;/span&gt;);&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;my&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$address&lt;/span&gt;=sockaddr_in(&lt;span style="color: #800080;"&gt;$port&lt;/span&gt;,&lt;span style="color: #800080;"&gt;$packhost&lt;/span&gt;);&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;my&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$msg&lt;/span&gt;=&lt;span style="color: #000000; font-weight: bold;"&gt;""&lt;/span&gt;;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;my&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$magicString&lt;/span&gt;=&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;258EAFA5-E914-47DA-95CA-C5AB0DC85B11&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;my&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$serverKey&lt;/span&gt;=&lt;span style="color: #000000; font-weight: bold;"&gt;""&lt;/span&gt;;&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;sub&lt;/span&gt;&amp;nbsp;getClientKey{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;my&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;=&lt;span style="color: #000000; font-weight: bold;"&gt;""&lt;/span&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$_&lt;/span&gt;[&lt;span style="color: #800000;"&gt;0&lt;/span&gt;]=~m&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;Sec-WebSocket-Key:&amp;nbsp;([^\s]*)&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;s){&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;=$&lt;span style="color: #800000;"&gt;1&lt;/span&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;span style="color: #0000FF;"&gt;else&lt;/span&gt;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;#&lt;/span&gt;&lt;span style="color: #008000;"&gt;print&amp;nbsp;"no&amp;nbsp;matched";&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&#xD;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;=~s/\s//g;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;;&lt;br /&gt;&#xD;
}&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;sub&lt;/span&gt;&amp;nbsp;formatSHA1Hex{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;my&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;=&lt;span style="color: #000000; font-weight: bold;"&gt;""&lt;/span&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;my&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$len&lt;/span&gt;=&lt;span style="color: #0000FF;"&gt;length&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$_&lt;/span&gt;[&lt;span style="color: #800000;"&gt;0&lt;/span&gt;]);&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;my&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$i&lt;/span&gt;;&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;for&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$i&lt;/span&gt;=&lt;span style="color: #800000;"&gt;0&lt;/span&gt;;&lt;span style="color: #800080;"&gt;$i&lt;/span&gt;&amp;lt;&lt;span style="color: #800080;"&gt;$len&lt;/span&gt;;&lt;span style="color: #800080;"&gt;$i&lt;/span&gt;+=&lt;span style="color: #800000;"&gt;2&lt;/span&gt;){&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;.=&lt;span style="color: #0000FF;"&gt;chr&lt;/span&gt;(&lt;span style="color: #0000FF;"&gt;oct&lt;/span&gt;(&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;0x&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;.&lt;span style="color: #0000FF;"&gt;substr&lt;/span&gt;(&lt;span style="color: #800080;"&gt;$_&lt;/span&gt;[&lt;span style="color: #800000;"&gt;0&lt;/span&gt;],&lt;span style="color: #800080;"&gt;$i&lt;/span&gt;,&lt;span style="color: #800000;"&gt;2&lt;/span&gt;)));&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;$ret&lt;/span&gt;;&lt;br /&gt;&#xD;
}&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;socket&lt;/span&gt;(SERVER,AF_INET,SOCK_STREAM,&lt;span style="color: #0000FF;"&gt;getprotobyname&lt;/span&gt;(&lt;span style="color: #000000; font-weight: bold;"&gt;'&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;tcp&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;'&lt;/span&gt;));&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;bind&lt;/span&gt;(SERVER,&lt;span style="color: #800080;"&gt;$address&lt;/span&gt;);&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;listen&lt;/span&gt;(SERVER,&lt;span style="color: #800000;"&gt;10&lt;/span&gt;);&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;while&lt;/span&gt;(&lt;span style="color: #800000;"&gt;1&lt;/span&gt;){&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;accept&lt;/span&gt;(CLIENT,SERVER);&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;sysread&lt;/span&gt;(CLIENT,&lt;span style="color: #800080;"&gt;$buff&lt;/span&gt;,&lt;span style="color: #800000;"&gt;1000&lt;/span&gt;);&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$serverKey&lt;/span&gt;=encode_base64(formatSHA1Hex(sha1_hex(getClientKey(&lt;span style="color: #800080;"&gt;$buff&lt;/span&gt;).&lt;span style="color: #800080;"&gt;$magicString&lt;/span&gt;)));&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;print&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;$buff\n&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;;&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080;"&gt;$msg&lt;/span&gt;=&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;HTTP/1.1&amp;nbsp;101&amp;nbsp;Web&amp;nbsp;Socket&amp;nbsp;Protocol&amp;nbsp;Handshake\r\n&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;.&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;Upgrade:&amp;nbsp;websocket\r\n&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;.&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;Connection:&amp;nbsp;Upgrade\r\n&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;.&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;Sec-WebSocket-Accept:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;.&lt;span style="color: #800080;"&gt;$serverKey&lt;/span&gt;.&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;\r\n&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;.&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;WebSocket-Origin:&amp;nbsp;$host\r\n&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;.&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;WebSocket-Location:&amp;nbsp;ws://$host:$port\r\n\r\n&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;"&lt;/span&gt;;&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CLIENT-&amp;gt;autoflush(&lt;span style="color: #800000;"&gt;1&lt;/span&gt;);&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;syswrite&lt;/span&gt;(CLIENT,&lt;span style="color: #800080;"&gt;$msg&lt;/span&gt;);&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;close&lt;/span&gt;&amp;nbsp;CLIENT;&lt;br /&gt;&#xD;
}&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;close&lt;/span&gt;&amp;nbsp;SERVER;&lt;br /&gt;&#xD;
&lt;span style="color: #0000FF;"&gt;exit&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000;"&gt;1&lt;/span&gt;;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;为了让代码尽量简单，省去了websockt协议验证之类的细节部分，只列出了核心功能。而且此次只实现了握手部分，而且比较简单，数据相互通信的部分看哪天又闲得蛋疼的时候再写了。。。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Random/aggbug/2194812.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Random/archive/2011/09/28/2194812.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Random/archive/2011/08/28/2155885.html</id><title type="text">w3ctech 2011 北京站(组图)</title><summary type="text"/><published>2011-08-27T16:09:00Z</published><updated>2011-08-27T16:09:00Z</updated><author><name>随机</name><uri>http://www.cnblogs.com/Random/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Random/archive/2011/08/28/2155885.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Random/archive/2011/08/28/2155885.html"/><content type="html">&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;门前的牌子&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/01.jpg" /&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;大厅&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/02.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;一推低价技术书籍&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/04.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;会场&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/03.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/05.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;嘉宾席&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/26.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;人渐渐到齐&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/17.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/18.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;准备工作&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/06.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;w3c中国区负责人 安琪 第一个演讲&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/07.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/08.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;焦峰同学分享了浏览器兼容性的相关问题&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/09.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/10.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/11.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;石川同学分享的是JQuery的相关内容&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/15.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;摄影哥&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/12.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;微博大屏幕，有亮点哦。。。&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/13.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;MBP啊有木有～～～&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/16.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;貘大现场提问&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/14.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;外籍男主持，据说是央视国际频道天气预报的主持。。。专业啊。。&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/19.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;新浪微博的吴侃同学分享bigpipe开发方式&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/20.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/21.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/22.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;winter大大分享的主题是JS in JS&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/23.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;于是当时整个场面被winter hold住了&amp;#8230;&amp;#8230;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/24.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;现场提问，这哥们发型很帅。。。&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/27.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;偶上墙了。。。。&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/25.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;旁边的同学中奖了。&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/28.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;小合照&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/30.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;span style="font-size: 14pt;"&gt;晚餐&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/w3ctech2011/29.jpg" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;img src="http://www.cnblogs.com/Random/aggbug/2155885.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Random/archive/2011/08/28/2155885.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Random/archive/2011/07/31/2122332.html</id><title type="text">工作四周年纪念</title><summary type="text">2007.07.31 - 2011.07.31继续加油。</summary><published>2011-07-30T16:02:00Z</published><updated>2011-07-30T16:02:00Z</updated><author><name>随机</name><uri>http://www.cnblogs.com/Random/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Random/archive/2011/07/31/2122332.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Random/archive/2011/07/31/2122332.html"/><content type="html">&lt;p&gt;2007.07.31 - 2011.07.31&lt;/p&gt;&lt;p&gt;继续加油。 &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Random/aggbug/2122332.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Random/archive/2011/07/31/2122332.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Random/archive/2011/06/30/2093913.html</id><title type="text">利用bigpipe机制实现页面模块的异步渲染</title><summary type="text">终于要在项目中用bigpipe了，在模块较多的页面中，bigpipe的优化的效果还是不错的。</summary><published>2011-06-29T16:43:00Z</published><updated>2011-06-29T16:43:00Z</updated><author><name>随机</name><uri>http://www.cnblogs.com/Random/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Random/archive/2011/06/30/2093913.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Random/archive/2011/06/30/2093913.html"/><content type="html">&lt;div&gt;终于要在项目中用bigpipe了，在模块较多的页面中，bigpipe的优化的效果还是不错的。&lt;br /&gt;下面说说bigpipe的实现原理：&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;bigpipe基于HTTP/1.1 支持的chunked编码，可以由浏览器接收到服务器发送的chunked块后，立即解析该块代码。因为chunked编码使消息主体成块发送，每块有自己的大小指示器，在所有的块之后会紧接着一个可选的包含实体头域的尾部。这种编码充许发送端能动态生成内容，并能携带能让接收端判断消息是否接收完整的有用信息。&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;每块的大小指示器chunk-size为16进制数字字符串，块编码以大小为0的块结束，紧接着是trailer(尾部)，trailer以一个空行终止。&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;如下图：&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/bp.gif" height="561" width="868" /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;图中蓝框区域所示该http响应为chunked编码&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;图种红框部分为每一个chunked块，其中比如第一个块的14a就是这个块的大小指示器chunk-size，紧接着的就是块的内容。在最后一个内容块后面会增加一个大小为0的块，以标志所有块结束，所以真实的块数量会比可见的内容块数量多一个。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;点击以下地址可以查看该实例，可以明显地看到每一行的延迟输出。&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;chunked块输出实例&amp;gt;(写完博文后发现我那破空间没支持chunked编码，大家拿源码自己在本地运行吧&amp;#9582;(&amp;#9583;&amp;#9661;&amp;#9584;)&amp;#9581;) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;a target="_blank" href="http://ranblog.net/cnblogs/bigpipe/a.txt"&gt;&lt;span style="color: red;"&gt; &amp;lt;源代码&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;大家可以看到，在PHP中，是通过flush()语句来将缓冲区里的数据实时发送到请求端，实现起来并不复杂。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ok，那么我们如何来通过chunked编码块的这个特性来实现页面元素的异步渲染呢?是由服务器端输出分块的内容，其实就是一段&amp;lt;script&amp;gt;标签内容，&amp;lt;script&amp;gt;标签添加到页面后，会由标签内的js代码来作页面模块渲染的控制，请看以下示例：&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;chunked块模块渲染&amp;gt;（&amp;#9582;(&amp;#9583;&amp;#9661;&amp;#9584;)&amp;#9581;） &lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://ranblog.net/cnblogs/bigpipe/b.txt"&gt; &lt;span style="color: red;"&gt;&amp;lt;源代码&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;通过该示例大家可以大致了解bigpipe机制的基本过程，而且还可以通过自己写框架来包装，使该机制更加完善。不过本文就起个简单的原理介绍的作用，大家了解了实现方式后可以自己玩就行了。。嘿嘿。。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Random/aggbug/2093913.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Random/archive/2011/06/30/2093913.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Random/archive/2011/05/27/2060301.html</id><title type="text">贝塞尔曲线</title><summary type="text">贝塞尔曲线是一个由确定点来生成曲线路径的方程，最初由法国工程师皮埃尔·贝塞尔用来作汽车的主体设计，该方程还可以用来生成动画的插值公式。</summary><published>2011-05-27T13:56:00Z</published><updated>2011-05-27T13:56:00Z</updated><author><name>随机</name><uri>http://www.cnblogs.com/Random/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Random/archive/2011/05/27/2060301.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Random/archive/2011/05/27/2060301.html"/><content type="html">&lt;div&gt;贝塞尔曲线是一个由确定点来生成曲线路径的方程，最初由法国工程师皮埃尔&amp;#183;贝塞尔用来作汽车的主体设计，该方程还可以用来生成动画的插值公式。&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;贝塞尔曲线方程如下：&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&#xD;
&#xD;
&lt;div&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/bezier.png" height="54" width="694" /&gt;&amp;nbsp;&#xD;
&lt;/div&gt;&lt;p&gt;其中:&lt;br /&gt;&#xD;
n是阶数，一阶的时候是线性方程，阶数=确定点的个数-1;&lt;br /&gt;&#xD;
i是表示所有点的序列索引，即P0,P1,P2&amp;#8230;&amp;#8230;;&lt;br /&gt;&#xD;
P表示点的坐标(x,y);&lt;br /&gt;&#xD;
t表示时间自变量，并且介于0,1之间，可以等于0和1;&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
通过该方程，我们可以写出求某个时刻的点坐标函数：&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;bezier(points,t){&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;i,&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;points.length&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;fn(p,n,i,t){&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;arrangement(n,i)&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;p&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;Math.pow(&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;t,n&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt;i)&lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt;Math.pow(t,i);&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;(i&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;i&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;n&lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;){&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;fn(points[i][&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;],n,i,t);&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;fn(points[i][&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;],n,i,t);&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;[x,y];&lt;br /&gt;&#xD;
}&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&#xD;
其中参数points为所有的点,t为时刻，&lt;br /&gt;&#xD;
arrangement是求排列组合的函数，可以在完整代码中看到。&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
这样我们可以在拥有多个点的序列后，再通过t的变化，就可以求出所有点组合成的贝塞尔曲线图形了：&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000FF;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;0.001&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;drawPoint.apply(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;bezier(points,i));&lt;br /&gt;&#xD;
}&lt;/span&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&#xD;
完整代码及演示(需要在支持canvas的浏览器中运行)：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;textarea id="container" style="width: 740px; height: 284px;" wrap="" rows="2" cols="20" name=""&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&#xD;
&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&#xD;
&amp;lt;head&amp;gt;&#xD;
&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&amp;gt;&#xD;
&amp;lt;title&amp;gt;bezier demo&amp;lt;/title&amp;gt;&#xD;
&amp;lt;/head&amp;gt;&#xD;
&amp;lt;body&amp;gt;&#xD;
&amp;lt;div style="width:800px;height:600px;background-color:#fac0c0;"&amp;gt;&#xD;
&amp;lt;canvas id="screen" width="800" height="600"&amp;gt;骚瑞，您的浏览器不支持canvas&amp;lt;/canvas&amp;gt;&#xD;
&amp;lt;/div&amp;gt;&#xD;
&amp;lt;script type="text/javascript"&amp;gt;&#xD;
var screen=document.getElementById("screen"),&#xD;
context=screen.getContext("2d"),&#xD;
points=[];&#xD;
function getXY(node){&#xD;
var x=0,&#xD;
y=0;&#xD;
if (node.offsetParent) {&#xD;
while (node.offsetParent) {&#xD;
x += node.offsetLeft;&#xD;
y += node.offsetTop;&#xD;
node = node.offsetParent;&#xD;
}&#xD;
}&#xD;
else {&#xD;
node.x &amp;amp;&amp;amp; (x += node.x);&#xD;
node.y &amp;amp;&amp;amp; (y += node.y);&#xD;
}&#xD;
return [x,y];&#xD;
}&#xD;
function drawPoint(x,y,c,b) {&#xD;
!b &amp;amp;&amp;amp; (b=2);&#xD;
context.fillStyle=c || "red";&#xD;
context.fillRect(x,y,b,b);&#xD;
}&#xD;
function bezier(points,t){&#xD;
var i,&#xD;
n=points.length-1,&#xD;
x=0,&#xD;
y=0;&#xD;
function fn(p,n,i,t){&#xD;
return arrangement(n,i)*p*Math.pow(1-t,n-i)*Math.pow(t,i);&#xD;
}&#xD;
for(i=0;i&amp;lt;n+1;i++){&#xD;
x+=fn(points[i][0],n,i,t);&#xD;
y+=fn(points[i][1],n,i,t);&#xD;
}&#xD;
return [x,y];&#xD;
}&#xD;
function factorial(n){&#xD;
if(isNaN(n) || n&amp;lt;=0 || Math.floor(n)!==n){&#xD;
return 1;&#xD;
}&#xD;
var s=1;&#xD;
while(n){&#xD;
s*=n--;&#xD;
}&#xD;
return s;&#xD;
}&#xD;
function arrangement(n,r){&#xD;
return factorial(n)/(factorial(r)*factorial(n-r));&#xD;
}&#xD;
screen.addEventListener("click",function(event){&#xD;
var i,&#xD;
point=getXY(this),&#xD;
x=event.clientX-point[0]+(document.documentElement.scrollLeft || document.body.scrollLeft),&#xD;
y=event.clientY-point[1]+(document.documentElement.scrollTop || document.body.scrollTop);&#xD;
points.push([x,y]);&#xD;
context.clearRect(0,0,screen.width,screen.height);&#xD;
context.beginPath();&#xD;
//points&#xD;
for(i=0;i&amp;lt;points.length;i++){&#xD;
drawPoint(points[i][0],points[i][1],"blue",4);&#xD;
}&#xD;
//bezier&#xD;
for (i = 0; i &amp;lt; 1; i += 0.001) {&#xD;
drawPoint.apply(this, bezier(points,i));&#xD;
}&#xD;
//line&#xD;
if(points.length==1){&#xD;
context.moveTo(points[0][0],points[0][1]);&#xD;
}else if (points.length&amp;gt;1){&#xD;
for(i=0;i&amp;lt;points.length;i++){&#xD;
context.lineTo(points[i][0],points[i][1]);&#xD;
}&#xD;
context.lineWidth=0.2;&#xD;
context.stroke();&#xD;
context.closePath();&#xD;
}&#xD;
},true);&#xD;
&amp;lt;/script&amp;gt;&#xD;
&amp;lt;/body&amp;gt;&#xD;
&amp;lt;/html&amp;gt;&lt;/textarea&gt;&#xD;
&lt;p&gt;&lt;input value="  运行代码  " onclick="var win=window.open('','_blank');win.document.open('text/html');win.document.write(document.getElementById('container').value);win.document.close();" type="button"&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;更多贝塞尔曲线的相关知识请参考wikipedia &lt;a target="_blank" href="http://zh.wikipedia.org/zh-cn/%E8%B2%9D%E8%8C%B2%E6%9B%B2%E7%B7%9A"&gt;贝塞尔曲线&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Random/aggbug/2060301.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Random/archive/2011/05/27/2060301.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Random/archive/2011/04/11/2011962.html</id><title type="text">经典格斗游戏《街头霸王》的Javascript实现</title><summary type="text">山寨的经典格式游戏《街头霸王》的模仿版Demo，花了几个月的业余时间写了这么个东西，算是对目前的技术学习的一种练习吧。</summary><published>2011-04-10T16:00:00Z</published><updated>2011-04-10T16:00:00Z</updated><author><name>随机</name><uri>http://www.cnblogs.com/Random/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Random/archive/2011/04/11/2011962.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Random/archive/2011/04/11/2011962.html"/><content type="html">&lt;div&gt;　　继 &lt;a target="_blank" href="http://www.cnblogs.com/Random/archive/2008/11/24/1339648.html"&gt;《天机》&lt;/a&gt; 之后，这次又山寨了个名为《街斗霸主》的经典格式游戏《街头霸王》的模仿版Demo，花了几个月的业余时间写了这么个东西，算是对目前的技术学习的一种练习吧。&lt;/div&gt;&#xD;
&lt;p&gt;其实这种练习的结果不是很重要，主要是体会其中的过程，虽然大部分的时间是在痛苦中渡过，但也是有很多收获的，同时也暴露出很多技术方面的不足，也为以后的学习明确了一些目标。&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;div&gt;&#xD;
技术方面因为考虑到大部分IE用户（而且是非IE9），所以没有用HTML5的canvas，用的div的方式处理的，这样挑战也相对大了一些，&lt;/div&gt;&#xD;
&lt;p&gt;不过确实，性能上还是不理想，IE下的表现还是比较糟糕（特别是IE6。。。恩。。。- -！）。&lt;br /&gt;&#xD;
目前兼容IE6/7/8(理论上也兼容IE9，只是没有测试)，safari，FF3.5+(因为FF2.0/3.0不支持水平翻转的样式。。- -！)，Chrome，Opera。&lt;br /&gt;&#xD;
自己写了一个小型框架，包括了开发流程和js类库，类库用了OOP Like的方式包了个语法糖衣，看上去还算是像个OOP的样子，不过因为为了追求&amp;#8220;优雅&amp;#8221;，直接扩展了function的prototype，所以不建议在其它地方使用。&lt;br /&gt;&#xD;
框架开发的整体思路就是用PHP作后端代码合并输出，js代码里用$import去建立了各个代码文件之间的关系，然后页面引用合并js的PHP文件，该模式需要在本地建立一个web服务器才能作测试，并且需要设置hosts为 127.0.0.1 aralork&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;游戏说明&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;游戏是一个Demo版本，实现了核心的整体流程。游戏分为&amp;#8220;单人游戏&amp;#8221;模式、&amp;#8220;双人对战&amp;#8221;模式和&amp;#8220;练习模式&amp;#8221;三种玩法，不过其实实现都是一样，只是改改初始化的参数而已，挺坑爹的。。。&lt;/p&gt;&#xD;
&lt;p&gt;游戏只需要键盘操作，不需要鼠标，&lt;/p&gt;&#xD;
&lt;p&gt;菜单的操作是方向键移动，Enter键选择，ESC键取消；&lt;/p&gt;&#xD;
&lt;p&gt;玩家1的操作:&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;div&gt;　　　　 &amp;nbsp; 上：W，下：S，左：A，右：D，拳：J / K / L，腿：U / I / O&lt;/div&gt;&#xD;
&lt;p&gt;玩家2的操作:&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;上：&amp;#8593;，下：&amp;#8595;，左：&amp;#8592;，右：&amp;#8594;，拳：小键盘 1 / 2 / 3，腿：小键盘 4 / 5 / 6&lt;/p&gt;&#xD;
&lt;p&gt;这里的 &amp;#8593; &amp;#8595; &amp;#8592; &amp;#8594; 代表方向键。&lt;/p&gt;&#xD;
&lt;br /&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;游戏截图&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/streetMaster/1.jpg" height="330" width="576" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/random/streetMaster/2.jpg" height="333" width="573" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong style="color: red;"&gt;其它说明&lt;/strong&gt;&lt;br style="color: red;" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;目前游戏还有很多BUG，所以玩的时候要有心理准备，不要被怪异的情况所震惊。。。　　　　&lt;/p&gt;&#xD;
&lt;p&gt;游戏里的素材取自于CAPCOM公司的《街霸II》，版权归CAPCOM公司所有。&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 大家有什么问题都可以在这里回复，欢迎大家拍砖，谢谢。&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a target="_blank" href="http://www.ranblog.net/game/streetMaster/"&gt;&lt;span style="font-size: 18pt; color: #0000ff;"&gt;游戏演示地址&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a target="_blank" href="http://www.ranblog.net/download/streetMaster.rar"&gt;&lt;span style="font-size: 18pt; color: #0000ff;"&gt;完整源代码下载 &lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000; font-size: 12pt;"&gt;更新记录&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt; [2011.04.11 23:30]&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;解决Chrome下一直Loading的问题&lt;br /&gt;&lt;/p&gt;&lt;p&gt;处理了被对手逼近角落时连续攻击无法还手的问题 &lt;br /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Random/aggbug/2011962.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Random/archive/2011/04/11/2011962.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
