<?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>扫地老僧的Blog &#187; IT</title>
	<atom:link href="http://www.doyj.com/category/it%e6%8a%80%e6%9c%af/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.doyj.com</link>
	<description>Laputa - 远方地平线，闪耀着光芒</description>
	<lastBuildDate>Thu, 10 Nov 2011 17:24:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>在线广告作弊手段一览</title>
		<link>http://www.doyj.com/2011/11/11/%e5%9c%a8%e7%ba%bf%e5%b9%bf%e5%91%8a%e4%bd%9c%e5%bc%8a%e6%89%8b%e6%ae%b5%e4%b8%80%e8%a7%88/</link>
		<comments>http://www.doyj.com/2011/11/11/%e5%9c%a8%e7%ba%bf%e5%b9%bf%e5%91%8a%e4%bd%9c%e5%bc%8a%e6%89%8b%e6%ae%b5%e4%b8%80%e8%a7%88/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 17:21:11 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[在线广告]]></category>
		<category><![CDATA[作弊]]></category>

		<guid isPermaLink="false">http://www.doyj.com/2011/11/11/%e5%9c%a8%e7%ba%bf%e5%b9%bf%e5%91%8a%e4%bd%9c%e5%bc%8a%e6%89%8b%e6%ae%b5%e4%b8%80%e8%a7%88/</guid>
		<description><![CDATA[这里提到的在线广告作弊是指媒体为了刷广告流量而进行的作弊。他们的作弊手段很多， 这里介绍常见的几种。 iframe是广告作弊最常用的技巧，就是在自己的网页上嵌入iframe, 大小为0&#215;0或1&... ]]></description>
			<content:encoded><![CDATA[<p>这里提到的在线广告作弊是指媒体为了刷广告流量而进行的作弊。他们的作弊手段很多， 这里介绍常见的几种。 </p>
<p>iframe是广告作弊最常用的技巧，就是在自己的网页上嵌入iframe, 大小为0&#215;0或1&#215;1，也就是用户不可见。通过iframe打开其他页面，在用户看不见的情况下刷流量。别看iframe简单，里面花样很多。</p>
<p><strong>页面内嵌入本站页面的iframe</strong></p>
<p>iframe打开和当前页一样的页面地址，或本站的其他页面。 这样用户的一个浏览行为，很轻松就从1个pv翻倍变成2个pv。如果嵌入iframe多点， 就能翻3倍，4倍…。 </p>
<p>但使用这个方法很容易被发现，广告投放方，通过分析UV，独立IP等很容易就发现异常。 这是很老的方法，不过还是有些网站乐此不疲。 </p>
<p><strong></strong></p>
<p><strong>两个站点间互相嵌入对方站点页面的iframe</strong></p>
<p>这是比较巧妙的作弊技巧，UV，独立IP等分析方法是不能发现异常的。 </p>
<p>&#160;</p>
<p><strong>双层iframe</strong></p>
<p>作弊的iframe为了不让人看见，大小只有0&#215;0或1&#215;1，但有些在线广告在显示时会判断浏览窗口大小，如果太小可能就不能显示。这时有些网站就采用了双层iframe技术来刷广告流量。 第一层1&#215;1大小的iframe中又嵌入一个iframe，这个第二层iframe是正常浏览窗口大小，广告代码很难发现异常。 </p>
<p>这种作弊方式使用巧妙的，会让主页面和两个iframe使用三个不同的域名，这样因为跨域的问题， 里面的js不可能得到最外层真正的页面地址， 想抓证据都抓不到。 </p>
<p>&#160;</p>
<p><strong>IP屏蔽</strong></p>
<p>有些站点在进行作弊时，会屏蔽北京，上海等大城市的访问，你从这些地区访问时，看不到他们的作弊代码，一切正常。等换用其他地方的代理访问时，你在他们页面里就能看到作弊用iframe代码。 这是因为很多IT，在线广告公司都在这些大城市，这种屏蔽让他们的作弊手段很难被同业发现。</p>
<p>&#160;</p>
<p><strong>购买垃圾流量</strong></p>
<p>现在来自iframe，木马的垃圾流量都是明码标价在卖的，可以用这些流量来刷页面，刷广告。这种也比较难以发现。 </p>
<p>&#160;</p>
<p>网站去刷流量目的往往比较复杂，一是刷广告流量，赚广告商和广告主的钱，二是为了alexa之类的排名，也有是为了给投资人看所谓的“业绩”。</p>
<p>&#160;</p>
<p>上面谈的基本都是CPM广告方式的作弊，下面说说其他的。</p>
<p>&#160;</p>
<p><strong>CPC作弊</strong></p>
<p>CPC作弊其实是很简单的，只要用iframe打开点击链接即可。</p>
<p>&#160;</p>
<p><strong>CPA作弊</strong></p>
<p>有些网站广告按CPA结算，比如注册人数等。 这种情况下，有的公司会做专门的自动注册机，保证你的注册人数疯狂上涨。</p>
<p>&#160;</p>
<p><strong>CPS作弊</strong></p>
<p>很多人感觉CPS方式是不可能作弊的，其实这也是可以的。 卖个关子，下次和大家介绍<img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.doyj.com/wp-content/uploads/2011/11/wlEmoticon-smile.png" />。</p>
<p>&#160;</p>
<p>其实大多数作弊方法通过耐心细致的分析，不难发现端倪。 但中国在线广告的作弊还是相当严重，形成这种现象的原因是蛮有意思的，和多人都探讨过， 有时间另写个博文分析。</p>
<p>&#160;</p>
<p>另：今年的北马报了半程，但膝盖受伤，没跑成，本来这是我参加北马的第10个年头，很有纪念意义，结果只能抱恨。龙舟队的队友Eric背着我的号码跑了下来，没有浪费这个号码。 </p>
<p>&#160;</p>
<p>请参看其他有关<a href="http://www.doyj.com/tag/%E9%A9%AC%E6%8B%89%E6%9D%BE/">马拉松</a>的博文。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2011/11/11/%e5%9c%a8%e7%ba%bf%e5%b9%bf%e5%91%8a%e4%bd%9c%e5%bc%8a%e6%89%8b%e6%ae%b5%e4%b8%80%e8%a7%88/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Windows Live Messenger 2011尝鲜</title>
		<link>http://www.doyj.com/2010/12/14/windows-live-messenger-2011%e5%b0%9d%e9%b2%9c/</link>
		<comments>http://www.doyj.com/2010/12/14/windows-live-messenger-2011%e5%b0%9d%e9%b2%9c/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 08:52:34 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>

		<guid isPermaLink="false">http://www.doyj.com/2010/12/14/windows-live-messenger-2011%e5%b0%9d%e9%b2%9c/</guid>
		<description><![CDATA[今天装了Windows Live 2011, 用上了Windows Live Messenger 2011。一上来显示的窗口如下： 原先的Messenger窗口被挤到右上的小角落，和右下的广告区域差不多大。而MSN中国网站的内容占据了整个界面的一半... ]]></description>
			<content:encoded><![CDATA[<p>今天装了Windows Live 2011, 用上了Windows Live Messenger 2011。一上来显示的窗口如下：</p>
<p><a href="http://www.doyj.com/wp-content/uploads/2010/12/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="windows live messeger default ui" border="0" alt="windows live messeger 默认界面" src="http://www.doyj.com/wp-content/uploads/2010/12/image_thumb.png" width="620" height="484" /></a></p>
<p>原先的Messenger窗口被挤到右上的小角落，和右下的广告区域差不多大。而MSN中国网站的内容占据了整个界面的一半以上。 好不容易找到右上角有个小按钮，把界面变回原先的界面：</p>
<p align="center"><a href="http://www.doyj.com/wp-content/uploads/2010/12/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="windows live messeger simple ui" border="0" alt="windows live messeger 简单界面" src="http://www.doyj.com/wp-content/uploads/2010/12/image_thumb1.png" width="227" height="484" /></a></p>
<p>结果在默认显示方式下，下面和messenger无关的区域占了至少1/3的界面高度。放大窗口，发现联系人的显示方式变了：</p>
<p><a href="http://www.doyj.com/wp-content/uploads/2010/12/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="windows live messeger简单界面最大化" border="0" alt="windows live messeger简单界面最大化" src="http://www.doyj.com/wp-content/uploads/2010/12/image_thumb2.png" width="644" height="404" /></a></p>
<p>联系人多列显示，这样同屏显示的联系人数量确实多了不少，但找一个人需要视线在屏幕上做“之”字来回扫描，很不习惯。</p>
<p>原先在msn（live messenger）显示的名字一直是Oldmonk，安装完新版后，发现名字变成了在微软站点填写的真名。在菜单里选择改名，居然还要去live.com网站上去改，输入一个Oldmonk做first name还不行，必须再输入个last name，只好输入“扫地”做first name，“老僧”做last name。</p>
<p>最希望添加的通话记录和hotmail帐号同步的功能还是没有添加，依然在本地保存，也就更谈不上通话记录的搜索了。</p>
<p>微软大概是想通过hotmail和msn积累起的用户量建立起类似facebook的真名为基础的sns社区，可有些画虎不成反类犬的感觉，让我也离msn渐行渐远了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/12/14/windows-live-messenger-2011%e5%b0%9d%e9%b2%9c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Git安装经验</title>
		<link>http://www.doyj.com/2010/12/13/git%e5%ae%89%e8%a3%85%e7%bb%8f%e9%aa%8c/</link>
		<comments>http://www.doyj.com/2010/12/13/git%e5%ae%89%e8%a3%85%e7%bb%8f%e9%aa%8c/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 14:53:44 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.doyj.com/2010/12/13/git%e5%ae%89%e8%a3%85%e7%bb%8f%e9%aa%8c/</guid>
		<description><![CDATA[最近安装Git服务器折腾了很多时间， 其实就卡在一些小地方。大多数git安装指南提到的东西就不说了，就记录一下卡住我的两点： git访问接口有ssh, http, git://。 刚开始找到的安装指南这几种方... ]]></description>
			<content:encoded><![CDATA[<p>最近安装Git服务器折腾了很多时间<img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Sad smile" src="http://www.doyj.com/wp-content/uploads/2010/12/wlEmoticon-sadsmile.png" />， 其实就卡在一些小地方。大多数git安装指南提到的东西就不说了，就记录一下卡住我的两点：</p>
<ol>
<li>git访问接口有ssh, http, git://。 刚开始找到的安装指南这几种方式都实现了，于是也一样画葫芦做了一遍，尤其指南中说git:// 方式最快，所以特别看重这个。实现git://协议需要在服务器安装git-daemon, 在debian用apt-get install git-daemon-run安装， 记得要开放tcp 9418 端口。 后来发现压根不需要实现全部接口，只保留一种就足够了。 其中http方式是readonly的，而git://方式需要多开放一个端口，于是只保留了ssh方式     </li>
<li>桌面是windows，用msysgit+TortoisGit。msysgit用ssh-keygen生成的密钥，需要放到msysgit安装目录下的.ssh目录下，很多安装指南上说要放到C:\Users\[用户名]\.ssh下， 耽误了我很多时间。但这个密钥只是对命令行的git有效。 TortoiseGit要用随它一起安装的Puttygen生成密钥，其中的公钥不要保存文件，而是直接从生成窗口中拷贝，追加到服务器上authorized_keys里。某个指南讲的保存公钥文件再cat 公钥文件&gt;&gt;authorized_keys的方式是行不通的。 </li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/12/13/git%e5%ae%89%e8%a3%85%e7%bb%8f%e9%aa%8c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google搜索结果预览</title>
		<link>http://www.doyj.com/2010/11/23/google%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e9%a2%84%e8%a7%88/</link>
		<comments>http://www.doyj.com/2010/11/23/google%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e9%a2%84%e8%a7%88/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 15:11:26 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.doyj.com/2010/11/23/google%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e9%a2%84%e8%a7%88/</guid>
		<description><![CDATA[刚才第一次看到Google搜索结果预览，搜索感恩节，结果的前5个都支持预览。下图红框标出来的就是预览图。让我佩服的是，预览图中加上了搜索关键词所在的段落特别强调标出，关键词用红字... ]]></description>
			<content:encoded><![CDATA[<p>刚才第一次看到Google搜索结果预览，搜索<a href="http://www.google.co.uk/search?hl=en&amp;source=hp&amp;biw=1920&amp;bih=1067&amp;q=%E6%84%9F%E6%81%A9%E8%8A%82%E5%BF%AB%E4%B9%90&amp;btnG=Google+Search&amp;aq=f&amp;aqi=&amp;aql=&amp;oq=&amp;gs_rfai=" target="_blank">感恩节</a>，结果的前5个都支持预览。下图红框标出来的就是预览图。让我佩服的是，预览图中加上了搜索关键词所在的段落特别强调标出，关键词用红字显示。</p>
<p><a href="http://www.doyj.com/wp-content/uploads/2010/11/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Google Instant Previews" border="0" alt="Google Instant Previews" src="http://www.doyj.com/wp-content/uploads/2010/11/image_thumb.png" width="644" height="412" /></a> </p>
<p>&#160;</p>
<p>通过这项技术的实现我猜google搜索技术已经实现了如下功能：</p>
<ol>
<li>索引一个关键词时，google能准确知道这个关键词在真实网页中所在的位置，大小</li>
<li>搜索爬虫能够解析javascript。 在firefox中用noscript关闭js解析，第一个搜索结果的页面中右侧是显示是完全不同的</li>
</ol>
<p>本来这就要点发布，突然才又想了想，感觉google很有可能是用webkit之类的浏览器rendering engine渲染出来的，并不能证明google爬虫就有真正完全解析html，css, js的能力。 大家认为呢？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/11/23/google%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e9%a2%84%e8%a7%88/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>服务器备份脚本</title>
		<link>http://www.doyj.com/2010/11/23/%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%a4%87%e4%bb%bd%e8%84%9a%e6%9c%ac/</link>
		<comments>http://www.doyj.com/2010/11/23/%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%a4%87%e4%bb%bd%e8%84%9a%e6%9c%ac/#comments</comments>
		<pubDate>Mon, 22 Nov 2010 16:16:09 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[备份]]></category>

		<guid isPermaLink="false">http://www.doyj.com/?p=1662</guid>
		<description><![CDATA[前些天Linode的Fremont机房出现电源事故，造成一些服务器数据丢失，给一些人造成不小的影响。 以前自己也写过简单的在线备份脚本，但功能太弱，所以后来又写了个复杂点的。这里共享现在用... ]]></description>
			<content:encoded><![CDATA[<p>前些天Linode的Fremont机房出现电源事故，造成一些服务器数据丢失，给一些人造成不小的影响。 以前自己也写过简单的<a title="在线备份" href="http://www.doyj.com/2008/06/18/%E5%9C%A8%E7%BA%BF%E5%A4%87%E4%BB%BD/">在线备份脚本</a>，但功能太弱，所以后来又写了个复杂点的。这里共享现在用的服务器备份脚本，希望对大家有用。该脚本特点如下：</p>
<ol>
<li>用php开发</li>
<li>通过sftp把指定的目录和数据库备份到指定服务器</li>
<li>备份目录时会检测目录内文件的最后修改日期，如果和上次备份一样就不会再备份</li>
<li>每个备份文件都加日期戳，备份文件名是www.20101120.tar.gz 这种。</li>
<li>备份目录时可指定剔除的文件名</li>
<li>可以设定一个备份文件的保留时间，超过这个时间就删除。还可以设定一个备份文件保留的最少分数，如果一个数据库或一个目录的备份少于这个份数，超过设定时间也不会删除。</li>
</ol>
<p>代码遵守GPL协议，请在该协议基础上随便使用。</p>
<p>因为当时是自用，而且对php不熟，所以很多地方写得并不严谨，欢迎指出。</p>
<p>下载链接是：<a href=" http://www.doyj.com/wp-content/uploads/2010/11/phpbk.zip"> http://www.doyj.com/wp-content/uploads/2010/11/phpbk.zip</a></p>
<p>下面是备份文件中最主要的phpbk.php的代码</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: #ffa500;">/*</span></li>
<li><span style="color: #ffa500;">Server Backup Script 0.1 2010/11/22</span></li>
<li><span style="color: #ffa500;">Programmer: Cui Yingjie</span></li>
<li><span style="color: #ffa500;">Email: </span><span style="color: Blue;">cuiyingjie@gmail.com</span><span style="color: #ffa500;">&nbsp;</span></li>
<li><span style="color: #ffa500;">Blog: </span><span style="color: Blue;">http://www.doyj.com</span></li>
<li><span style="color: #ffa500;">Sina microblog: </span><span style="color: Blue;">http://t.sina.com.cn/laoseng</span></li>
<li><span style="color: #ffa500;">Twitter: </span><span style="color: Blue;">http://twitter.com/</span><span style="color: #ffa500;">#!/oldmonk</span></li>
<li><span style="color: #ffa500;">&nbsp;</span></li>
<li><span style="color: #ffa500;">&nbsp;</span></li>
<li><span style="color: #ffa500;">**************************************************************</span></li>
<li><span style="color: #ffa500;">Copyright (C) 2010 Cui Yingjie</span></li>
<li><span style="color: #ffa500;">All Rights Reserved</span></li>
<li><span style="color: #ffa500;">&nbsp;</span></li>
<li><span style="color: #ffa500;">This library is free software: you can redistribute it and/or</span></li>
<li><span style="color: #ffa500;">modify it under the terms of the GNU Lesser General Public</span></li>
<li><span style="color: #ffa500;">License as published by the Free Software Foundation, either</span></li>
<li><span style="color: #ffa500;">version 3 of the License, or (at your option) any later version.</span></li>
<li><span style="color: #ffa500;">&nbsp;</span></li>
<li><span style="color: #ffa500;">This library is distributed in the hope that it will be useful,</span></li>
<li><span style="color: #ffa500;">but WITHOUT ANY WARRANTY; without even the implied warranty of</span></li>
<li><span style="color: #ffa500;">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&nbsp; See the GNU</span></li>
<li><span style="color: #ffa500;">Lesser General Public License for more details.</span></li>
<li><span style="color: #ffa500;">&nbsp;</span></li>
<li><span style="color: #ffa500;">You should have received a copy of the GNU Lesser General Public</span></li>
<li><span style="color: #ffa500;">License along with this library; If not, see &lt;</span><span style="color: Blue;">http://www.gnu.org/licenses/</span><span style="color: #ffa500;">&gt;.</span></li>
<li><span style="color: #ffa500;">*/</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">require_once</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">sftp.php</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">define</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">BKFTP_SERVER</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">www.bkserver.com</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//backup server address</span></li>
<li><span style="color: Green;">define</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">BKFTP_USER</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">bkuser</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//backup server user name</span></li>
<li><span style="color: Green;">define</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">BKFTP_PASS</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">password</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//backup server password</span></li>
<li><span style="color: Green;">define</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">BKFTP_PORT</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Maroon;">22</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//backup server port</span></li>
<li><span style="color: Green;">define</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">BKFTP_KEEPDAYS</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">60</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//backup files keep days</span></li>
<li><span style="color: Green;">define</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">BKFTP_MAXBKCOUNT</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">4</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//定义备份保留的最大个数, 当一个备份文件已经超过了设定的保留最大天数，但这个备份的数量少于最大备份个数时不删除此文件</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">load_array_dump</span><span style="color: Olive;">(</span><span style="color: #00008b;">$filename</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">unserialize</span><span style="color: Olive;">(</span><span style="color: Blue;">file_get_contents</span><span style="color: Olive;">(</span><span style="color: #00008b;">$filename</span><span style="color: Olive;">))</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;">//first char of filepath must be&nbsp; &quot;/&quot;. </span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">get_bkpath</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$filepath</span><span style="color: Gray;"> </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: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">/home/</span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: Blue;">BKFTP_USER</span><span style="color: Gray;">.</span><span style="color: #00008b;">$filepath</span><span style="color: Gray;"> ;&nbsp; &nbsp; </span><span style="color: #ffa500;">//need be changed according your server configuration. 这段是因为备份服务器的目录结构是 /home/用户名，请根据自己服务器器的情况修改,</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">save_array_dump</span><span style="color: Olive;">(</span><span style="color: #00008b;">$filename</span><span style="color: Gray;">, </span><span style="color: #00008b;">$array</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&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;">'</span><span style="color: Red;">w+</span><span style="color: #8b0000;">'</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;">I could not open </span><span style="color: #00008b;">$filename</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: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$fp</span><span style="color: Gray;">, </span><span style="color: Blue;">serialize</span><span style="color: Olive;">(</span><span style="color: #00008b;">$array</span><span style="color: Olive;">))</span><span style="color: Gray;">; </span></li>
<li><span style="color: Gray;">&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;">; </span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">nftpupload</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$srcfile</span><span style="color: Gray;">, </span><span style="color: #00008b;">$dest</span><span style="color: Gray;"> </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: Green;">try</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$ftp_dir</span><span style="color: Gray;">=</span><span style="color: #00008b;">$dest</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$filename</span><span style="color: Gray;"> = </span><span style="color: Blue;">end</span><span style="color: Olive;">(</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;">$srcfile</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">))</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//build a fully qualified (FTP) path name where the file will reside</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$destination_file</span><span style="color: Gray;">= </span><span style="color: Blue;">get_bkpath</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$ftp_dir</span><span style="color: Gray;">.</span><span style="color: #00008b;">$filename</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; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$sftp</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">SFTPConnection</span><span style="color: Olive;">(</span><span style="color: Blue;">BKFTP_SERVER</span><span style="color: Gray;">, </span><span style="color: Blue;">BKFTP_PORT</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;">$sftp</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">login</span><span style="color: Olive;">(</span><span style="color: Blue;">BKFTP_USER</span><span style="color: Gray;">, </span><span style="color: Blue;">BKFTP_PASS</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$sftp</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">uploadFile</span><span style="color: Olive;">(</span><span style="color: #00008b;">$srcfile</span><span style="color: Gray;">, </span><span style="color: #00008b;">$destination_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: Green;">catch</span><span style="color: Gray;">&nbsp;</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;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$e</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getMessage</span><span style="color: Olive;">()</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</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: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">IsFTPFileExist</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$ftpfile</span><span style="color: Gray;"> </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: Green;">try</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$sftp</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">SFTPConnection</span><span style="color: Olive;">(</span><span style="color: Blue;">BKFTP_SERVER</span><span style="color: Gray;">, </span><span style="color: Blue;">BKFTP_PORT</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;">$sftp</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">login</span><span style="color: Olive;">(</span><span style="color: Blue;">BKFTP_USER</span><span style="color: Gray;">, </span><span style="color: Blue;">BKFTP_PASS</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$filelist</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$sftp</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">scanFilesystem</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">get_bkpath</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">dirname</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$ftpfile</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </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;">in_array</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">basename</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$ftpfile</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$filelist</span><span style="color: Gray;"> </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: Green;">catch</span><span style="color: Gray;">&nbsp;</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;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$e</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getMessage</span><span style="color: Olive;">()</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</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: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">false</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: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">DeleteNDaysAgoInDirFTPFile</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$ftpdir</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$days</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$sftp</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">SFTPConnection</span><span style="color: Olive;">(</span><span style="color: Blue;">BKFTP_SERVER</span><span style="color: Gray;">, </span><span style="color: Blue;">BKFTP_PORT</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;">$sftp</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">login</span><span style="color: Olive;">(</span><span style="color: Blue;">BKFTP_USER</span><span style="color: Gray;">, </span><span style="color: Blue;">BKFTP_PASS</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$filelist</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$sftp</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">scanFilesystem</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">get_bkpath</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$ftpdir</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$ic</span><span style="color: Gray;"> = </span><span style="color: Blue;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$filelist</span><span style="color: Gray;"> </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;">$afiles</span><span style="color: Gray;"> = </span><span style="color: Green;">array</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;">for</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$i</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;"> ; </span><span style="color: #00008b;">$i</span><span style="color: Gray;"> &lt; </span><span style="color: #00008b;">$ic</span><span style="color: Gray;"> ; </span><span style="color: #00008b;">$i</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: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$afn</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;">$filelist</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$i</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;"> </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: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">count</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$afn</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> != </span><span style="color: Maroon;">4</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">continue</span><span style="color: Gray;"> ;</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: Gray;">&nbsp;</span><span style="color: Blue;">strlen</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$afn</span><span style="color: Olive;">[</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> != </span><span style="color: Maroon;">8</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">continue</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </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: Gray;"> !</span><span style="color: Green;">isset</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$afiles</span><span style="color: Olive;">[</span><span style="color: Gray;"> </span><span style="color: #00008b;">$afn</span><span style="color: Olive;">[</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;"> </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; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$afiles</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$afn</span><span style="color: Olive;">[</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;"> </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: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$afiles</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$afn</span><span style="color: Olive;">[</span><span style="color: Gray;"> </span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Olive;">][</span><span style="color: Gray;"> </span><span style="color: #00008b;">$afn</span><span style="color: Olive;">[</span><span style="color: Gray;"> </span><span style="color: Maroon;">1</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$filelist</span><span style="color: Olive;">[</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;"> ;</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></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$ic</span><span style="color: Gray;"> = </span><span style="color: Blue;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$afiles</span><span style="color: Gray;"> </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;">foreach</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp; </span><span style="color: #00008b;">$afiles</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: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</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; </span><span style="color: #00008b;">$jc</span><span style="color: Gray;"> = </span><span style="color: Blue;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$value</span><span style="color: Gray;"> </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: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$jc</span><span style="color: Gray;"> &lt; </span><span style="color: Blue;">BKFTP_MAXBKCOUNT</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">continue</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ksort</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$value</span><span style="color: Gray;"> </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: Green;">foreach</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$value</span><span style="color: Gray;"> </span><span style="color: Green;">as</span><span style="color: Gray;"> </span><span style="color: #00008b;">$date</span><span style="color: Gray;"> =&gt; </span><span style="color: #00008b;">$filepath</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</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; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$bktime</span><span style="color: Gray;"> = </span><span style="color: Blue;">strtotime</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$date</span><span style="color: Gray;"> , </span><span style="color: Maroon;">0</span><span style="color: Gray;"> , </span><span style="color: Maroon;">4</span><span style="color: Gray;"> </span><span style="color: Olive;">)</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: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$date</span><span style="color: Gray;"> , </span><span style="color: Maroon;">4</span><span style="color: Gray;"> , </span><span style="color: Maroon;">2</span><span style="color: Gray;"> </span><span style="color: Olive;">)</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: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$date</span><span style="color: Gray;"> , </span><span style="color: Maroon;">6</span><span style="color: Gray;"> , </span><span style="color: Maroon;">2</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> 00:00:00</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </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: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$bktime</span><span style="color: Gray;"> == </span><span style="color: Green;">false</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">continue</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$diff</span><span style="color: Gray;"> = </span><span style="color: Blue;">time</span><span style="color: Olive;">()</span><span style="color: Gray;"> - </span><span style="color: #00008b;">$bktime</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$diff</span><span style="color: Gray;"> &gt; </span><span style="color: Maroon;">86400</span><span style="color: Gray;"> * </span><span style="color: #00008b;">$days</span><span style="color: Gray;"> </span><span style="color: Olive;">)</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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$jc</span><span style="color: Gray;">-- ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$sftp</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">deleteFile</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">get_bkpath</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$ftpdir</span><span style="color: Gray;">.</span><span style="color: #00008b;">$filepath</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </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; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$jc</span><span style="color: Gray;"> &lt; </span><span style="color: Blue;">BKFTP_MAXBKCOUNT</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">break</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; &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; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">catch</span><span style="color: Gray;">&nbsp;</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;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$e</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">getMessage</span><span style="color: Olive;">()</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</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: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">//获取一个目录下所有文件最晚的最后修改时间</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">GetPathLastMTime</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$filepath</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$aexcludefiles</span><span style="color: Gray;"> </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: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">is_dir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$filepath</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$lmtime</span><span style="color: Gray;"> = </span><span style="color: Blue;">strtotime</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">2000-01-01 00:00:00</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </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: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #00008b;">$dh</span><span style="color: Gray;"> = </span><span style="color: Blue;">opendir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$filepath</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp;</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; </span><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">((</span><span style="color: #00008b;">$file</span><span style="color: Gray;"> = </span><span style="color: Blue;">readdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$dh</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;">&nbsp;</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; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$file</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;">$file</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: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">continue</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">in_array</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$file</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$aexcludefiles</span><span style="color: Gray;"> </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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">continue</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">is_link</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$filepath</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;">$file</span><span style="color: Gray;"> </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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">continue</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$lt1</span><span style="color: Gray;"> = </span><span style="color: Blue;">GetPathLastMTime</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$filepath</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;">$file</span><span style="color: Gray;">&nbsp; &nbsp; , </span><span style="color: #00008b;">$aexcludefiles</span><span style="color: Gray;"> </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></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$lt1</span><span style="color: Gray;"> &gt; </span><span style="color: #00008b;">$lmtime</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$lmtime</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$lt1</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; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">closedir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$dh</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></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;">$lmtime</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: Green;">else</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;">filemtime</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$filepath</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$bkdatafile</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">/backup/bkdata.dat</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> ;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//备份时用到的数据文件，会在这里保存目录的最后修改时间，用来在下次备份中做比对，看是否有被修改</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$bkdatdir</span><span style="color: Gray;">&nbsp; &nbsp;&nbsp; = </span><span style="color: #8b0000;">'</span><span style="color: Red;">/backup/tmp</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> ;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//备份用到的临时目录</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$bklogfile</span><span style="color: Gray;">&nbsp; &nbsp;&nbsp; = </span><span style="color: #8b0000;">'</span><span style="color: Red;">/backup/bk.log</span><span style="color: #8b0000;">'</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; </span><span style="color: #00008b;">$tarexclude</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">/backup/tarexclude.cfg</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> ;&nbsp; &nbsp; </span><span style="color: #ffa500;">//备份tar目录时需要剔除的文件名列表，会把日志，缓存等文件剔除掉</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$dbbkftppath</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">/backup/db/</span><span style="color: #8b0000;">'</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; </span><span style="color: #00008b;">$filebkftppath</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">/backup/</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> ;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//目录备份到备份服务器上的目录名</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">DeleteNDaysAgoInDirFTPFile</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$dbbkftppath</span><span style="color: Gray;"> , </span><span style="color: Blue;">BKFTP_KEEPDAYS</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> ;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">DeleteNDaysAgoInDirFTPFile</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$filebkftppath</span><span style="color: Gray;"> , </span><span style="color: Blue;">BKFTP_KEEPDAYS</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$aexcludefiles</span><span style="color: Gray;"> = </span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">logs</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> , </span><span style="color: #8b0000;">'</span><span style="color: Red;">nobk</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> , </span><span style="color: #8b0000;">'</span><span style="color: Red;">cache</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> , </span><span style="color: #8b0000;">'</span><span style="color: Red;">.log.gz</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> , </span><span style="color: #8b0000;">'</span><span style="color: Red;">.log</span><span style="color: #8b0000;">'</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></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$abkdb</span><span style="color: Gray;"> = </span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">user</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbadmin1</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> , </span><span style="color: #8b0000;">'</span><span style="color: Red;">pin</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbpassword1</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> , </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbname</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">'</span><span style="color: Red;">db1</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </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;">array</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">user</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbadmin2</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> , </span><span style="color: #8b0000;">'</span><span style="color: Red;">pin</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbpassword2</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> , </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbname</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">'</span><span style="color: Red;">db2</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </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;">array</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">user</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbadmin3</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> , </span><span style="color: #8b0000;">'</span><span style="color: Red;">pin</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbpassword3</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> , </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbname</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: #8b0000;">'</span><span style="color: Red;">db3</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </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><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$abkdir</span><span style="color: Gray;"> = </span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">/home/user</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> , </span><span style="color: #8b0000;">'</span><span style="color: Red;">/var/www</span><span style="color: #8b0000;">'</span><span style="color: Gray;">&nbsp; &nbsp; , </span><span style="color: #8b0000;">'</span><span style="color: Red;">/etc</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> ;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//在这个数组里放入要备份的目录路径</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$bklog</span><span style="color: Gray;"> = </span><span style="color: Blue;">fopen</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$bklogfile</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">a</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">file_exists</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$bkdatafile</span><span style="color: Gray;"> </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; &nbsp; &nbsp; </span><span style="color: #00008b;">$aLastBkTime</span><span style="color: Gray;"> = </span><span style="color: Blue;">load_array_dump</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$bkdatafile</span><span style="color: Gray;"> </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: Green;">else</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$ic</span><span style="color: Gray;"> = </span><span style="color: Blue;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$abkdir</span><span style="color: Gray;"> </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;">for</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$i</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;"> ; </span><span style="color: #00008b;">$i</span><span style="color: Gray;"> &lt; </span><span style="color: #00008b;">$ic</span><span style="color: Gray;"> ; </span><span style="color: #00008b;">$i</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: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$aLastBkTime</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$abkdir</span><span style="color: Olive;">[</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;"> </span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Blue;">strtotime</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">2000-01-01 00:00:00</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </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; </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: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$ic</span><span style="color: Gray;"> = </span><span style="color: Blue;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$abkdb</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$i</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;"> ; </span><span style="color: #00008b;">$i</span><span style="color: Gray;"> &lt; </span><span style="color: #00008b;">$ic</span><span style="color: Gray;"> ; </span><span style="color: #00008b;">$i</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; &nbsp; &nbsp; </span><span style="color: #00008b;">$sqlfile</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$bkdatdir</span><span style="color: Gray;">.</span><span style="color: #00008b;">$abkdb</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$i</span><span style="color: Gray;"> </span><span style="color: Olive;">][</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbname</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">]</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: Blue;">gmstrftime</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">%Y%m%d</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">time</span><span style="color: Olive;">())</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;">.sql</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$gzsqlfile</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$sqlfile</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;">.gz</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$ftpfile</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$dbbkftppath</span><span style="color: Gray;">.</span><span style="color: Blue;">basename</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$gzsqlfile</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </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;">&nbsp;</span><span style="color: Blue;">IsFTPFileExist</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$ftpfile</span><span style="color: Gray;"> </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: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> = </span><span style="color: Blue;">gmstrftime</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">%b %d %Y %H:%M:%S</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">time</span><span style="color: Olive;">())</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> ftp file exist </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$ftpfile</span><span style="color: Gray;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$bklog</span><span style="color: Gray;">, </span><span style="color: #00008b;">$smsg</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: Green;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">continue</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></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$cmd</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">/usr/bin/mysqldump -u</span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$abkdb</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$i</span><span style="color: Gray;"> </span><span style="color: Olive;">][</span><span style="color: Gray;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">user</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> -p</span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$abkdb</span><span style="color: Olive;">[</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;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">pin</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> -f </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$abkdb</span><span style="color: Olive;">[</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;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbname</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$sqlfile</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$sr</span><span style="color: Gray;"> = </span><span style="color: Blue;">shell_exec</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$cmd</span><span style="color: Gray;"> </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;">$smsg</span><span style="color: Gray;"> = </span><span style="color: Blue;">gmstrftime</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">%b %d %Y %H:%M:%S</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">time</span><span style="color: Olive;">())</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> backup database </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$abkdb</span><span style="color: Olive;">[</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;"> </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbname</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </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: #00008b;">$sr</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$bklog</span><span style="color: Gray;">, </span><span style="color: #00008b;">$smsg</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;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$cmd</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">/bin/gzip -9 -f </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$sqlfile</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$sr</span><span style="color: Gray;"> = </span><span style="color: Blue;">shell_exec</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$cmd</span><span style="color: Gray;"> </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;">$smsg</span><span style="color: Gray;"> = </span><span style="color: Blue;">gmstrftime</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">%b %d %Y %H:%M:%S</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">time</span><span style="color: Olive;">())</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> compress sql file </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$sqlfile</span><span style="color: Gray;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;"> </span><span style="color: #00008b;">$sr</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$bklog</span><span style="color: Gray;">, </span><span style="color: #00008b;">$smsg</span><span style="color: Gray;">&nbsp;</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;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nftpupload</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$gzsqlfile</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$dbbkftppath</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> ; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> = </span><span style="color: Blue;">gmstrftime</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">%b %d %Y %H:%M:%S</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">time</span><span style="color: Olive;">())</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> ftp upload file </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$gzsqlfile</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> to </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$dbbkftppath</span><span style="color: Gray;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$bklog</span><span style="color: Gray;">, </span><span style="color: #00008b;">$smsg</span><span style="color: Gray;">&nbsp;</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;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">unlink</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$gzsqlfile</span><span style="color: Gray;"> </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></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//备份文件</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$ic</span><span style="color: Gray;"> = </span><span style="color: Blue;">count</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$abkdir</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$i</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;"> ; </span><span style="color: #00008b;">$i</span><span style="color: Gray;"> &lt; </span><span style="color: #00008b;">$ic</span><span style="color: Gray;"> ; </span><span style="color: #00008b;">$i</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; &nbsp; &nbsp; </span><span style="color: #00008b;">$tarfile</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$bkdatdir</span><span style="color: Gray;">.</span><span style="color: Blue;">end</span><span style="color: Olive;">(</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;">$abkdir</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$i</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Olive;">))</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: Blue;">gmstrftime</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">%Y%m%d</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">time</span><span style="color: Olive;">())</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;">.tar.gz</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$ftpfile</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$filebkftppath</span><span style="color: Gray;">.</span><span style="color: Blue;">basename</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$tarfile</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </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;">&nbsp;</span><span style="color: Blue;">IsFTPFileExist</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$ftpfile</span><span style="color: Gray;"> </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: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$aLastBkTime</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$abkdir</span><span style="color: Olive;">[</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;"> </span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Blue;">time</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: #00008b;">$smsg</span><span style="color: Gray;"> = </span><span style="color: Blue;">gmstrftime</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">%b %d %Y %H:%M:%S</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">time</span><span style="color: Olive;">())</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> ftp file exist </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$ftpfile</span><span style="color: Gray;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$bklog</span><span style="color: Gray;">, </span><span style="color: #00008b;">$smsg</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: Green;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">continue</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; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> = </span><span style="color: Blue;">gmstrftime</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">%b %d %Y %H:%M:%S</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">time</span><span style="color: Olive;">())</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> check last update time </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$abkdir</span><span style="color: Olive;">[</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;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$bklog</span><span style="color: Gray;">, </span><span style="color: #00008b;">$smsg</span><span style="color: Gray;">&nbsp;</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;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$lmtime</span><span style="color: Gray;"> = </span><span style="color: Blue;">GetPathLastMTime</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$abkdir</span><span style="color: Olive;">[</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;"> , </span><span style="color: #00008b;">$aexcludefiles</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </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;">&nbsp;</span><span style="color: #00008b;">$lmtime</span><span style="color: Gray;"> &lt;= </span><span style="color: #00008b;">$aLastBkTime</span><span style="color: Olive;">[</span><span style="color: Gray;"> </span><span style="color: #00008b;">$abkdir</span><span style="color: Olive;">[</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;"> </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: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> = </span><span style="color: Blue;">gmstrftime</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">%b %d %Y %H:%M:%S</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">time</span><span style="color: Olive;">())</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> file is not changed </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$abkdir</span><span style="color: Olive;">[</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;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$bklog</span><span style="color: Gray;">, </span><span style="color: #00008b;">$smsg</span><span style="color: Gray;">&nbsp;</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: Green;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">continue</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: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&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;">$cmd</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">tar -czf </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$tarfile</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> --exclude-caches --exclude-from=</span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$tarexclude</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$abkdir</span><span style="color: Olive;">[</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;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$sr</span><span style="color: Gray;"> = </span><span style="color: Blue;">shell_exec</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$cmd</span><span style="color: Gray;"> </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;">$smsg</span><span style="color: Gray;"> = </span><span style="color: Blue;">gmstrftime</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">%b %d %Y %H:%M:%S</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">time</span><span style="color: Olive;">())</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> compress file </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$tarfile</span><span style="color: Gray;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;"> </span><span style="color: #00008b;">$sr</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$bklog</span><span style="color: Gray;">, </span><span style="color: #00008b;">$smsg</span><span style="color: Gray;">&nbsp;</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;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nftpupload</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$tarfile</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$filebkftppath</span><span style="color: Gray;">&nbsp; </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;">$smsg</span><span style="color: Gray;"> = </span><span style="color: Blue;">gmstrftime</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">%b %d %Y %H:%M:%S</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: Blue;">time</span><span style="color: Olive;">())</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> ftp upload file </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$tarfile</span><span style="color: Gray;">.</span><span style="color: #8b0000;">'</span><span style="color: Red;"> to </span><span style="color: #8b0000;">'</span><span style="color: Gray;">.</span><span style="color: #00008b;">$filebkftppath</span><span style="color: Gray;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">fwrite</span><span style="color: Olive;">(</span><span style="color: #00008b;">$bklog</span><span style="color: Gray;">, </span><span style="color: #00008b;">$smsg</span><span style="color: Gray;">&nbsp;</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;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$smsg</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$aLastBkTime</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$abkdir</span><span style="color: Olive;">[</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;"> </span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Blue;">time</span><span style="color: Olive;">()</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">unlink</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$tarfile</span><span style="color: Gray;"> </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></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">save_array_dump</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$bkdatafile</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$aLastBkTime</span><span style="color: Gray;"> </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>下面是sftp.php的内容</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: #ffa500;">//Need libssh2 libssh2-php, PECL ssh2 &gt;= 0.9.0</span></li>
<li><span style="color: Green;">class</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">SFTPConnection</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$connection</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$sftp</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</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: Green;">function</span><span style="color: Gray;"> </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;">$port</span><span style="color: Gray;">=</span><span style="color: Maroon;">22</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; &nbsp; &nbsp; </span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">connection</span><span style="color: Gray;"> = @</span><span style="color: Blue;">ssh2_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: 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: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">! </span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">connection</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">throw</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Exception</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Could not connect to </span><span style="color: #00008b;">$host</span><span style="color: Red;"> on port </span><span style="color: #00008b;">$port</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: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">login</span><span style="color: Olive;">(</span><span style="color: #00008b;">$username</span><span style="color: Gray;">, </span><span style="color: #00008b;">$password</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; &nbsp; &nbsp; </span><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: Blue;">ssh2_auth_password</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">connection</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></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">throw</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Exception</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Could not authenticate with username </span><span style="color: #00008b;">$username</span><span style="color: Red;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">and password </span><span style="color: #00008b;">$password</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;">sftp</span><span style="color: Gray;"> = @</span><span style="color: Blue;">ssh2_sftp</span><span style="color: Olive;">(</span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">connection</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: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">! </span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">sftp</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">throw</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Exception</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Could not initialize SFTP subsystem.</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: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">uploadFile</span><span style="color: Olive;">(</span><span style="color: #00008b;">$local_file</span><span style="color: Gray;">, </span><span style="color: #00008b;">$remote_file</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; &nbsp; &nbsp; </span><span style="color: #00008b;">$sconn</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">connection</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ssh2_scp_send</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$sconn</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$local_file</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$remote_file</span><span style="color: Gray;"> </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: #ffa500;">/*$sftp = $this-&gt;sftp;</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; $stream = @fopen(&quot;ssh2.sftp://$sftp$remote_file&quot;, 'w');</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; if (! $stream)</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; throw new Exception(&quot;Could not open file: $remote_file&quot;);</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; $data_to_send = @file_get_contents($local_file);</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; if ($data_to_send === false)</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; throw new Exception(&quot;Could not open local file: $local_file.&quot;);</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; if (@fwrite($stream, $data_to_send) === false)</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; throw new Exception(&quot;Could not send data from file: $local_file.&quot;);</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; @fclose($stream);*/</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">scanFilesystem</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; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$sftp</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">sftp</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$dir</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ssh2.sftp://</span><span style="color: #00008b;">$sftp$remote_file</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$tempArray</span><span style="color: Gray;"> = </span><span style="color: Green;">array</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: #00008b;">$handle</span><span style="color: Gray;"> = </span><span style="color: Blue;">opendir</span><span style="color: Olive;">(</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; &nbsp; </span><span style="color: #ffa500;">// List all the files</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">while</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: Olive;">(</span><span style="color: #00008b;">$file</span><span style="color: Gray;"> = </span><span style="color: Blue;">readdir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$handle</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; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: #00008b;">$file</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</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: #8b0000;">&quot;</span><span style="color: Red;">.</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; </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: #00008b;">$file</span><span style="color: Olive;">)){</span></li>
<li><span style="color: #ffa500;">//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $tempArray[$file] = $this-&gt;scanFilesystem(&quot;$dir/$file&quot;);</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><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></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #00008b;">$tempArray</span><span style="color: Olive;">[]</span><span style="color: Gray;">=</span><span style="color: #00008b;">$file</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; &nbsp;&nbsp; </span><span style="color: Olive;">}</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; &nbsp;&nbsp; </span><span style="color: Blue;">closedir</span><span style="color: Olive;">(</span><span style="color: #00008b;">$handle</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: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$tempArray</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: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</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: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">receiveFile</span><span style="color: Olive;">(</span><span style="color: #00008b;">$remote_file</span><span style="color: Gray;">, </span><span style="color: #00008b;">$local_file</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; &nbsp; &nbsp; </span><span style="color: Blue;">ssh2_scp_recv</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: #00008b;">$connection</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$remote_file</span><span style="color: Gray;"> , </span><span style="color: #00008b;">$local_file</span><span style="color: Gray;"> </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: #ffa500;">/*$sftp = $this-&gt;sftp;</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; $stream = @fopen(&quot;ssh2.sftp://$sftp$remote_file&quot;, 'r');</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; if (! $stream)</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; throw new Exception(&quot;Could not open file: $remote_file&quot;);</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; $contents = fread($stream, filesize(&quot;ssh2.sftp://$sftp$remote_file&quot;));&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; file_put_contents ($local_file, $contents);</span></li>
<li><span style="color: #ffa500;">&nbsp; &nbsp; &nbsp; &nbsp; @fclose($stream);*/</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </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: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">deleteFile</span><span style="color: Olive;">(</span><span style="color: #00008b;">$remote_file</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp;&nbsp; </span><span style="color: #00008b;">$sftp</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">sftp</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">unlink</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ssh2.sftp://</span><span style="color: #00008b;">$sftp$remote_file</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: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>

<li><span style="color: Gray;">?&gt;</span></li></ol></div>
<p>代码运行环境是php 5, mysql 5, 要安装libssh2-php， 没在其他环境下测试过。现在用cron每天定期运行该脚本，曾有次误删网站根目录全部内容，幸亏有前一天的备份才得以立刻恢复。照理应该再写个对应的恢复脚本，但一直犯懒没写，想等着服务器出问题再说，希望不会有这样的机会。</p>
<p>欢迎大家使用，有啥意见请多交流， 联系方式写在了代码中。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/11/23/%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%a4%87%e4%bb%bd%e8%84%9a%e6%9c%ac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>推荐个性价比很高的wifi信号覆盖方案</title>
		<link>http://www.doyj.com/2010/11/17/%e6%8e%a8%e8%8d%90%e4%b8%aa%e6%80%a7%e4%bb%b7%e6%af%94%e5%be%88%e9%ab%98%e7%9a%84wifi%e4%bf%a1%e5%8f%b7%e8%a6%86%e7%9b%96%e6%96%b9%e6%a1%88/</link>
		<comments>http://www.doyj.com/2010/11/17/%e6%8e%a8%e8%8d%90%e4%b8%aa%e6%80%a7%e4%bb%b7%e6%af%94%e5%be%88%e9%ab%98%e7%9a%84wifi%e4%bf%a1%e5%8f%b7%e8%a6%86%e7%9b%96%e6%96%b9%e6%a1%88/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 13:24:53 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[WIFI]]></category>

		<guid isPermaLink="false">http://www.doyj.com/2010/11/17/%e6%8e%a8%e8%8d%90%e4%b8%aa%e6%80%a7%e4%bb%b7%e6%af%94%e5%be%88%e9%ab%98%e7%9a%84wifi%e4%bf%a1%e5%8f%b7%e8%a6%86%e7%9b%96%e6%96%b9%e6%a1%88/</guid>
		<description><![CDATA[以前为团园做过wifi信号覆盖，但信号总是不稳定。 后来自己在家做的时候，发现还是要用wds来做效果最好，当时原生支持wds的路由还找不到，是买了linksys路由后自己刷ddwrt来做wds，效果很好，... ]]></description>
			<content:encoded><![CDATA[<p>以前为<a href="http://boxhostel.com" rel="nofollow" target="_blank">团园</a>做过<a href="http://www.doyj.com/2009/04/11/%E5%9C%A8%E5%A4%A7%E6%88%BF%E9%97%B4%E5%AE%9E%E7%8E%B0wifi%E4%BF%A1%E5%8F%B7%E8%A6%86%E7%9B%96%E7%BB%8F%E9%AA%8C%E8%B0%88/" target="_blank">wifi信号覆盖</a>，但信号总是不稳定。 后来自己在家做的时候，发现还是要用wds来做效果最好，当时原生支持wds的路由还找不到，是买了linksys路由后自己刷ddwrt来做wds，效果很好，一直用到现在。前一阵左岸说无线信号频频出问题，于是重新找方案，最终是用三个TP-LINK WR841N来做wds，效果非常好。这个路由支持802.11N制式，原厂固件就支持wds，而且信号极佳，在京东只卖143元。 在网上找到个<a href="http://hi.baidu.com/yvfish/blog/item/bdc1df5c0f7af84dfaf2c058.html" rel="nofollow" target="_blank">不错的教程</a>，按图索骥就把信号覆盖做好了。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/11/17/%e6%8e%a8%e8%8d%90%e4%b8%aa%e6%80%a7%e4%bb%b7%e6%af%94%e5%be%88%e9%ab%98%e7%9a%84wifi%e4%bf%a1%e5%8f%b7%e8%a6%86%e7%9b%96%e6%96%b9%e6%a1%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>改用围脖直播</title>
		<link>http://www.doyj.com/2010/10/23/%e6%94%b9%e7%94%a8%e5%9b%b4%e8%84%96%e7%9b%b4%e6%92%ad/</link>
		<comments>http://www.doyj.com/2010/10/23/%e6%94%b9%e7%94%a8%e5%9b%b4%e8%84%96%e7%9b%b4%e6%92%ad/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 15:42:26 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[马拉松]]></category>

		<guid isPermaLink="false">http://www.doyj.com/2010/10/23/%e6%94%b9%e7%94%a8%e5%9b%b4%e8%84%96%e7%9b%b4%e6%92%ad/</guid>
		<description><![CDATA[wordpress老死 移步围... ]]></description>
			<content:encoded><![CDATA[<p>wordpress老死</p>
<p>移步<a href="http://t.sina.com.cn/laoseng">围脖</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/10/23/%e6%94%b9%e7%94%a8%e5%9b%b4%e8%84%96%e7%9b%b4%e6%92%ad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我们小区的房地产中介市场</title>
		<link>http://www.doyj.com/2010/10/05/%e6%88%91%e4%bb%ac%e5%b0%8f%e5%8c%ba%e7%9a%84%e6%88%bf%e5%9c%b0%e4%ba%a7%e4%b8%ad%e4%bb%8b%e5%b8%82%e5%9c%ba/</link>
		<comments>http://www.doyj.com/2010/10/05/%e6%88%91%e4%bb%ac%e5%b0%8f%e5%8c%ba%e7%9a%84%e6%88%bf%e5%9c%b0%e4%ba%a7%e4%b8%ad%e4%bb%8b%e5%b8%82%e5%9c%ba/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 05:10:29 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>

		<guid isPermaLink="false">http://www.doyj.com/2010/10/05/%e6%88%91%e4%bb%ac%e5%b0%8f%e5%8c%ba%e7%9a%84%e6%88%bf%e5%9c%b0%e4%ba%a7%e4%b8%ad%e4%bb%8b%e5%b8%82%e5%9c%ba/</guid>
		<description><![CDATA[昨天去散步时发现旁边的小区14个底商里有7个是房地产中介，这才想起自己住的小区里地产中介也很多。 住的小区分南北区，我们住南区，有8栋楼，每栋都至少有1家地产中介，多的有两家，... ]]></description>
			<content:encoded><![CDATA[<p>昨天去散步时发现旁边的小区14个底商里有7个是房地产中介，这才想起自己住的小区里地产中介也很多。</p>
<p>住的小区分南北区，我们住南区，有8栋楼，每栋都至少有1家地产中介，多的有两家，整个南区应该有10家以上的中介。 曾经去过其中一家，大概有8个左右的工位，也就是职工人数在8个左右，也曾看到有的房地产中介把人拉出来在外面培训，大约10个人左右。就按每个中介8个人算，算下来我们这个小区南区的地产从业人员应该在80个，假设地产从业人员平均的人力成本在每个月5000元，那么每个月这些地产公司的人力维持费用要40万。因为小区南区实行比较严格的封闭管理，所以这些中介应该主要就是做小区南区的生意。</p>
<p>中介只能从租住和房屋买卖上赚取佣金。小区房子的租赁价格根据面积装修等在3000到1万多每月不等，取中按6000每月算。 地产中介介绍房屋租赁时，中介费一般是一个月房租，也就是做成一单租赁生意能平均得到6000， 如果单做租赁生意，每个月要做成70单才能持平，加上税收，基本的盈利，应该要100单左右，也就是说我们这个2000多户的小区，如果中介只靠租赁业务为生，大约每年要做1200单的租赁合同才能维持这么多地产中介。</p>
<p>网上查到房屋买卖地产中介的提成在1.8%-3%左右， 我们这里房子价格在150万到600来万之间，就按300万来算，提成按2.4%来算， 每单房屋买卖中介平均收入7.2万，一个月有6单房屋买卖生意就能持平，算上税收盈利应该要9单，一年下来要108单。算下来小区房子每年的换手率在5%的话，中介们就能活得不错了。 </p>
<p>我父母从80年到现在的30年内换过5次住房，而且我们家绝不是个例，在当地很有典型性。如果大家都是按这个这个速度换房，那住房的换手率摊到每年是16%， 远远超过刚才提到的5%的盈亏平衡线，这还不算我和我妹的房子。一个年轻人一般18-22岁出来工作，这时候要租房，25-30岁之间要结婚，这时要买房，27-35岁间，要生孩子，这时要换大一点的房子，等到快50的时候，他的子女又开始这个轮回，而这中间的每个换房过程都是房产中介的市场机会。 由此看来现在的房地产中介市场还是大有可为的。</p>
<p>小区在北京东三环和四环之间，位置不算特别好，距离繁华的路段都有些距离。 也看过周围的几个小区，发现地产中介也差不多一样多，看来房地产中介的火爆是北京的普遍现象。</p>
<p>小区2000多套房子养活了80个地产中介从业人员，也就是25：1，每25套房子养活一个房产中介从业人员，不知这是不是普遍及合理的比率。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/10/05/%e6%88%91%e4%bb%ac%e5%b0%8f%e5%8c%ba%e7%9a%84%e6%88%bf%e5%9c%b0%e4%ba%a7%e4%b8%ad%e4%bb%8b%e5%b8%82%e5%9c%ba/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>微软还没差到不可救药的地步</title>
		<link>http://www.doyj.com/2010/09/29/%e5%be%ae%e8%bd%af%e8%bf%98%e6%b2%a1%e5%b7%ae%e5%88%b0%e4%b8%8d%e5%8f%af%e6%95%91%e8%8d%af%e7%9a%84%e5%9c%b0%e6%ad%a5/</link>
		<comments>http://www.doyj.com/2010/09/29/%e5%be%ae%e8%bd%af%e8%bf%98%e6%b2%a1%e5%b7%ae%e5%88%b0%e4%b8%8d%e5%8f%af%e6%95%91%e8%8d%af%e7%9a%84%e5%9c%b0%e6%ad%a5/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 23:52:36 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>

		<guid isPermaLink="false">http://www.doyj.com/?p=1585</guid>
		<description><![CDATA[昨晚看着从live space迁移过去的blog还空空如也，今早起来一看原先的blog内容已经被成功导入，看来微软还没差到不可救药的地步... ]]></description>
			<content:encoded><![CDATA[<p>昨晚看着从live space迁移过去的blog还空空如也，今早起来一看原先的blog内容已经被成功导入，看来微软还没差到不可救药的地步。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/09/29/%e5%be%ae%e8%bd%af%e8%bf%98%e6%b2%a1%e5%b7%ae%e5%88%b0%e4%b8%8d%e5%8f%af%e6%95%91%e8%8d%af%e7%9a%84%e5%9c%b0%e6%ad%a5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>微软真差劲</title>
		<link>http://www.doyj.com/2010/09/28/%e5%be%ae%e8%bd%af%e7%9c%9f%e5%b7%ae%e5%8a%b2/</link>
		<comments>http://www.doyj.com/2010/09/28/%e5%be%ae%e8%bd%af%e7%9c%9f%e5%b7%ae%e5%8a%b2/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 03:20:15 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>

		<guid isPermaLink="false">http://www.doyj.com/2010/09/28/%e5%be%ae%e8%bd%af%e7%9c%9f%e5%b7%ae%e5%8a%b2/</guid>
		<description><![CDATA[早晨看到消息，说Windows Live Spaces即将关闭，要转到wordpress.com上去。 登录自己的live space，发现果然提示要upgrade，点击后按向导提示一步步下来，最后说迁移成功，说import successful, 结果到了新... ]]></description>
			<content:encoded><![CDATA[<p>早晨看到消息，说Windows Live Spaces即将关闭，要转到wordpress.com上去。 登录自己的live space，发现果然提示要upgrade，点击后按向导提示一步步下来，最后说迁移成功，说import successful, 结果到了<a href="http://oldmonk73.wordpress.com/" target="_blank">新的链接</a>一看，只有个hello world，原先的文章都没import进来，访问原先的地址已经自动跳转到新地址，也就是说原先的博文再也找不回来了。微软太让我失望了。</p>
<p>2010.9.29补充： 昨晚看着还空空如也的，今早起来一看原先的blog内容已经被成功导入，看来微软还没差到不可救药的地步。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/09/28/%e5%be%ae%e8%bd%af%e7%9c%9f%e5%b7%ae%e5%8a%b2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Google Buzz终于加上了Retweet功能</title>
		<link>http://www.doyj.com/2010/05/31/google-buzz%e7%bb%88%e4%ba%8e%e5%8a%a0%e4%b8%8a%e4%ba%86retweet%e5%8a%9f%e8%83%bd/</link>
		<comments>http://www.doyj.com/2010/05/31/google-buzz%e7%bb%88%e4%ba%8e%e5%8a%a0%e4%b8%8a%e4%ba%86retweet%e5%8a%9f%e8%83%bd/#comments</comments>
		<pubDate>Mon, 31 May 2010 05:12:51 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[推荐]]></category>
		<category><![CDATA[buzz]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.doyj.com/2010/05/31/google-buzz%e7%bb%88%e4%ba%8e%e5%8a%a0%e4%b8%8a%e4%ba%86retweet%e5%8a%9f%e8%83%bd/</guid>
		<description><![CDATA[在buzz里这个功能叫Reshar... ]]></description>
			<content:encoded><![CDATA[<p>在buzz里这个功能叫Reshare</p>
<p><a href="http://www.doyj.com/wp-content/uploads/2010/05/image1.png"><img style="display: inline; border: 0px;" title="image" src="http://www.doyj.com/wp-content/uploads/2010/05/image_thumb1.png" border="0" alt="image" width="283" height="66" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/05/31/google-buzz%e7%bb%88%e4%ba%8e%e5%8a%a0%e4%b8%8a%e4%ba%86retweet%e5%8a%9f%e8%83%bd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开始学Scala</title>
		<link>http://www.doyj.com/2010/05/31/%e5%bc%80%e5%a7%8b%e5%ad%a6scala/</link>
		<comments>http://www.doyj.com/2010/05/31/%e5%bc%80%e5%a7%8b%e5%ad%a6scala/#comments</comments>
		<pubDate>Mon, 31 May 2010 04:57:23 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://www.doyj.com/?p=1546</guid>
		<description><![CDATA[上周五才听说Scala，回来查了查，发现这个新出的语言评价还蛮高。昨天开始看Scala的资料，从现在学到的来看，Scala吸引我的有如下几个特点： 非常便捷的多线程开发 编译后运行在JVM上，速度... ]]></description>
			<content:encoded><![CDATA[<p>上周五才听说<a href="http://www.scala-lang.org/">Scala</a>，回来查了查，发现这个新出的语言评价还蛮高。昨天开始看Scala的资料，从现在学到的来看，Scala吸引我的有如下几个特点：</p>
<ul>
<li>非常便捷的多线程开发</li>
<li>编译后运行在JVM上，速度有保证</li>
<li>与Java拥有良好的互通性</li>
<li>代码相对java, C, C++比较简短，清晰易懂</li>
</ul>
<p>Scala据说是把OO和函数式编程结合的非常好，但现在还不太明白函数式编程是什么东东，正在了解中。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/05/31/%e5%bc%80%e5%a7%8b%e5%ad%a6scala/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>国米夺欧冠</title>
		<link>http://www.doyj.com/2010/05/23/%e5%9b%bd%e7%b1%b3%e5%a4%ba%e6%ac%a7%e5%86%a0/</link>
		<comments>http://www.doyj.com/2010/05/23/%e5%9b%bd%e7%b1%b3%e5%a4%ba%e6%ac%a7%e5%86%a0/#comments</comments>
		<pubDate>Sun, 23 May 2010 02:41:59 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[足球]]></category>

		<guid isPermaLink="false">http://www.doyj.com/?p=1451</guid>
		<description><![CDATA[多年来国米的投入在足球俱乐部里数一数二，可一直是扶不起的阿斗。被穆里尼奥治理两年就能克服顽疾，成为欧洲之王，可见好的领导者有多么重要。 米利托太牛，射门两次进两个球，三冠... ]]></description>
			<content:encoded><![CDATA[<ol>
<li>多年来国米的投入在足球俱乐部里数一数二，可一直是扶不起的阿斗。被穆里尼奥治理两年就能克服顽疾，成为欧洲之王，可见好的领导者有多么重要。</li>
<li>米利托太牛，射门两次进两个球，三冠三场比赛的进球全部包办。 喜欢这种身体条件并不出色，靠技术意识踢球的球员</li>
<li>好的防守也很有观赏性，对技战术要求很高，不是摆个铁桶阵就可以</li>
<li>早晨起来得知穆里尼奥确定去皇马，遗憾。感觉他的气场和皇马不太合。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/05/23/%e5%9b%bd%e7%b1%b3%e5%a4%ba%e6%ac%a7%e5%86%a0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>北京LEAD阳光志愿者</title>
		<link>http://www.doyj.com/2010/05/11/%e5%8c%97%e4%ba%aclead%e9%98%b3%e5%85%89%e5%bf%97%e6%84%bf%e8%80%85/</link>
		<comments>http://www.doyj.com/2010/05/11/%e5%8c%97%e4%ba%aclead%e9%98%b3%e5%85%89%e5%bf%97%e6%84%bf%e8%80%85/#comments</comments>
		<pubDate>Tue, 11 May 2010 07:29:29 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[阳光志愿者]]></category>

		<guid isPermaLink="false">http://www.doyj.com/?p=1434</guid>
		<description><![CDATA[要进一步了解阳光志愿者，请访问http://ygclub.org/... ]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://player.youku.com/player.php/sid/XMTcxMDk4NjA4/v.swf" /><embed type="application/x-shockwave-flash" width="480" height="400" src="http://player.youku.com/player.php/sid/XMTcxMDk4NjA4/v.swf"></embed></object></p>
<p>要进一步了解阳光志愿者，请访问<a href="http://ygclub.org/">http://ygclub.org/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/05/11/%e5%8c%97%e4%ba%aclead%e9%98%b3%e5%85%89%e5%bf%97%e6%84%bf%e8%80%85/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>奇怪的网页编码错误</title>
		<link>http://www.doyj.com/2010/03/25/%e5%a5%87%e6%80%aa%e7%9a%84%e7%bd%91%e9%a1%b5%e7%bc%96%e7%a0%81%e9%94%99%e8%af%af/</link>
		<comments>http://www.doyj.com/2010/03/25/%e5%a5%87%e6%80%aa%e7%9a%84%e7%bd%91%e9%a1%b5%e7%bc%96%e7%a0%81%e9%94%99%e8%af%af/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 04:53:56 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>

		<guid isPermaLink="false">http://www.doyj.com/2010/03/25/%e5%a5%87%e6%80%aa%e7%9a%84%e7%bd%91%e9%a1%b5%e7%bc%96%e7%a0%81%e9%94%99%e8%af%af/</guid>
		<description><![CDATA[前一阵一个中文网站换了服务器， 昨天有人反映页面都是乱码，需要手动改变encoding才可以。赶紧看了一下, 确实如此， 用Chrome, Firefox, IE都是乱码。而且手动切换encoding后再按Ctrl+F5又变回乱码... ]]></description>
			<content:encoded><![CDATA[<p>前一阵一个中文网站换了服务器， 昨天有人反映页面都是乱码，需要手动改变encoding才可以。赶紧看了一下, 确实如此， 用Chrome, Firefox, IE都是乱码。而且手动切换encoding后再按Ctrl+F5又变回乱码。查看网页源代码， 发现编码方式如下</p>
<blockquote><p><font color="#808080">&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; <strong><font color="#000000">charset=gb2312</font></strong>&quot;&gt;</font></p>
</blockquote>
<p>完全看不出任何错误。 用Firefox的插件Live HTTP Headers查看HTTP头信息，发现从服务器发过来的HTTP头里赫然包含着chartset=utf-8的信息。 到服务器上查看apache配置文件，发现下面一句：</p>
<blockquote><p>AddDefaultCharset UTF-8</p>
</blockquote>
<p>把这一句注释掉后重启服务器，一切正常了。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/03/25/%e5%a5%87%e6%80%aa%e7%9a%84%e7%bd%91%e9%a1%b5%e7%bc%96%e7%a0%81%e9%94%99%e8%af%af/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>域名终于成功转到国外</title>
		<link>http://www.doyj.com/2010/03/07/%e5%9f%9f%e5%90%8d%e7%bb%88%e4%ba%8e%e6%88%90%e5%8a%9f%e8%bd%ac%e5%88%b0%e5%9b%bd%e5%a4%96/</link>
		<comments>http://www.doyj.com/2010/03/07/%e5%9f%9f%e5%90%8d%e7%bb%88%e4%ba%8e%e6%88%90%e5%8a%9f%e8%bd%ac%e5%88%b0%e5%9b%bd%e5%a4%96/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 06:36:11 +0000</pubDate>
		<dc:creator>oldmonk</dc:creator>
				<category><![CDATA[IT]]></category>

		<guid isPermaLink="false">http://www.doyj.com/2010/03/07/%e5%9f%9f%e5%90%8d%e7%bb%88%e4%ba%8e%e6%88%90%e5%8a%9f%e8%bd%ac%e5%88%b0%e5%9b%bd%e5%a4%96/</guid>
		<description><![CDATA[当初没经验，有三个域名在国内申请的，两个在万网，一个在新网。从去年年底开始国内互联网界风声渐紧，万网新网不停提示我去做备案。可那三个站点都是英文站，挂个备案标显得不伦不... ]]></description>
			<content:encoded><![CDATA[<p>当初没经验，有三个域名在国内申请的，两个在万网，一个在新网。从去年年底开始国内互联网界风声渐紧，万网新网不停提示我去做备案。可那三个站点都是英文站，挂个备案标显得不伦不类，于是决定转移域名。在国外转移域名很简单，但在国内怎么就这么复杂，还要邮寄资料和申请书，新网还要先给传真。自己身在韩国，只好委托妹妹和老爸帮我传真和邮寄. 材料很快递上去了，可万网新网都找借口拒绝，万网居然还要我给出8年前的发票。秋树也有类似情况，最后成功转出，告知秘诀：投诉。于是也去<a href="http://reports.internic.net/cgi/registrars/problem-report.cgi">http://reports.internic.net/cgi/registrars/problem-report.cgi</a>投诉， 找到<a href="http://hugege.com/2009/06/05/hichina-complaint/" target="_blank">几个投诉范文</a>，稍微改改就交上去了，每个星期都投诉，有时两天就一次。 万网最先挺不住，把转移密码发了过来，新网因为春节耽误了一些时间，但最后也发来了密码，今天终于收到最后一个域名成功转移的确认信，前后历时一个半月，热泪盈眶中。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.doyj.com/2010/03/07/%e5%9f%9f%e5%90%8d%e7%bb%88%e4%ba%8e%e6%88%90%e5%8a%9f%e8%bd%ac%e5%88%b0%e5%9b%bd%e5%a4%96/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

