<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>花太香齐的博客 &#187; Linux/Shell/Server</title>
	<atom:link href="http://www.ieliwb.com/category/linux-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ieliwb.com</link>
	<description>灵感的来临，没有任何预兆；灵感的消失，也不会有告别仪式；用文字记下她们吧，让灵感永存……</description>
	<lastBuildDate>Wed, 04 Aug 2010 02:52:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>linux下php扩展(php ext)开发记录</title>
		<link>http://www.ieliwb.com/linux-php-extension-dev/</link>
		<comments>http://www.ieliwb.com/linux-php-extension-dev/#comments</comments>
		<pubDate>Tue, 04 May 2010 04:57:56 +0000</pubDate>
		<dc:creator>花太香齐</dc:creator>
				<category><![CDATA[Linux/Shell/Server]]></category>
		<category><![CDATA[PHP/WEB]]></category>
		<category><![CDATA[extension]]></category>

		<guid isPermaLink="false">http://www.ieliwb.com/linux%e4%b8%8bphp%e6%89%a9%e5%b1%95php-ext%e5%bc%80%e5%8f%91%e8%ae%b0%e5%bd%95/</guid>
		<description><![CDATA[<blockquote>公司需要对通行证用户资料的教检函数封包(防止服务器沦陷,用户资料被解密)，需要开发一个扩展函数，
username是cookie中的username，
hashkey 是 cookie中的 PName
开发php ext: 函数名为csdn_verify_auth，参数是username 和 hashkey ，（算法机密文件略）

第一次写PHP扩展，搜索资料到编写测试用了一天半完成，记录一下吧，以后如果需要做的话大部分时间只能浪费在C算法上。</blockquote>[......]<p class='read-more'><a href='http://www.ieliwb.com/linux-php-extension-dev/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<blockquote><p>公司需要对通行证用户资料的教检函数封包(防止服务器沦陷,用户资料被解密)，需要开发一个扩展函数，<br />
username是cookie中的username，<br />
hashkey 是 cookie中的 PName<br />
开发php ext: 函数名为csdn_verify_auth，参数是username 和 hashkey ，（算法机密文件略）</p>
<p>第一次写PHP扩展，搜索资料到编写测试用了一天半完成，记录一下吧，以后如果需要做的话大部分时间只能浪费在C算法上。</p></blockquote>
<p><strong>1.先down一个php下来,编译安装：(编译环境只做测试扩展用)</strong><br />
<code><br />
wget http://cn2.php.net/get/php-5.2.13.tar.gz/from/cn.php.net/mirror<br />
tar zxvf php-5.2.13.tar.gz<br />
cd php-5.2.13<br />
./configure --prefix=/csdn_verify_auth/php --with-config-file-path=/csdn_verify_auth/php/etc<br />
make ZEND_EXTRA_LIBS='-liconv'<br />
make install<br />
cp php.ini-dist /csdn_verify_auth/php/etc/php.ini<br />
</code></p>
<p><strong>2.修改一下vi /csdn_verify_auth/php/etc/php.ini中的extension_dir = &#8220;./&#8221;</strong><br />
　　修改为<code>extension_dir = "/csdn_verify_auth/php/lib/php/extensions/no-debug-non-zts-20060613"</code><br />
　　并在此行后增加以下，然后保存：<br />
　　<code>extension = "csdn_verify_auth.so"</code><br />
    csdn_verify_auth改为你开发的扩展的名字</p>
<p><strong>3.开始创建扩展项目</strong><br />
进入源码目录<br />
<code>cd /csdn_verify_auth/php-5.2.13/ext/<br />
./ext_skel --extname=csdn_verify_auth</code></p>
<p>创建名字为csdn_verify_auth的项目，最终会生成csdn_verify_auth.so</p>
<p><strong>4.更改配置和扩展程序开发</strong><br />
<code>vi ext/csdn_verify_auth/config.m4</code></p>
<p>根据你自己的选择将</p>
<blockquote><p>dnl PHP_ARG_WITH(csdn_verify_auth, for csdn_verify_auth support,<br />
	dnl Make sure that the comment is aligned:<br />
	dnl [ --with-csdn_verify_auth Include csdn_verify_auth support])</p></blockquote>
<p>去掉dnl<br />
或者将</p>
<blockquote><p>dnl PHP_ARG_ENABLE(csdn_verify_auth, whether to enable csdn_verify_auth support,<br />
	dnl Make sure that the comment is aligned:<br />
	dnl [ --enable-csdn_verify_auth Enable csdn_verify_auth support])</p></blockquote>
<p>去掉dnl</p>
<p><code>vi ext/csdn_verify_auth/php_csdn_verify_auth.h</code><br />
将<br />
<code>PHP_FUNCTION(confirm_csdn_verify_auth_compiled); /* For testing, remove later. */</code><br />
更改为<br />
<code>PHP_FUNCTION(csdn_verify_auth);</code></p>
<p><code>vi ext/csdn_verify_auth/csdn_verify_auth.c</code><br />
将<br />
<code>zend_function_entry php5cpp_functions[] = {<br />
PHP_FE(confirm_csdn_verify_auth_compiled, NULL) /* For testing, remove later. */<br />
{NULL, NULL, NULL} /* Must be the last line in php5cpp_functions[] */<br />
};</code><br />
更改为<br />
<code>zend_function_entry php5cpp_functions[] = {<br />
PHP_FE(csdn_verify_auth, NULL)<br />
{NULL, NULL, NULL} /* Must be the last line in php5cpp_functions[] */<br />
};</code><br />
在最后添加：<br />
<code>PHP_FUNCTION(csdn_verify_auth)<br />
{<br />
	zend_printf("hello world\n");<br />
}</code></p>
<p><strong>5.编译生成so文件</strong><br />
<code>cd /csdn_verify_auth/php-5.2.13/ext/csdn_verify_auth/<br />
/csdn_verify_auth/php/bin/phpize<br />
./configure --with-php-config=/csdn_verify_auth/php/bin/php-config<br />
make<br />
mv /csdn_verify_auth/php-5.2.13/ext/csdn_verify_auth/modules/csdn_verify_auth.so /csdn_verify_auth/php/lib/php/extensions/no-debug-non-zts-20060613<br />
cd ../../../</code></p>
<p><strong>6.测试扩展</strong><br />
<code>vi /csdn_verify_auth/hello.php</code></p>
<p><? php<br />
csdn_verify_auth();<br />
?></p>
<p><code>/csdn_verify_auth/php/bin/php hello.php</code><br />
hello world.</p>
<p>OK</p>
<blockquote><p>主要用到的api就那么几个：<br />
ZEND_NUM_ARGS()、zend_parse_parameters(args TSRMLS_CC, &#8220;ss&#8221;, &#038;username, &#038;username_length, &#038;hash, &#038;hash_length)  参数接收系列<br />
RETURN_FALSE。。RETURN_STRINGL(s, l, dup)等返回系列函数<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br />
其他的基本就是C了，再次感叹下，学好C语言，走到哪都不怕。
</p></blockquote>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-END&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
<span style='display:none;'>class:http://www.hucde.com/index.php/archives/category/php<br />
ext:http://blog.csdn.net/taft/archive/2006/02/10/596291.aspx</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ieliwb.com/linux-php-extension-dev/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 5.4安装 libmcrypt 2.5.8 错误及其解决方案记录</title>
		<link>http://www.ieliwb.com/centos-libmcrypt-not-found/</link>
		<comments>http://www.ieliwb.com/centos-libmcrypt-not-found/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 14:54:59 +0000</pubDate>
		<dc:creator>花太香齐</dc:creator>
				<category><![CDATA[Linux/Shell/Server]]></category>
		<category><![CDATA[libmcrypt]]></category>

		<guid isPermaLink="false">http://www.ieliwb.com/centos-5-4%e5%ae%89%e8%a3%85-libmcrypt-2-5-8-%e9%94%99%e8%af%af%e5%8f%8a%e5%85%b6%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88%e8%ae%b0%e5%bd%95/</guid>
		<description><![CDATA[<p><strong>错误代码：</strong></p>
<blockquote><p>
checking for libmcrypt &#8211; version >= 2.5.0&#8230;<br />
*** &#8216;libmcrypt-config &#8211;version&#8217; returned 2.4.0, but LIBMCRYPT (2.5.8)<br />
*[......]</p></blockquote><p class='read-more'><a href='http://www.ieliwb.com/centos-libmcrypt-not-found/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><strong>错误代码：</strong></p>
<blockquote><p>
checking for libmcrypt &#8211; version >= 2.5.0&#8230;<br />
*** &#8216;libmcrypt-config &#8211;version&#8217; returned 2.4.0, but LIBMCRYPT (2.5.8)<br />
*** was found! If libmcrypt-config was correct, then it is best<br />
*** to remove the old version of LIBMCRYPT. You may also be able to fix the error<br />
*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing<br />
*** /etc/ld.so.conf. Make sure you have run ldconfig if that is<br />
*** required on your system.<br />
*** If libmcrypt-config was wrong, set the environment variable LIBMCRYPT_CONFIG<br />
*** to point to the correct copy of libmcrypt-config, and remove the file config.cache<br />
*** before re-running configure<br />
configure: error: *** libmcrypt was not found
</p></blockquote>
<p><strong>分析：</strong></p>
<blockquote><p>明明我安装了libmcrypt 2.5.8 ，可是竟然提示没有发现！然后在/usr/local/bin/找到了LIBMCRYPT_CONFIG ，这一步明确了是PATH变量的问题 ！</p></blockquote>
<p><strong>解决方法：</strong></p>
<blockquote><p>
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la<br />
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so<br />
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4<br />
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8</p>
<p>ln -s   /usr/local/bin/libmcrypt-config   /usr/bin/libmcrypt-config
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.ieliwb.com/centos-libmcrypt-not-found/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下mysql定时自动备份并FTP到远程脚本</title>
		<link>http://www.ieliwb.com/linux-mysql-auto-backup/</link>
		<comments>http://www.ieliwb.com/linux-mysql-auto-backup/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 03:28:24 +0000</pubDate>
		<dc:creator>花太香齐</dc:creator>
				<category><![CDATA[Linux/Shell/Server]]></category>
		<category><![CDATA[Mysql/SQL/数据库优化]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[自动备份]]></category>

		<guid isPermaLink="false">http://www.ieliwb.com/linux%e4%b8%8bmysql%e5%ae%9a%e6%97%b6%e8%87%aa%e5%8a%a8%e5%a4%87%e4%bb%bd%e5%b9%b6ftp%e5%88%b0%e8%bf%9c%e7%a8%8b%e8%84%9a%e6%9c%ac/</guid>
		<description><![CDATA[<p><strong>1.添加backupmysqleveryday.sh（vi /data/shell/backupmysqleveryday.sh）</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">#!/bin/sh</li>
<li>#this shell is user for backup mysql data everyday</li>
<li>#author:www.ieliwb.com [......]</li></ol></div><p class='read-more'><a href='http://www.ieliwb.com/linux-mysql-auto-backup/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><strong>1.添加backupmysqleveryday.sh（vi /data/shell/backupmysqleveryday.sh）</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">#!/bin/sh</li>
<li>#this shell is user for backup mysql data everyday</li>
<li>#author:www.ieliwb.com </li>
<li>&nbsp;</li>
<li>#path-config</li>
<li>base_mysql_path=/data/webserver/mysql/</li>
<li>mysql_dump_path=/data/mysqlbackup/</li>
<li>mnt_back_path=/mnt/web/mysqlbackup/ </li>
<li>ftp_back_path=mysql_data_backup/</li>
<li>&nbsp;</li>
<li>#mysql-config</li>
<li>mysql_user=&quot;root&quot;</li>
<li>mysql_pass=&quot;*******&quot;</li>
<li>&nbsp;</li>
<li>#ftp-config</li>
<li>ftp_host=&quot;ip&quot;</li>
<li>ftp_user=&quot;********&quot;</li>
<li>ftp_pass=&quot;********&quot;</li>
<li>&nbsp;</li>
<li>backup_name=`date +%Y%m%d%H%M%S`</li>
<li>&nbsp;</li>
<li>cd ${mysql_dump_path}</li>
<li>&nbsp;</li>
<li>#mysqldump</li>
<li>${base_mysql_path}bin/mysqldump -u${mysql_user} -p${mysql_pass} --all-database &gt; ${backup_name}.sql</li>
<li>&nbsp;</li>
<li>#pack</li>
<li>tar zcf ${backup_name}.tar.gz ${backup_name}.sql</li>
<li>rm -f ${backup_name}.sql</li>
<li>&nbsp;</li>
<li>#backup to mnt</li>
<li>cp ${backup_name}.tar.gz ${mnt_back_path}${backup_name}.tar.gz</li>
<li>&nbsp;</li>
<li>#ftp to other host</li>
<li>ftp -n&lt;&lt;!</li>
<li>open ${ftp_host}</li>
<li>user ${ftp_user} ${ftp_pass}</li>
<li>bin</li>
<li>prompt off</li>
<li>cd ${ftp_back_path}</li>
<li>passive</li>
<li>put ${backup_name}.tar.gz</li>
<li>close</li>
<li>bye</li>
<li>!</li></ol></div>
<p><strong>2.添加定时计划（vi /etc/crontab）</strong></p>
<blockquote><p>
01 0 * * * root /data/shell/backupmysqleveryday.sh<br />
每天0：01点执行
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.ieliwb.com/linux-mysql-auto-backup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>分享一个PW论坛短地址实现方法及服务器rewrite规则</title>
		<link>http://www.ieliwb.com/pw-short-url/</link>
		<comments>http://www.ieliwb.com/pw-short-url/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 09:59:30 +0000</pubDate>
		<dc:creator>花太香齐</dc:creator>
				<category><![CDATA[Linux/Shell/Server]]></category>
		<category><![CDATA[PHP/WEB]]></category>
		<category><![CDATA[pw]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[短地址]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=146</guid>
		<description><![CDATA[<blockquote><p>
说明：<br />
实现超短地址，一级目录，且利于SEO<br />
栏目最终地址：http://bbs.myiphones.com.cn/t147<br />
帖子最终地址：http://bbs.myiphones.com.cn/5199<br />
数字表示栏目id或帖子id
</p></blockquote>
<p><strong>1.修改global.php的一个函数(适用于pw7.3.2及[......]</strong></p><p class='read-more'><a href='http://www.ieliwb.com/pw-short-url/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<blockquote><p>
说明：<br />
实现超短地址，一级目录，且利于SEO<br />
栏目最终地址：http://bbs.myiphones.com.cn/t147<br />
帖子最终地址：http://bbs.myiphones.com.cn/5199<br />
数字表示栏目id或帖子id
</p></blockquote>
<p><strong>1.修改global.php的一个函数(适用于pw7.3.2及以上版本，其他版本自己酌情修改)</strong></p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">Htm_cv</span><span style="color: Olive;">(</span><span style="color: #00008b;">$url</span><span style="color: Gray;">,</span><span style="color: #00008b;">$tag</span><span style="color: Olive;">){</span><span style="color: Gray;">..............</span><span style="color: Olive;">}</span><span style="color: Gray;"></span></div></div>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">&lt;?php</span><span style="color: Gray;"><br />&nbsp;<br /></span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">Htm_cv</span><span style="color: Olive;">(</span><span style="color: #00008b;">$url</span><span style="color: Gray;">, </span><span style="color: #00008b;">$tag</span><span style="color: Olive;">)</span><span style="color: Gray;"><br /></span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">global</span><span style="color: Gray;"> </span><span style="color: #00008b;">$db_dir</span><span style="color: Gray;">, </span><span style="color: #00008b;">$db_ext</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: Blue;">preg_match</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">/^(http|ftp|telnet|mms|rtsp)|admin.php|rss.php/i</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #00008b;">$url</span><span style="color: Olive;">))</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Olive;">{</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$add</span><span style="color: Gray;"> = </span><span style="color: Blue;">strpos</span><span style="color: Olive;">(</span><span style="color: #00008b;">$url</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">#</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> !== </span><span style="color: Green;">false</span><span style="color: Gray;"> ? </span><span style="color: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: #00008b;">$url</span><span style="color: Gray;">, </span><span style="color: Blue;">strpos</span><span style="color: Olive;">(</span><span style="color: #00008b;">$url</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">#</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;"> : </span><span style="color: #8b0000;">''</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">strpos</span><span style="color: Olive;">(</span><span style="color: #00008b;">$url</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">thread.php?</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> !== </span><span style="color: Green;">false</span><span style="color: Olive;">)</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">{</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">unset</span><span style="color: Olive;">(</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$tharr</span><span style="color: Gray;"> = </span><span style="color: Blue;">explode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&amp;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: Blue;">str_replace</span><span style="color: Olive;">(</span><span style="color: #00008b;">$add</span><span style="color: Gray;">, </span><span style="color: #8b0000;">''</span><span style="color: Gray;">, </span><span style="color: #00008b;">$url</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: Maroon;">11</span><span style="color: Olive;">))</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">foreach</span><span style="color: Olive;">(</span><span style="color: #00008b;">$tharr</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$key</span><span style="color: Gray;"> =&gt; </span><span style="color: #00008b;">$value</span><span style="color: Olive;">){</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$ru</span><span style="color: Gray;"> = </span><span style="color: Blue;">explode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">=</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #00008b;">$value</span><span style="color: Gray;">, </span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: #00008b;">$ru</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">1</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]){</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">switch</span><span style="color: Olive;">(</span><span style="color: #00008b;">$ru</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">0</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]){</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">case</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">fid</span><span style="color: #8b0000;">'</span><span style="color: Gray;">: <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">fid</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$ru</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">1</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">1</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Maroon;">1</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">break</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">case</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">page</span><span style="color: #8b0000;">'</span><span style="color: Gray;">: <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">page</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$ru</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">1</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">2</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Maroon;">2</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">break</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">default</span><span style="color: Gray;">: <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Maroon;">4</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$urlfail</span><span style="color: Gray;"> = </span><span style="color: Maroon;">1</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">break</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">switch</span><span style="color: Olive;">(</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]){</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">case</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">1</span><span style="color: #8b0000;">'</span><span style="color: Gray;">: <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$url</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">t</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">fid</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> ; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">break</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">case</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">2</span><span style="color: #8b0000;">'</span><span style="color: Gray;">: <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$url</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">t</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">fid</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">_</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">page</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> ; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">break</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">elseif</span><span style="color: Olive;">(</span><span style="color: Blue;">strpos</span><span style="color: Olive;">(</span><span style="color: #00008b;">$url</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">read.php?</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> !== </span><span style="color: Green;">false</span><span style="color: Olive;">)</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">{</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">unset</span><span style="color: Olive;">(</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">)</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rarr</span><span style="color: Gray;"> = </span><span style="color: Blue;">explode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&amp;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: Blue;">str_replace</span><span style="color: Olive;">(</span><span style="color: #00008b;">$add</span><span style="color: Gray;">, </span><span style="color: #8b0000;">''</span><span style="color: Gray;">, </span><span style="color: #00008b;">$url</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: Maroon;">9</span><span style="color: Olive;">))</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">foreach</span><span style="color: Olive;">(</span><span style="color: #00008b;">$rarr</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$key</span><span style="color: Gray;"> =&gt; </span><span style="color: #00008b;">$value</span><span style="color: Olive;">){</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$ru</span><span style="color: Gray;"> = </span><span style="color: Blue;">explode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">=</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #00008b;">$value</span><span style="color: Gray;">, </span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: #00008b;">$ru</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">1</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]){</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">switch</span><span style="color: Olive;">(</span><span style="color: #00008b;">$ru</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">0</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]){</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">case</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">tid</span><span style="color: #8b0000;">'</span><span style="color: Gray;">: <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">tid</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$ru</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">1</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">1</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Maroon;">1</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">break</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">case</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">page</span><span style="color: #8b0000;">'</span><span style="color: Gray;">: <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">page</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$ru</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">1</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">2</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: Blue;">type</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Maroon;">2</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">break</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">case</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">fpage</span><span style="color: #8b0000;">'</span><span style="color: Gray;">: <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">fpage</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$ru</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">1</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">3</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Maroon;">3</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">break</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">default</span><span style="color: Gray;">: <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Maroon;">4</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$urlfail</span><span style="color: Gray;"> = </span><span style="color: Maroon;">1</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">break</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">switch</span><span style="color: Olive;">(</span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]){</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">case</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">1</span><span style="color: #8b0000;">'</span><span style="color: Gray;">: <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$url</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">tid</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">;</span><span style="color: Green;">break</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">case</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">2</span><span style="color: #8b0000;">'</span><span style="color: Gray;">: <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$url</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">tid</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">_</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">page</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> ;</span><span style="color: Green;">break</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">case</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">3</span><span style="color: #8b0000;">'</span><span style="color: Gray;">: <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$url</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">tid</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">_</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">page</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">_</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$rw</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">fpage</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> ;</span><span style="color: Green;">break</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: #00008b;">$urlfail</span><span style="color: Olive;">)</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">{</span><span style="color: Gray;"> <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #00008b;">$url</span><span style="color: Gray;"> = </span><span style="color: Blue;">str_replace</span><span style="color: Olive;">(</span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">.php?</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">=</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">&amp;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #00008b;">$add</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: #00008b;">$db_dir</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">-</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">-</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #8b0000;">''</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: #00008b;">$url</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: #00008b;">$db_ext</span><span style="color: Gray;">.</span><span style="color: #00008b;">$add</span><span style="color: Gray;">; <br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: Blue;">stripslashes</span><span style="color: Olive;">(</span><span style="color: #00008b;">$tag</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: #00008b;">$url</span><span style="color: Navy;">\&quot;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;<br /></span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;<br /></span><span style="color: Blue;">?&gt;</span></div></div>
<p><strong>2.添加rewrite规则</strong><br />
a.apache服务器：</p>
<blockquote><p>
RewriteEngine On<br />
RewriteRule ^/t([0-9]+)$ /thread.php?fid=$1<br />
RewriteRule ^/t([0-9]+)_(.*)$ /thread.php?fid=$1&#038;page=$2<br />
RewriteRule ^/([0-9]+)$ /read.php?tid=$1<br />
RewriteRule ^/([0-9]+)_(.*)$ /read.php?tid=$1&#038;page=$2<br />
RewriteRule ^/([0-9]+)_(.*)_(.*)$ /read.php?tid=$1&#038;page=$2&#038;fpage=$3<br />
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2<br />
RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ $1/simple/index.php?$2
</p></blockquote>
<p>b.nginx服务器:</p>
<blockquote><p>
        rewrite &#8220;^/t([0-9]+)$&#8221; /thread.php?fid=$1 last;<br />
        rewrite &#8220;^/t([0-9]+)_(.*)$&#8221; /thread.php?fid=$1&#038;page=$2 last;<br />
        rewrite &#8220;^/([0-9]+)$&#8221; /read.php?tid=$1 last;<br />
        rewrite &#8220;^/([0-9]+)_(.*)$&#8221; /read.php?tid=$1&#038;page=$2 last;<br />
        rewrite &#8220;^/([0-9]+)_(.*)_(.*)$&#8221; /read.php?tid=$1&#038;page=$2&#038;fpage=$3 last;<br />
        rewrite &#8220;^(.*)-htm-(.*)$&#8221; $1.php?$2 last;<br />
        rewrite &#8220;^(.*)/simple/([a-z0-9\_]+\.html)$&#8221; $1/simple/index.php?$2 last;
</p></blockquote>
<p>后台开启下伪静态就可以，其他的不用管。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ieliwb.com/pw-short-url/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下配置java(jdk-6u16) javabridge_5.5.2生产环境全记录</title>
		<link>http://www.ieliwb.com/linux-jdk-javabridge/</link>
		<comments>http://www.ieliwb.com/linux-jdk-javabridge/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 08:48:37 +0000</pubDate>
		<dc:creator>花太香齐</dc:creator>
				<category><![CDATA[Java/JavaBridge/Lucene]]></category>
		<category><![CDATA[Linux/Shell/Server]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javabridge]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=144</guid>
		<description><![CDATA[<blockquote>
Linux版本：Linux localhost.localdomain 2.6.9-67.ELsmp #1 SMP Fri Nov 16 12:48:03 EST 2007 i686 i686 i386 GNU/Linux
JDK版本：jdk-6u16-linux-i586-rpm.bin
Javabridge版本：php-java-bridge_5.5.2.tar.gz 
</blockquote>[......]<p class='read-more'><a href='http://www.ieliwb.com/linux-jdk-javabridge/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<blockquote><p>
Linux版本：Linux localhost.localdomain 2.6.9-67.ELsmp #1 SMP Fri Nov 16 12:48:03 EST 2007 i686 i686 i386 GNU/Linux<br />
JDK版本：jdk-6u16-linux-i586-rpm.bin<br />
Javabridge版本：php-java-bridge_5.5.2.tar.gz
</p></blockquote>
<p>命令行下下载安装包（截止本文目前均为最新版本安装包）：</p>
<blockquote><p>
wget http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u16-linux-i586-rpm.bin?BundledLineItemUUID=RNFIBe.p73UAAAEjCOsMk_8.&#038;OrderID=wZhIBe.pEL0AAAEj9eoMk_8.&#038;ProductID=Dx1IBe.prBgAAAEirRcTvuC_&#038;FileName=/jdk-6u16-linux-i586-rpm.bin<br />
wget http://downloads.sourceforge.net/project/php-java-bridge/RHEL_FC%20SecurityEnhancedLinux/php-java-bridge_5.5.2/php-java-bridge_5.5.2.tar.gz
</p></blockquote>
<p>开始吧！</p>
<p><strong>1.为了美观下改下名 </strong></p>
<blockquote><p>
rename jdk-6u16-linux-i586-rpm.bin\?AuthParam\=1254118516_01ed8aaa21c5b2aa1c82f9d95ffb2f12\&#038;TicketId\=B%2Fw7nBiCSVlNTBVLOl9SlwHm\&#038;GroupName\=CDS\&#038;FilePath\=%2FESD6%2FJSCDL%2Fjdk%2F6u16-b01%2Fjdk-6u16-linux-i586-rpm.bin\&#038;File\=jdk-6u16-linux-i586-rpm.bin jdk-6u16-linux-i586-rpm.bin
</p></blockquote>
<p><strong>2.赋予jdk-6u16-linux-i586-rpm.bin可执行权限 </strong></p>
<blockquote><p>chmod +x jdk-6u16-linux-i586-rpm.bin </p></blockquote>
<p><strong>3.执行 </strong></p>
<blockquote><p>./jdk-6u16-linux-i586-rpm.bin</p></blockquote>
<p>得到 jdk-6u16-linux-i586-rpm文件</p>
<p><strong>4.赋予可执行权限 </strong></p>
<blockquote><p>chmod +x jdk-6u16-linux-i586.rpm </p></blockquote>
<p><strong>5.安装rpm文件 </strong></p>
<blockquote><p>rpm -ivh jdk-6u16-linux-i586.rpm</p></blockquote>
<p>接下来我们就要设置环境变量了。</p>
<blockquote><p>vi /etc/profile.d/java.sh</p></blockquote>
<p>这样作的目的是让所有的用户用到。在编辑java.sh文件的时候，我们进入的是命令模式，所以要进行模式切换，切换到文本模式用i就可以了，然后我们进行编辑，也就是把下面的配置写上去,如下：</p>
<p>6. </p>
<blockquote><p>vi /etc/profile.d/java.sh</p></blockquote>
<blockquote><p>JAVA_HOME=/usr/java/jdk1.6.0_16<br />
PATH=$PATH:$JAVA_HOME/bin<br />
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar<br />
export JAVA_HOME CLASSPATH PATH </p></blockquote>
<p>:wq离开</p>
<p>7.</p>
<blockquote><p>exit</p></blockquote>
<p>再</p>
<blockquote><p>login</p></blockquote>
<p>，输入</p>
<blockquote><p>env</p></blockquote>
<p>查看环境变量生效了</p>
<p>8.</p>
<blockquote><p>java -version</p></blockquote>
<p>得到：</p>
<blockquote><p>java version “1.6.0_16″<br />
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)<br />
Java HotSpot(TM) Server VM (build 14.2-b01, mixed mode)</p></blockquote>
<p>那么恭喜你，JDK安装成功了。</p>
<p><strong>9.可以测试一下java程序 </strong></p>
<blockquote><p>vi test.java</p></blockquote>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">test</span><span style="color: Gray;"><br /></span><span style="color: Olive;">{</span><span style="color: Gray;"><br /></span><span style="color: Green;">public</span><span style="color: Gray;"> </span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Olive;">)</span><span style="color: Gray;"><br /></span><span style="color: Olive;">{</span><span style="color: Gray;"><br /></span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">Hello</span><span style="color: Gray;"> </span><span style="color: Blue;">World</span><span style="color: Gray;">!”</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Olive;">}</span><span style="color: Gray;"><br /></span><span style="color: Olive;">}</span></div></div>
<blockquote><p>
javac test.java<br />
java test
</p></blockquote>
<p>Hello World!</p>
<p>JDK安装成功了，那么就继续安装Javabridge了</p>
<blockquote><p>cd /data/soft/<br />
tar zxvf php-java-bridge_5.5.2.tar.gz<br />
cd php-java-bridge-5.5.2/<br />
/data/webserver/php/bin/phpize<br />
./configure –disable-backend –with-java=/usr/java/jdk1.6.0_16/,/usr/java/jdk –with-php-config=/data/webserver/php/bin/php-config<br />
make &#038;&#038; make install<br />
cp -r server/META-INF/java/ /data/webserver/javabridge<br />
wget http://jaist.dl.sourceforge.net/project/php-java-bridge/Binary%20package/php-java-bridge_5.5.2/JavaBridge.jar<br />
cp JavaBridge.jar /data/webserver/php/lib/php/extensions/no-debug-non-zts-20060613</p></blockquote>
<blockquote><p>vi /data/webserver/php/etc/php.ini</p></blockquote>
<p>加入：</p>
<blockquote><p>
include_path = “.:/data/webserver/javabridge”<br />
extension = “java.so”<br />
[java]<br />
java.classpath=/data/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/JavaBridge.jar<br />
java.libpath=/data/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/:/usr/java/jdk1.6.0_16/bin/<br />
java.java_home=/usr/java/jdk1.6.0_16/<br />
java.java=/usr/java/jdk1.6.0_16/bin/java<br />
java.log_file=”/data/logs/php-java-bridge.log”<br />
;java.hosts = 127.0.0.1:8080<br />
java.servlet = Off ;; Off, On or User<br />
java.log_file=”/data/logs/php-java-bridge.log”<br />
java.log_level = 4 ;;调试模式，生产请改为2
</p></blockquote>
<blockquote><p>/data/webserver/php/sbin/php-fpm restart </p></blockquote>
<p>至此javabridge配置完毕。</p>
<p>测试：<br />
1.确定java已经运行 </p>
<blockquote><p>ps -ef | grep java</p></blockquote>
<p>2.php扩展开启测试 </p>
<blockquote><p>/data/webserver/php/bin/php -m | grep java</p></blockquote>
<p>3.或phpinfo.php查看</p>
<blockquote><p>vi phpinfo.php</p></blockquote>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">&lt;?php</span><span style="color: Gray;"><br /></span><span style="color: Blue;">phpinfo</span><span style="color: Olive;">()</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// phpinfo 会看到如下的 Java 信息</span><span style="color: Gray;"><br />&nbsp;<br /></span><span style="color: #ffa500;">//java</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//java support Enabled</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//java bridge 5.5.2</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//java.log_level 4 </span><span style="color: Gray;"><br />&nbsp;<br /></span><span style="color: Blue;">?&gt;</span></div></div>
<p>4.test hello</p>
<blockquote><p>cd /data/htdocs/www<br />
vi test-java-hello.php</p></blockquote>
<p>输入：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">&lt;?php</span><span style="color: Gray;"><br /></span><span style="color: Green;">require</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">JavaBridge.inc</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Green;">try</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$info</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Java</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">java.lang.String</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">hello</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Green;">echo</span><span style="color: Gray;"> </span><span style="color: #00008b;">$info</span><span style="color: Gray;">;<br /></span><span style="color: Olive;">}</span><span style="color: Gray;"><br /></span><span style="color: Green;">catch</span><span style="color: Olive;">(</span><span style="color: Blue;">Exception</span><span style="color: Gray;"> </span><span style="color: #00008b;">$e</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br /></span><span style="color: Blue;">var_dump</span><span style="color: Olive;">(</span><span style="color: #00008b;">$e</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Olive;">}</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">// </span><span style="color: Blue;">http://youwebsite.com/test-java-hello.php</span><span style="color: #ffa500;">看到hello</span><span style="color: Gray;"><br /></span><span style="color: Blue;">?&gt;</span></div></div>
<p>5.test javabridge</p>
<blockquote><p>vi test-java-bridge.php</p></blockquote>
<p>输入：
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">&lt;?php</span><span style="color: Gray;"><br /></span><span style="color: Green;">require</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">JavaBridge.inc</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: #ffa500;">// get instance of Java class java.lang.System in PHP</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$system</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Java</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">java.lang.System</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: #ffa500;">// demonstrate property access</span><span style="color: Gray;"><br /></span><span style="color: Green;">echo</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">Java version=</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$system</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getProperty</span><span style="color: Olive;">(</span><span style="color: Gray;">’</span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">version</span><span style="color: Gray;"></span><span style="color: Olive;">)</span><span style="color: Gray;"> . ‘<br />‘;<br /></span><span style="color: Green;">echo</span><span style="color: Gray;"> ‘</span><span style="color: Blue;">Java</span><span style="color: Gray;"> </span><span style="color: Blue;">vendor</span><span style="color: Gray;">=’ . </span><span style="color: #00008b;">$system</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getProperty</span><span style="color: Olive;">(</span><span style="color: Gray;">’</span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">vendor</span><span style="color: Gray;"></span><span style="color: Olive;">)</span><span style="color: Gray;"> . ‘<br />‘;<br /></span><span style="color: Green;">echo</span><span style="color: Gray;"> ‘</span><span style="color: Blue;">OS</span><span style="color: Gray;">=’ . </span><span style="color: #00008b;">$system</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getProperty</span><span style="color: Olive;">(</span><span style="color: Gray;">’</span><span style="color: Blue;">os</span><span style="color: Gray;">.</span><span style="color: Blue;">name</span><span style="color: Gray;"></span><span style="color: Olive;">)</span><span style="color: Gray;"> . ‘ ‘ .<br /></span><span style="color: #00008b;">$system</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getProperty</span><span style="color: Olive;">(</span><span style="color: Gray;">’</span><span style="color: Blue;">os</span><span style="color: Gray;">.</span><span style="color: Blue;">version</span><span style="color: Gray;"></span><span style="color: Olive;">)</span><span style="color: Gray;"> . ‘ </span><span style="color: Blue;">on</span><span style="color: Gray;"> ‘ .<br /></span><span style="color: #00008b;">$system</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getProperty</span><span style="color: Olive;">(</span><span style="color: Gray;">’</span><span style="color: Blue;">os</span><span style="color: Gray;">.</span><span style="color: Blue;">arch</span><span style="color: Gray;"></span><span style="color: Olive;">)</span><span style="color: Gray;"> . ‘ <br />‘;<br /></span><span style="color: #ffa500;">// java.util.Date example</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$formatter</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Java</span><span style="color: Olive;">(</span><span style="color: Gray;">’</span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">text</span><span style="color: Gray;">.</span><span style="color: Blue;">SimpleDateFormat</span><span style="color: Gray;">, “</span><span style="color: Blue;">EEEE</span><span style="color: Gray;">, </span><span style="color: Blue;">MMMM</span><span style="color: Gray;"> </span><span style="color: Blue;">dd</span><span style="color: Gray;">, </span><span style="color: Blue;">yyyy</span><span style="color: Gray;"> ‘</span><span style="color: Blue;">at</span><span style="color: Gray;"> </span><span style="color: Blue;">h</span><span style="color: Gray;">:</span><span style="color: Blue;">mm</span><span style="color: Gray;">:</span><span style="color: Blue;">ss</span><span style="color: Gray;"> </span><span style="color: Blue;">a</span><span style="color: Gray;"> </span><span style="color: Blue;">zzzz</span><span style="color: Gray;"></span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Green;">echo</span><span style="color: Gray;"> </span><span style="color: #00008b;">$formatter</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">format</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Java</span><span style="color: Olive;">(</span><span style="color: Gray;">’</span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">util</span><span style="color: Gray;">.</span><span style="color: Blue;">Date</span><span style="color: Gray;"></span><span style="color: Olive;">))</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: #ffa500;">//会看到：</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//Java version=1.6.0_16</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//Java vendor=Sun Microsystems Inc.</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//OS=Linux 2.6.9-67.ELsmp on i386</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">//Thursday, October 01, 2009 at 3:06:12 AM China Standard Time</span><span style="color: Gray;"><br />&nbsp;<br /></span><span style="color: Blue;">?&gt;</span></div></div>
<p>至此java和javabridge配置测试完毕，可以搭建上线偶的lucene了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ieliwb.com/linux-jdk-javabridge/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>关于建立图片服务器的构想</title>
		<link>http://www.ieliwb.com/image-server-build/</link>
		<comments>http://www.ieliwb.com/image-server-build/#comments</comments>
		<pubDate>Wed, 20 May 2009 17:40:06 +0000</pubDate>
		<dc:creator>花太香齐</dc:creator>
				<category><![CDATA[Linux/Shell/Server]]></category>
		<category><![CDATA[PHP/WEB]]></category>
		<category><![CDATA[图片服务器]]></category>

		<guid isPermaLink="false">http://www.ieliwb.com/?p=118</guid>
		<description><![CDATA[关于<a href="http://www.dbanotes.net/web/web_image_server.html">图片服务器的优化</a>基本都是采用独立的域名，使用独立的域名，不光是可以并发连接的问题，还有一个重要因素是可以避免 COOKIE 的影响。下面介绍几种方案来实现图片服务器。本人在硬件方面还是个菜鸟，不对之处请谅解！

<blockquote>
使用同步软件拷贝数据
使用ftp传递数据，php也可以操作
使用samba来共享文件夹
使用NFS来共享文件夹
使用其他专业数据存储
使用socket来post上传数据
使用curl来上传数据
AJAX、FLASH跨域上传
</blockquote>
[......]<p class='read-more'><a href='http://www.ieliwb.com/image-server-build/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>关于<a href="http://www.dbanotes.net/web/web_image_server.html">图片服务器的优化</a>基本都是采用独立的域名，使用独立的域名，不光是可以并发连接的问题，还有一个重要因素是可以避免 COOKIE 的影响。下面介绍几种方案来实现图片服务器。本人在硬件方面还是个菜鸟，不对之处请谅解！</p>
<blockquote><p>
使用同步软件拷贝数据<br />
使用ftp传递数据，php也可以操作<br />
使用samba来共享文件夹<br />
使用NFS来共享文件夹<br />
使用其他专业数据存储<br />
使用socket来post上传数据<br />
使用curl来上传数据<br />
AJAX、FLASH跨域上传
</p></blockquote>
<p><strong>共享方式</strong><br />
NFS:在图片服务器上使用NFS服务，其他服务器上绑定NFS的共享目录，目录权限是可读可写，这样来实现读写。<br />
其他的共享方式应该都差不多吧，没研究，需要的自己google。</p>
<p><strong>因为php是不能直接在不同服务器之间存取文件的，但是我们还是可以采用FTP方式远程传输，socket方式来POST文件的。</strong></p>
<p><strong>使用FTP远程传输</strong><br />
PHP是支持FTP的，给个FTP类里面，自己看着办吧，上传后调用FTP类，同步到FTP服务器中，好处是现有程序只需要在上传那段加上FTP上传就行了，坏处就是一定要支持FTP。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">&lt;?php</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">//简单测试</span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: Green;">empty</span><span style="color: Olive;">(</span><span style="color: #00008b;">$_FILES</span><span style="color: Olive;">))</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">move_uploaded_file</span><span style="color: Olive;">(</span><span style="color: #00008b;">$_FILES</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">pic</span><span style="color: #8b0000;">'</span><span style="color: Olive;">][</span><span style="color: #8b0000;">'</span><span style="color: Red;">tmp_name</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">ces.jpg</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$ftp</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">FTP</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">222.***.***.15</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">FTP用户名</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">密码</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$ftp</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">filePut</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">/D:/ieliwb/ces.jpg</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">ces.jpg</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$ftp</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">closeFtp</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">上传成功</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">//FTP操作类 @</span><span style="color: Blue;"> www.ieliwb.com</span></li>
<li><span style="color: Green;">class</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">FTP</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$conn</span><span style="color: Gray;">;</span><span style="color: #ffa500;">//连接句柄</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *构造函数</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $host,$port,$timeout,$username,$password</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">__construct</span><span style="color: Olive;">(</span><span style="color: #00008b;">$host</span><span style="color: Gray;">,</span><span style="color: #00008b;">$username</span><span style="color: Gray;">,</span><span style="color: #00008b;">$password</span><span style="color: Gray;">,</span><span style="color: #00008b;">$port</span><span style="color: Gray;"> = </span><span style="color: Maroon;">21</span><span style="color: Gray;">,</span><span style="color: #00008b;">$timeout</span><span style="color: Gray;"> = </span><span style="color: Maroon;">90</span><span style="color: Gray;">,</span><span style="color: #00008b;">$ssl_connect</span><span style="color: Gray;"> = </span><span style="color: Green;">false</span><span style="color: Gray;">,</span><span style="color: #00008b;">$pasv</span><span style="color: Gray;"> = </span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: #00008b;">$ssl_connect</span><span style="color: Gray;"> != </span><span style="color: Green;">false</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;"> = </span><span style="color: Blue;">ftp_ssl_connect</span><span style="color: Olive;">(</span><span style="color: #00008b;">$host</span><span style="color: Gray;">,</span><span style="color: #00008b;">$port</span><span style="color: Gray;">,</span><span style="color: #00008b;">$timeout</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">无法连接FTP！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Green;">else</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;"> = </span><span style="color: Blue;">ftp_connect</span><span style="color: Olive;">(</span><span style="color: #00008b;">$host</span><span style="color: Gray;">,</span><span style="color: #00008b;">$port</span><span style="color: Gray;">,</span><span style="color: #00008b;">$timeout</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">无法连接FTP！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">!@</span><span style="color: Blue;">ftp_login</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$username</span><span style="color: Gray;">,</span><span style="color: #00008b;">$password</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">用户名或密码错误！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setPasv</span><span style="color: Olive;">(</span><span style="color: #00008b;">$pasv</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp;&nbsp; </span><span style="color: #ffa500;">//默认打开被动模式</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *获取ftp文件列表</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $dir</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $all</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $isforeach 是否遍历目录</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">getList</span><span style="color: Olive;">(</span><span style="color: #00008b;">$dir</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">.</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$all</span><span style="color: Gray;"> = </span><span style="color: Green;">false</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$isforeach</span><span style="color: Gray;"> = </span><span style="color: Green;">false</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$result</span><span style="color: Gray;"> = </span><span style="color: Olive;">(</span><span style="color: #00008b;">$all</span><span style="color: Gray;"> == </span><span style="color: Green;">false</span><span style="color: Olive;">)</span><span style="color: Gray;"> ? </span><span style="color: Blue;">ftp_nlist</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$dir</span><span style="color: Olive;">)</span><span style="color: Gray;"> : </span><span style="color: Blue;">ftp_rawlist</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$dir</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: #00008b;">$isforeach</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: #00008b;">$result</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">foreach</span><span style="color: Olive;">(</span><span style="color: #00008b;">$result</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$value</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">is_dir</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: #00008b;">$dir</span><span style="color: Red;">/</span><span style="color: #00008b;">$value</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getList</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: #00008b;">$dir</span><span style="color: Red;">/</span><span style="color: #00008b;">$value</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #00008b;">$all</span><span style="color: Gray;">,</span><span style="color: #00008b;">$isforeach</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Green;">else</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$result</span><span style="color: Olive;">[]</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$value</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$result</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *获取操作系统类型</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">getSystype</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ftp_systype</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *获取文件大小</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $remote_file</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">getFilesize</span><span style="color: Olive;">(</span><span style="color: #00008b;">$remote_file</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ftp_size</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$remote_file</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *获取文件最后修改时间</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param&nbsp; $remote_file</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">getFilemdtm</span><span style="color: Olive;">(</span><span style="color: #00008b;">$remote_file</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ftp_mdtm</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$remote_file</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *改变文件属性</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $filename</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $mode</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">setChmod</span><span style="color: Olive;">(</span><span style="color: #00008b;">$filename</span><span style="color: Gray;">,</span><span style="color: #00008b;">$mode</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">function_exists</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">ftp_chmod</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span><span style="color: Blue;">ftp_chmod</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$mode</span><span style="color: Gray;">,</span><span style="color: #00008b;">$filename</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">更改属性失败！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Olive;">{</span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setSite</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">CHMOD </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$mode</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$filename</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *向服务器发送SITE命令</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $cmd</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">setSite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$cmd</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ftp_site</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$cmd</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">发送命令失败！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *请求运行一条FTP命令</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $cmd</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">setExec</span><span style="color: Olive;">(</span><span style="color: #00008b;">$cmd</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ftp_exec</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$cmd</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">发送失败！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *获取当前目录</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">getPwd</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ftp_pwd</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *返回上级目录</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">setCdup</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ftp_cdup</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *切换到指定目录</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $dir</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">setChdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$dir</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ftp_chdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$dir</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">不能改变目录！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *创建一个树目录</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $path</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@return 目录名</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">setMkdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$path</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$path_arr</span><span style="color: Gray;">&nbsp; = </span><span style="color: Blue;">explode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">/</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #00008b;">$path</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 取目录数组</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$file_name</span><span style="color: Gray;"> = </span><span style="color: Blue;">array_pop</span><span style="color: Olive;">(</span><span style="color: #00008b;">$path_arr</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 弹出文件名</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$path_div</span><span style="color: Gray;">&nbsp; = </span><span style="color: Blue;">count</span><span style="color: Olive;">(</span><span style="color: #00008b;">$path_arr</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 取层数</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Green;">foreach</span><span style="color: Olive;">(</span><span style="color: #00008b;">$path_arr</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$val</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 创建目录</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">@</span><span style="color: Blue;">ftp_chdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$val</span><span style="color: Olive;">)</span><span style="color: Gray;"> == </span><span style="color: Green;">FALSE</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @</span><span style="color: Blue;">ftp_mkdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$val</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">目录创建失败,请检查权限及路径是否正确！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @</span><span style="color: Blue;">ftp_chdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$val</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Olive;">(</span><span style="color: #00008b;">$i</span><span style="color: Gray;">=</span><span style="color: Maroon;">1</span><span style="color: Gray;">;</span><span style="color: #00008b;">$i</span><span style="color: Gray;">&lt;=</span><span style="color: #00008b;">$path_div</span><span style="color: Gray;">;</span><span style="color: #00008b;">$i</span><span style="color: Gray;">++</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 回退到根</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; @</span><span style="color: Blue;">ftp_cdup</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *删除一个目录</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $dir</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">setRmdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$dir</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ftp_rmdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$dir</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">删除失败!,请检查权限！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *重命名一个文件或目录|||||||||可以用作移动作用</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $from</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $to</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">setRename</span><span style="color: Olive;">(</span><span style="color: #00008b;">$from</span><span style="color: Gray;">,</span><span style="color: #00008b;">$to</span><span style="color: Gray;">,</span><span style="color: #00008b;">$exists</span><span style="color: Gray;"> = </span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: #00008b;">$exists</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setMkdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$to</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ftp_rename</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$from</span><span style="color: Gray;">,</span><span style="color: #00008b;">$to</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">重命名失败！请检查权限！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *删除一个文件</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $filename</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">setDelete</span><span style="color: Olive;">(</span><span style="color: #00008b;">$path</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ftp_delete</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$path</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">删除文件失败！请检查权限！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *ftp文件上传</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $remote</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $local</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $mode</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $exists</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">filePut</span><span style="color: Olive;">(</span><span style="color: #00008b;">$remote</span><span style="color: Gray;">,</span><span style="color: #00008b;">$local</span><span style="color: Gray;">,</span><span style="color: #00008b;">$mode</span><span style="color: Gray;"> = </span><span style="color: Blue;">FTP_BINARY</span><span style="color: Gray;">,</span><span style="color: #00008b;">$exists</span><span style="color: Gray;"> = </span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: #00008b;">$exists</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">setMkdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$remote</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span><span style="color: #ffa500;">//目录不存在则创建</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ftp_put</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$remote</span><span style="color: Gray;">,</span><span style="color: #00008b;">$local</span><span style="color: Gray;">,</span><span style="color: #00008b;">$mode</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *ftp文件下载</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $remote</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $local</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $mode</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">fileGet</span><span style="color: Olive;">(</span><span style="color: #00008b;">$remote</span><span style="color: Gray;">,</span><span style="color: #00008b;">$local</span><span style="color: Gray;">,</span><span style="color: #00008b;">$mode</span><span style="color: Gray;"> = </span><span style="color: Blue;">FTP_BINARY</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ftp_get</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$local</span><span style="color: Gray;">,</span><span style="color: #00008b;">$remote</span><span style="color: Gray;">,</span><span style="color: #00008b;">$mode</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *打开被动模式</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *@param $pasv</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">setPasv</span><span style="color: Olive;">(</span><span style="color: #00008b;">$pasv</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ftp_pasv</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Gray;">,</span><span style="color: #00008b;">$pasv</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">打开被动模式失败！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; *关闭连接句柄</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">closeFtp</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ftp_close</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">conn</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Green;">die</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">不能关闭！</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span><span style="color: #ffa500;">//End Class</span></li>
<li><span style="color: Blue;">?&gt;</span></li>
<li><span style="color: Gray;">&lt;form name=&quot;myform&quot; action=&quot;&quot; method=&quot;POST&quot; enctype=&quot;multipart/form-data&quot; &gt;</span></li>
<li><span style="color: Gray;">&lt;input type=&quot;file&quot; name=&quot;pic&quot; value=&quot;&quot;&gt;</span></li>
<li><span style="color: Gray;">&lt;input type=&quot;submit&quot;&gt;</span></li>
<li><span style="color: Gray;">&lt;/form&gt;</span></li></ol></div>
<p>以上只是说明如何实现图片和WEB分离的原理。在实际开发中，还要进行如：上传检测，水印，缩略图生成，冗余判断，延时间操作，图片路径记录等操作。但只要明白了原理其它的应该不在话下了吧：）</p>
<p><strong>使用socket上传</strong><br />
客户端：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">&lt;?php</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: #00008b;">$fp</span><span style="color: Gray;"> = </span><span style="color: Blue;">fsockopen</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">192.168.0.119</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Maroon;">1337</span><span style="color: Gray;">, </span><span style="color: #00008b;">$errno</span><span style="color: Gray;">, </span><span style="color: #00008b;">$errstr</span><span style="color: Gray;">, </span><span style="color: Maroon;">30</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: #00008b;">$fp</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: #00008b;">$errstr</span><span style="color: Red;"> (</span><span style="color: #00008b;">$errno</span><span style="color: Red;">)&lt;br /&gt;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">else</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$str</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">filename:aajsad.php</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">, </span><span style="color: #00008b;">$str</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">data:</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$out</span><span style="color: Gray;"> = </span><span style="color: Blue;">file_get_contents</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">jsad.php</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">, </span><span style="color: #00008b;">$out</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">dataend</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Blue;">fclose</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp;&nbsp; </span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>服务端：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">&lt;?php</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Blue;">set_time_limit</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: #00008b;">$socket</span><span style="color: Gray;"> = </span><span style="color: Blue;">socket_create</span><span style="color: Olive;">(</span><span style="color: Blue;">AF_INET</span><span style="color: Gray;">, </span><span style="color: Blue;">SOCK_STREAM</span><span style="color: Gray;">, </span><span style="color: Blue;">SOL_TCP</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Blue;">socket_bind</span><span style="color: Olive;">(</span><span style="color: #00008b;">$socket</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">192.168.0.119</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Maroon;">1337</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Blue;">socket_listen</span><span style="color: Olive;">(</span><span style="color: #00008b;">$socket</span><span style="color: Gray;">,</span><span style="color: Maroon;">5</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: #00008b;">$path</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">e:</span><span style="color: Navy;">\\</span><span style="color: Red;">web</span><span style="color: Navy;">\\</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;&nbsp;&nbsp; </span></li>
<li><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;&nbsp; </span></li>
<li><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp;&nbsp; </span></li>
<li><span style="color: #00008b;">$connection</span><span style="color: Gray;"> = </span><span style="color: Blue;">socket_accept</span><span style="color: Olive;">(</span><span style="color: #00008b;">$socket</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp;&nbsp; </span></li>
<li><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: #00008b;">$connection</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;&nbsp; </span></li>
<li><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$BufferPond</span><span style="color: Gray;"> = </span><span style="color: Green;">array</span><span style="color: Olive;">()</span><span style="color: Gray;">;&nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$buffer</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">''</span><span style="color: Gray;">;&nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Olive;">(</span><span style="color: #00008b;">$flag</span><span style="color: Gray;"> = </span><span style="color: Blue;">socket_recv</span><span style="color: Olive;">(</span><span style="color: #00008b;">$connection</span><span style="color: Gray;">, </span><span style="color: #00008b;">$buffer</span><span style="color: Gray;">, </span><span style="color: Maroon;">1024</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: #00008b;">$buffer</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">'</span><span style="color: Red;">NO DATA</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Green;">break</span><span style="color: Gray;">;&nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Green;">false</span><span style="color: Gray;"> !== </span><span style="color: Blue;">strpos</span><span style="color: Olive;">(</span><span style="color: #00008b;">$buffer</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">filename:</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$filename</span><span style="color: Gray;"> = </span><span style="color: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: #00008b;">$buffer</span><span style="color: Gray;">,</span><span style="color: Maroon;">9</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$filename</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$path</span><span style="color: Gray;">.</span><span style="color: #00008b;">$filename</span><span style="color: Gray;">;&nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$fp</span><span style="color: Gray;"> = </span><span style="color: Blue;">fopen</span><span style="color: Olive;">(</span><span style="color: #00008b;">$filename</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">wb</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">continue</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #00008b;">$buffer</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">'</span><span style="color: Red;">data:</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">continue</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #00008b;">$buffer</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">'</span><span style="color: Red;">dataend</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">break</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">,</span><span style="color: #00008b;">$buffer</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">fclose</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">socket_close</span><span style="color: Olive;">(</span><span style="color: #00008b;">$connection</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Blue;">socket_close</span><span style="color: Olive;">(</span><span style="color: #00008b;">$socket</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; </span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>curl基本基于socket的，原理同上。</p>
<p><strong>AJAX、FLASH跨域上传</strong><br />
这方面不熟，就不说了</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ieliwb.com/image-server-build/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
