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

<channel>
	<title>零号相册 &#187; unzip</title>
	<atom:link href="http://photozero.net/tag/unzip/feed/" rel="self" type="application/rss+xml" />
	<link>http://photozero.net</link>
	<description>没事瞎写</description>
	<lastBuildDate>Sun, 22 Aug 2010 06:09:29 +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>PHP中的UNZIP（解压缩）</title>
		<link>http://photozero.net/php_function_unzip/</link>
		<comments>http://photozero.net/php_function_unzip/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 10:20:39 +0000</pubDate>
		<dc:creator>neekey</dc:creator>
				<category><![CDATA[Free Talk]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[unzip]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://photozero.net/?p=288</guid>
		<description><![CDATA[Linux系统一直对ZIP格式提供了良好的支持，在Linux系统中有unzip命令可以解压缩文件包，这对于使用SSH在Dreamhost上搭建博客的朋友是一个十分方便的功能。此外，7ZIP（推荐，开源免费）与WinRAR是... ]]></description>
			<content:encoded><![CDATA[<p>Linux系统一直对ZIP格式提供了良好的支持，在Linux系统中有unzip命令可以解压缩文件包，这对于<a href="http://photozero.net/using_dreamhost_ssh/">使用SSH在Dreamhost</a>上搭建博客的朋友是一个十分方便的功能。此外，7ZIP（推荐，开源免费）与WinRAR是常用于Win系统上的ZIP压缩/解压缩软件。在PHP中我们该如何使用压缩和解压缩功能呢？</p>
<p>上回我做了一个一键下载WP主题的插件<a href="http://photozero.net/get_theme/">Get_Theme</a>，代码核心的两部分分别是下载与解压缩。下载比较简单了，通常是用file_get_contents(FILENAME); 这函数或者用 fsockopen 函数下载即可，可解压缩部分就比较复杂点了。由于我对ZIP也算是一无所知，唯一知道的就是PHP似乎内置了对ZIP/UNZIP的支持。后来一查文档才发现，这个功能需要加载额外的DB库，并且有些主机不支持。还好网上提供了很多不需要加载库的解决方案。</p>
<p>第一次用了PHPMYADMIN里面的unzip库。如果有本地用XAMPP搭建测试平台的不妨到 phpMyAdmin/libraries 目录下，找到 unzip.lib.php，里头有个 SimpleUnzip 的UNZIP类，它的作用是将一个ZIP文件解析出一个二维数组，这个数组中每个文件又是一个数组，数组中包含了路径、文件数据、创建时间等信息，解出数组后还要根据每个文件的路径判断是否需要新建文件夹等。后来我用这个类在本地的PHP环境中测试了一下，工作得不错。但当我把它上传到Dreamhost空间进行测试的时候却出现了问题。当我从Wordpress主题站下载主题进行测试解压时，解压后的每个文件均能被正常识别、创建，但文件里的内容都是乱码。我一直不解其中原因。后来我想起7ZIP里面有个似乎可以查看压缩算法的功能，看了一下，算法好像都是 Deflate。而下面的主操作系统信息引起了我的怀疑。我在本地压缩的几个主题包的主操作系统都是 FAT ，而WP主题站下载的主题的主操作系统都是 UNIX ，可能是由于数据的存储方式不同导致了这个问题。  而后我又记起了WP自己拥有的插件升级功能，必然也需要用到UNZIP功能，在WP的文件里找了一下，终于找到了一个UNZIP类，它位于 wp-admin/includes/ 下的 class-pclzip.php 用这个 PclZip 类很容易地解析出了ZIP包的内容，同样需要进行创建文件夹、文件等操作。</p>
<p>这里说一下大概过程，假设有个$archive_files数组，里面有数个$file数组，$file里是真正的每个文件的数据，如$file[filename] 是文件名（包含文件路径，有可能是 file.php 也有可能是 /dir/file.php），$file[content]是文件数据，还有创建时间修改时间等就不列了。</p>
<p>有了文件名首先把它连上绝对路径，用file_exists()或is_dir()的函数判断路径是否存在，不存在就要创建。判断的时候还要注意有可能存在多级文件夹未创建的情况，所以应该先用 explode 函数分解成几个数组，用个for循环把每级目录都判断一遍，不存在则创建。</p>
<p>接下来就是用文件函数创建函数了。</p>
]]></content:encoded>
			<wfw:commentRss>http://photozero.net/php_function_unzip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>玩转Dreamhost的SSH</title>
		<link>http://photozero.net/using_dreamhost_ssh/</link>
		<comments>http://photozero.net/using_dreamhost_ssh/#comments</comments>
		<pubDate>Sun, 30 Dec 2007 11:56:44 +0000</pubDate>
		<dc:creator>neekey</dc:creator>
				<category><![CDATA[server]]></category>
		<category><![CDATA[discuz]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[unzip]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://zz.neekey.com/archives/70</guid>
		<description><![CDATA[许多人使用Dreamhost的空间，我也用了差不多4个月了吧，也有些关于SSH的小技巧分享一下。 许多人想在Dreamhost上安装Discuz或者是Wordpress.怎么办？还用到官网上下载来解压后一个个文件用FTP传吗... ]]></description>
			<content:encoded><![CDATA[<p>许多人使用Dreamhost的空间，我也用了差不多4个月了吧，也有些关于SSH的小技巧分享一下。</p>
<p>许多人想在Dreamhost上安装Discuz或者是Wordpress.怎么办？还用到官网上下载来解压后一个个文件用FTP传吗？太慢了。告诉你一个只要5分钟搞定的方法，用SSH。</p>
<p>什么是SSH?一句话解释就是，使用类似于DOS的代码来操作Linux服务器端。</p>
<p>Follow Me!</p>
<p>Step1.<br />
下载PUTTY这个小工具。 <a href="https://gro.clinux.org/frs/download.php/1876/putty.zip">https://gro.clinux.org/frs/download.php/1876/putty.zip</a><br />
就像使用FTP工具或者DOS一样，看到的也是黑乎乎的界面。</p>
<p>Step2.<br />
执行这个文件，它会要求你输入服务器地址，比如 delorean.dreamhost.com 选 SSH(22) 连接。</p>
<p>Step3.<br />
使用你的FTP帐号密码登入,一开始会出现“ Login As : ”的时候输入用户名，接下来输入密码，请注意，输入密码后屏幕没有反应，不要以为是没输入:) 回车后会看到欢迎界面;</p>
<p>Step4.<br />
正式开始了。<br />
首先要下载一个文件压缩包。比如Wordpress2.3.2的下载地址是<br />
<a href="http://wordpress.org/wordpress-2.3.2.zip">http://wordpress.org/wordpress-2.3.2.zip</a><br />
在这个窗口中输入<br />
wget <a href="http://wordpress.org/wordpress-2.3.2.zip">http://wordpress.org/wordpress-2.3.2.zip</a><br />
wget 就是从Web上Get一个文件的意思啦:)<br />
一切正常的话，只要几秒钟就能下载完了。这时候你在FTP的根目录就会看到这个文件包！下载一个Wordpress 1M 的压缩包几乎只要 1秒！<br />
如果你要装Discuz 或者是 Phpwind 之类的同样是这个方法，把URL改成那个文件的URL就可以了。</p>
<p>Step5.<br />
接下来是解压缩啦。用 unzip 命令,如<br />
unzip wordpress-2.3.2.zip<br />
就会将文件包里的内容解压到目录下。接下来就是自己安装了。</p>
<p>OK！短短几步，不到5分钟就弄好了Wordpress的安装！</p>
]]></content:encoded>
			<wfw:commentRss>http://photozero.net/using_dreamhost_ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

