<?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>DALLASCAO.COM</title>
	<atom:link href="http://dallascao.com/cn/feed/" rel="self" type="application/rss+xml" />
	<link>http://dallascao.com/cn</link>
	<description>英汉翻译 Dallas Cao 的网站</description>
	<lastBuildDate>Mon, 02 Apr 2012 13:17:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>php判断某个值是否为数组成员</title>
		<link>http://dallascao.com/cn/php-in_array/</link>
		<comments>http://dallascao.com/cn/php-in_array/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 13:17:22 +0000</pubDate>
		<dc:creator>Dallas Cao</dc:creator>
				<category><![CDATA[代码狂]]></category>

		<guid isPermaLink="false">http://dallascao.com/cn/?p=525</guid>
		<description><![CDATA[<p>使用 in_array 这个函数，可以用来判断某个值是否为数组成员。<br />
如果你有一个被禁的名单，如果用户属于其中之一，则踢之。你不会像我以前一样写个超长的if 判断吧吧？</p>

<div class="wp_syntax"><div class="code"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&#34;aaaa&#34;</span><span style="color: #339933;">&#124;&#124;</span><span style="color: #000088;">$a</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&#34;bbbb&#34;</span><span style="color: #339933;">&#124;&#124;</span><span style="color: #000088;">$a</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&#34;cc[......]</span></div></div><p class='read-more'><a href='http://dallascao.com/cn/php-in_array/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>使用 in_array 这个函数，可以用来判断某个值是否为数组成员。<br />
如果你有一个被禁的名单，如果用户属于其中之一，则踢之。你不会像我以前一样写个超长的if 判断吧吧？</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;aaaa&quot;</span><span style="color: #339933;">||</span><span style="color: #000088;">$a</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;bbbb&quot;</span><span style="color: #339933;">||</span><span style="color: #000088;">$a</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;ccc&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$user</span> 在被禁名单中&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>用in_array, 这样写好些：</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$exclude_array</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;aaaa&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;bbbb&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;cccc&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span><span style="color: #339933;">,</span><span style="color: #000088;">$exclude_array</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$user</span> 在被禁名单中&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<div id="crp_related"><h3>相关文章：</h3><ul><li><a href="http://dallascao.com/cn/use-cookies-to-remember/" rel="bookmark" class="crp_title">使用 cookies 记住用户上次访问的语言版本（php 代码）</a></li><li><a href="http://dallascao.com/cn/the-context-sensitive-language-versions-link/" rel="bookmark" class="crp_title">环境感知的语言版本链接</a></li><li><a href="http://dallascao.com/cn/520/" rel="bookmark" class="crp_title"></a></li><li><a href="http://dallascao.com/cn/use-of-if-fields/" rel="bookmark" class="crp_title">使用 Miscrosoft Word 的 If 域</a></li><li><a href="http://dallascao.com/cn/use-regular-expressions-in-htaccess-for-redirections/" rel="bookmark" class="crp_title">在 .htaccess 中使用正则表达式来定义转向</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://dallascao.com/cn/php-in_array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://dallascao.com/cn/520/</link>
		<comments>http://dallascao.com/cn/520/#comments</comments>
		<pubDate>Sat, 31 Mar 2012 16:26:53 +0000</pubDate>
		<dc:creator>Dallas Cao</dc:creator>
				<category><![CDATA[代码狂]]></category>

		<guid isPermaLink="false">http://dallascao.com/cn/?p=520</guid>
		<description><![CDATA[<p>class文件</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>

<div class="wp_syntax"><div class="code"><span style="color: #666666; font-style: italic;">/*--------------------------[......]</span></div></div><p class='read-more'><a href='http://dallascao.com/cn/520/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>class文件</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/*--------------------------------------------------
 | TAR/GZIP/BZIP2/ZIP ARCHIVE CLASSES 2.1
 | By Devin Doucette
 | Copyright (c) 2005 Devin Doucette
 | Email: darksnoopy@shaw.ca
 +--------------------------------------------------
 | Email bugs/suggestions to darksnoopy@shaw.ca
 +--------------------------------------------------
 | This script has been created and released under
 | the GNU GPL and is free to use and redistribute
 | only if this copyright statement is not removed
 +--------------------------------------------------*/</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> archive
<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">function</span> archive<span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span>
    <span style="color: #0000ff;">'basedir'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$name</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'prepend'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'inmemory'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'overwrite'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'recurse'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'storepaths'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'followlinks'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'level'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'method'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'sfx'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'type'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'comment'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;&quot;</span>
   <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">exclude</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">storeonly</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> set_options<span style="color: #009900;">&#40;</span><span style="color: #000088;">$options</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$options</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\/+/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\/$/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\/+/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prepend'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prepend'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prepend'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prepend'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/^(\.*\/+)+/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prepend'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prepend'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\/+/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prepend'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prepend'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\/$/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prepend'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> create_archive<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">make_list</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'inmemory'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$pwd</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getcwd</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'overwrite'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;gzip&quot;</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;bzip&quot;</span> ? <span style="color: #0000ff;">&quot;.tmp&quot;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;File <span style="color: #006699; font-weight: bold;">{$this-&gt;options['name']}</span> already exists.&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;gzip&quot;</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;bzip&quot;</span> ? <span style="color: #0000ff;">&quot;.tmp&quot;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;wb+&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
     <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">else</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not open <span style="color: #006699; font-weight: bold;">{$this-&gt;options['name']}</span> for writing.&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #b1b100;">else</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;zip&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create_zip</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not create zip file.&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;bzip&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create_tar</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not create tar file.&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create_bzip</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not create bzip2 file.&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;gzip&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create_tar</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not create tar file.&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create_gzip</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not create gzip file.&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;tar&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create_tar</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not create tar file.&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'inmemory'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;gzip&quot;</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;bzip&quot;</span><span style="color: #009900;">&#41;</span>
     <span style="color: #990000;">unlink</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;.tmp&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> add_data<span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'inmemory'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
    <span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">else</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$data</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> make_list<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">exclude</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span>
     <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">exclude</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
       <span style="color: #990000;">unset</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">storeonly</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span>
     <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">storeonly</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
       <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">unset</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">exclude</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">storeonly</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> add_files<span style="color: #009900;">&#40;</span><span style="color: #000088;">$list</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">list_files</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$list</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$current</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> exclude_files<span style="color: #009900;">&#40;</span><span style="color: #000088;">$list</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">list_files</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$list</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">exclude</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$current</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> store_files<span style="color: #009900;">&#40;</span><span style="color: #000088;">$list</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">list_files</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$list</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">storeonly</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$current</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> list_files<span style="color: #009900;">&#40;</span><span style="color: #000088;">$list</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">is_array</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$list</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$list</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$list</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">unset</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #000088;">$files</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #000088;">$pwd</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getcwd</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$list</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$current</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\\</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$current</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\/+/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$current</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\/$/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">strstr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$regex</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/([<span style="color: #000099; font-weight: bold;">\\</span>\^<span style="color: #000099; font-weight: bold;">\$</span>\.\[\]\|\(\)\?\+\{\}\/])/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\\</span>1&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$regex</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;.*&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$regex</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strstr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #990000;">strrpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">parse_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$current2</span><span style="color: #009900;">&#41;</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/^<span style="color: #006699; font-weight: bold;">{$regex}</span>$/i&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current2</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
       <span style="color: #000088;">$files</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$current2</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">unset</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$regex</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dir</span><span style="color: #339933;">,</span> <span style="color: #000088;">$temp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;dir&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">parse_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span>
      <span style="color: #000088;">$files</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$file</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">unset</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
     <span style="color: #000088;">$files</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$current</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'name2'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prepend'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span>
      <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/(\.+\/+)+/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'storepaths'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">strstr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> ?
      <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #339933;">,</span> <span style="color: #990000;">strrpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
      <span style="color: #0000ff;">'type'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #339933;">@</span><span style="color: #990000;">is_link</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'followlinks'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> ? <span style="color: #cc66cc;">2</span> <span style="color: #339933;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span>
      <span style="color: #0000ff;">'ext'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #339933;">,</span> <span style="color: #990000;">strrpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'stat'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">stat</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
       <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;other error &quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>  
&nbsp;
   <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #990000;">unset</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #990000;">usort</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$files</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;archive&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;sort_files&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #666666; font-style: italic;">//prt($files); //die;</span>
   <span style="color: #b1b100;">return</span> <span style="color: #000088;">$files</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> parse_dir<span style="color: #009900;">&#40;</span><span style="color: #000088;">$dirname</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'storepaths'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/^(\.+\/*)+$/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$dirname</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #000088;">$files</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$dirname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'name2'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prepend'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span>
     <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/(\.+\/+)+/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'storepaths'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">strstr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dirname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> ?
     <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dirname</span><span style="color: #339933;">,</span> <span style="color: #990000;">strrpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dirname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$dirname</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'type'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'stat'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">stat</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dirname</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">else</span>
    <span style="color: #000088;">$files</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">opendir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dirname</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">readdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$fullname</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dirname</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$file</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;.&quot;</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$file</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;..&quot;</span><span style="color: #009900;">&#41;</span>
     <span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fullname</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'recurse'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
      <span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">parse_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fullname</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$file2</span><span style="color: #009900;">&#41;</span>
      <span style="color: #000088;">$files</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$file2</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">@</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fullname</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
     <span style="color: #000088;">$files</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$fullname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'name2'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prepend'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span>
      <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/(\.+\/+)+/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'storepaths'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">strstr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fullname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> ?
      <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fullname</span><span style="color: #339933;">,</span> <span style="color: #990000;">strrpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fullname</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$fullname</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
      <span style="color: #0000ff;">'type'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #339933;">@</span><span style="color: #990000;">is_link</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fullname</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'followlinks'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> ? <span style="color: #cc66cc;">2</span> <span style="color: #339933;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span>
      <span style="color: #0000ff;">'ext'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #990000;">strrpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'stat'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">stat</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fullname</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #339933;">@</span><span style="color: #990000;">closedir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">return</span> <span style="color: #000088;">$files</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> sort_files<span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #339933;">,</span> <span style="color: #000088;">$b</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$b</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">5</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$b</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$b</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">strcmp</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$b</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'ext'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$b</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'ext'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">strcmp</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'ext'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$b</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'ext'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$b</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;</span> <span style="color: #000088;">$b</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> ? <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> <span style="color: #339933;">:</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">else</span>
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">strcmp</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$b</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> download_file<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'inmemory'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Can only use download_file() if archive is in memory. Redirect to file otherwise, it is faster.&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">return</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;zip&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type: application/zip&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;bzip&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type: application/x-bzip2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;gzip&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type: application/x-gzip&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">case</span> <span style="color: #0000ff;">&quot;tar&quot;</span><span style="color: #339933;">:</span>
    <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type: application/x-tar&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #000088;">$header</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Content-Disposition: attachment; filename=<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$header</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">strstr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #990000;">strrpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$header</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$header</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Length: &quot;</span> <span style="color: #339933;">.</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Transfer-Encoding: binary&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Cache-Control: no-cache, must-revalidate, max-age=60&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Expires: Sat, 01 Jan 2000 12:00:00 GMT&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">print</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> tar_file <span style="color: #000000; font-weight: bold;">extends</span> archive
<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">function</span> tar_file<span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;tar&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> create_tar<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$pwd</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getcwd</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
     <span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">99</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">154</span> <span style="color: #339933;">||</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">99</span><span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not add <span style="color: #006699; font-weight: bold;">{$path}</span><span style="color: #006699; font-weight: bold;">{$current['name2']}</span> to archive because the filename is too long.&quot;</span><span style="color: #339933;">;</span>
      <span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000088;">$block</span> <span style="color: #339933;">=</span> <span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;a100a8a8a8a12a12a8a1a100a6a2a32a32a8a8a155a12&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%07o</span>&quot;</span><span style="color: #339933;">,</span> 
     <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%07o</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%07o</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> 
     <span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%011o</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">2</span> ? <span style="color: #cc66cc;">0</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%011o</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">9</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> 
     <span style="color: #0000ff;">&quot;        &quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">2</span> ? <span style="color: #339933;">@</span><span style="color: #990000;">readlink</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;ustar &quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">,</span> 
     <span style="color: #0000ff;">&quot;Unknown&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Unknown&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$path</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$checksum</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">512</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
     <span style="color: #000088;">$checksum</span> <span style="color: #339933;">+=</span> <span style="color: #990000;">ord</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$block</span><span style="color: #339933;">,</span> <span style="color: #000088;">$i</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$checksum</span> <span style="color: #339933;">=</span> <span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;a8&quot;</span><span style="color: #339933;">,</span> <span style="color: #990000;">sprintf</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%07o</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$checksum</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$block</span> <span style="color: #339933;">=</span> <span style="color: #990000;">substr_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$block</span><span style="color: #339933;">,</span> <span style="color: #000088;">$checksum</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">148</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$block</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;rb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$block</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1048576</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
      <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">512</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
      <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">512</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">512</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #000088;">$temp</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;<span style="color: #660099; font-weight: bold;">\0</span>&quot;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not open file <span style="color: #006699; font-weight: bold;">{$current['name']}</span> for reading. It was not added.&quot;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;a1024&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> extract_files<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$pwd</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getcwd</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">open_archive</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'inmemory'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$block</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">512</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">unpack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;a100name/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1type/a100symlink/a6magic/a2temp/a32temp/a32temp/a8temp/a8temp/a155prefix/a12temp&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$block</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span>
      <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$temp</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'prefix'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$temp</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
      <span style="color: #0000ff;">'stat'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span>
       <span style="color: #cc66cc;">2</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$temp</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'mode'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
       <span style="color: #cc66cc;">4</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">octdec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'uid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
       <span style="color: #cc66cc;">5</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">octdec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'gid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
       <span style="color: #cc66cc;">7</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">octdec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'size'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
       <span style="color: #cc66cc;">9</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">octdec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'mtime'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
      <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
      <span style="color: #0000ff;">'checksum'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">octdec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'checksum'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
      <span style="color: #0000ff;">'type'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$temp</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
      <span style="color: #0000ff;">'magic'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$temp</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'magic'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
     <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'checksum'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #208080;">0x00000000</span><span style="color: #009900;">&#41;</span>
      <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'magic'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">&quot;ustar&quot;</span><span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;This script does not support extracting this type of tar file.&quot;</span><span style="color: #339933;">;</span>
      <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #000088;">$block</span> <span style="color: #339933;">=</span> <span style="color: #990000;">substr_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$block</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;        &quot;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">148</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$checksum</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">512</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
      <span style="color: #000088;">$checksum</span> <span style="color: #339933;">+=</span> <span style="color: #990000;">ord</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$block</span><span style="color: #339933;">,</span> <span style="color: #000088;">$i</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'checksum'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$checksum</span><span style="color: #009900;">&#41;</span>
      <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not extract from <span style="color: #006699; font-weight: bold;">{$this-&gt;options['name']}</span>, it is corrupt.&quot;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'inmemory'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">512</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">512</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">512</span> ? <span style="color: #cc66cc;">0</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">512</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">512</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #990000;">unset</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'checksum'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'magic'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$file</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
       <span style="color: #990000;">mkdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'overwrite'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">{$file['name']}</span> already exists.&quot;</span><span style="color: #339933;">;</span>
      <span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#123;</span>
      <span style="color: #990000;">symlink</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'symlink'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #990000;">chmod</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$new</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;wb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#123;</span>
      <span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$new</span><span style="color: #339933;">,</span> <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">512</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">512</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">512</span> ? <span style="color: #cc66cc;">0</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">512</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">512</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$new</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #990000;">chmod</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #b1b100;">else</span>
     <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not open <span style="color: #006699; font-weight: bold;">{$file['name']}</span> for writing.&quot;</span><span style="color: #339933;">;</span>
      <span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #990000;">chown</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">chgrp</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">touch</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">9</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">unset</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #b1b100;">else</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not open file <span style="color: #006699; font-weight: bold;">{$this-&gt;options['name']}</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> open_archive<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">return</span> <span style="color: #339933;">@</span><span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;rb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> gzip_file <span style="color: #000000; font-weight: bold;">extends</span> tar_file
<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">function</span> gzip_file<span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">tar_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;gzip&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> create_gzip<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'inmemory'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$pwd</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getcwd</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">gzopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;wb<span style="color: #006699; font-weight: bold;">{$this-&gt;options['level']}</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #990000;">fseek</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1048576</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
      <span style="color: #990000;">gzwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">gzclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not open <span style="color: #006699; font-weight: bold;">{$this-&gt;options['name']}</span> for writing.&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #b1b100;">else</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span> <span style="color: #339933;">=</span> <span style="color: #990000;">gzencode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'level'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> open_archive<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">return</span> <span style="color: #339933;">@</span><span style="color: #990000;">gzopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;rb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> bzip_file <span style="color: #000000; font-weight: bold;">extends</span> tar_file
<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">function</span> bzip_file<span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">tar_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;bzip&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> create_bzip<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'inmemory'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$pwd</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getcwd</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">bzopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;wb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #990000;">fseek</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1048576</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
      <span style="color: #990000;">bzwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">bzclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not open <span style="color: #006699; font-weight: bold;">{$this-&gt;options['name']}</span> for writing.&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #b1b100;">else</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span> <span style="color: #339933;">=</span> <span style="color: #990000;">bzcompress</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'level'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> open_archive<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">return</span> <span style="color: #339933;">@</span><span style="color: #990000;">bzopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;rb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> zip_file <span style="color: #000000; font-weight: bold;">extends</span> archive
<span style="color: #009900;">&#123;</span>
<span style="color: #000000; font-weight: bold;">function</span> zip_file<span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">archive</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;zip&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> create_zip<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$files</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$offset</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$central</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'sfx'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'sfx'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;rb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #990000;">filesize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'sfx'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$offset</span> <span style="color: #339933;">+=</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">unset</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not open sfx module from <span style="color: #006699; font-weight: bold;">{$this-&gt;options['sfx']}</span>.&quot;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #000088;">$pwd</span> <span style="color: #339933;">=</span> <span style="color: #990000;">getcwd</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'basedir'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
     <span style="color: #b1b100;">continue</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$timedate</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">,</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Y n j G i s&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">9</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$timedate</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$timedate</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1980</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">25</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$timedate</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">21</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$timedate</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">16</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span>
     <span style="color: #009900;">&#40;</span><span style="color: #000088;">$timedate</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">11</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$timedate</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$timedate</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$block</span> <span style="color: #339933;">=</span> <span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VvvvV&quot;</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x04034b50</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x000A</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> ? <span style="color: #208080;">0x0000</span> <span style="color: #339933;">:</span> <span style="color: #208080;">0x0008</span><span style="color: #339933;">,</span> <span style="color: #000088;">$timedate</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$block</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VVVvv&quot;</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$block</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$block</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$central</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VvvvvVVVVvvvvvVV&quot;</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x02014b50</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0014</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> ? <span style="color: #208080;">0x0000</span> <span style="color: #339933;">:</span> <span style="color: #208080;">0x000A</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span>
      <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> ? <span style="color: #208080;">0x0000</span> <span style="color: #339933;">:</span> <span style="color: #208080;">0x0008</span><span style="color: #339933;">,</span> <span style="color: #000088;">$timedate</span><span style="color: #339933;">,</span>
      <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">5</span> ? <span style="color: #208080;">0x00000010</span> <span style="color: #339933;">:</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #000088;">$offset</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$central</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$files</span><span style="color: #339933;">++;</span>
     <span style="color: #000088;">$offset</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">31</span> <span style="color: #339933;">+</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$block</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VVVvv&quot;</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$block</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$block</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$central</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VvvvvVVVVvvvvvVV&quot;</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x02014b50</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0014</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> ? <span style="color: #208080;">0x0000</span> <span style="color: #339933;">:</span> <span style="color: #208080;">0x000A</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span>
      <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> ? <span style="color: #208080;">0x0000</span> <span style="color: #339933;">:</span> <span style="color: #208080;">0x0008</span><span style="color: #339933;">,</span> <span style="color: #000088;">$timedate</span><span style="color: #339933;">,</span>
      <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">5</span> ? <span style="color: #208080;">0x00000010</span> <span style="color: #339933;">:</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #000088;">$offset</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$central</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$files</span><span style="color: #339933;">++;</span>
     <span style="color: #000088;">$offset</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">30</span> <span style="color: #339933;">+</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;rb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">fread</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$crc32</span> <span style="color: #339933;">=</span> <span style="color: #990000;">crc32</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
     <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">gzcompress</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'level'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$size</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">6</span><span style="color: #339933;">;</span>
      <span style="color: #000088;">$temp</span> <span style="color: #339933;">=</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span> <span style="color: #000088;">$size</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #b1b100;">else</span>
      <span style="color: #000088;">$size</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$block</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VVVvv&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$crc32</span><span style="color: #339933;">,</span> <span style="color: #000088;">$size</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$block</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$block</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #990000;">unset</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$temp</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$central</span> <span style="color: #339933;">.=</span> <span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VvvvvVVVVvvvvvVV&quot;</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x02014b50</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0014</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span> ? <span style="color: #208080;">0x0000</span> <span style="color: #339933;">:</span> <span style="color: #208080;">0x000A</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span>
      <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'method'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> ? <span style="color: #208080;">0x0000</span> <span style="color: #339933;">:</span> <span style="color: #208080;">0x0008</span><span style="color: #339933;">,</span> <span style="color: #000088;">$timedate</span><span style="color: #339933;">,</span>
      <span style="color: #000088;">$crc32</span><span style="color: #339933;">,</span> <span style="color: #000088;">$size</span><span style="color: #339933;">,</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x00000000</span><span style="color: #339933;">,</span> <span style="color: #000088;">$offset</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$central</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$files</span><span style="color: #339933;">++;</span>
     <span style="color: #000088;">$offset</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">30</span> <span style="color: #339933;">+</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name2'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$size</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">error</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Could not open file <span style="color: #006699; font-weight: bold;">{$current['name']}</span> for reading. It was not added.&quot;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$central</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">pack</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VvvvvVVv&quot;</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x06054b50</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #208080;">0x0000</span><span style="color: #339933;">,</span> <span style="color: #000088;">$files</span><span style="color: #339933;">,</span> <span style="color: #000088;">$files</span><span style="color: #339933;">,</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$central</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$offset</span><span style="color: #339933;">,</span>
    <span style="color: #339933;">!</span><span style="color: #990000;">empty</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'comment'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'comment'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #208080;">0x0000</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'comment'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_data</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">options</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'comment'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #990000;">chdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pwd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>&#8212;&#8212;&#8212;&#8212;</p>
<p>例子</p>
<p>&#8212;&#8212;&#8212;-</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//TAR/GZIP/BZIP2/ZIP ARCHIVE CLASSES Examples</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Examples of Compression:</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//The following example creates a gzipped tar file:</span>
<span style="color: #666666; font-style: italic;">// Assume the following script is executing in /var/www/htdocs/test</span>
<span style="color: #666666; font-style: italic;">// Create a new gzip file test.tgz in htdocs/test</span>
<span style="color: #000088;">$test</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> gzip_file<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;htdocs/test/test.tgz&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Set basedir to &quot;../..&quot;, which translates to /var/www</span>
<span style="color: #666666; font-style: italic;">// Overwrite /var/www/htdocs/test/test.tgz if it already exists</span>
<span style="color: #666666; font-style: italic;">// Set compression level to 1 (lowest)</span>
<span style="color: #666666; font-style: italic;">//$test-&gt;set_options(array('basedir' =&gt; &quot;../..&quot;, 'overwrite' =&gt; 1, 'level' =&gt; 1));</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set_options</span><span style="color: #009900;">&#40;</span>
<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
<span style="color: #0000ff;">'basedir'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$modpath</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'inmemory'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">//不在内存压缩.而是直接存放到磁盘.如果要压缩下载,则可以选择为1</span>
<span style="color: #0000ff;">'recurse'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">//是否压缩子目录，resurse，递归的意思？</span>
<span style="color: #0000ff;">'storepaths'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">//是否存储目录结构，我选是。</span>
<span style="color: #0000ff;">'overwrite'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">//是否覆盖</span>
<span style="color: #0000ff;">'level'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">5</span> <span style="color: #339933;">,</span><span style="color: #666666; font-style: italic;">//压缩比</span>
<span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$zipFileName</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">//压缩最后生成的文件名，无需再次设置。这里是为了解说方便才放上来的。</span>
<span style="color: #0000ff;">'prepend'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">//未知</span>
<span style="color: #0000ff;">'followlinks'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">//未知</span>
<span style="color: #0000ff;">'method'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">//未知</span>
<span style="color: #0000ff;">'sfx'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">//不知道什么意思</span>
<span style="color: #0000ff;">'type'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;zip&quot;</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">//是zip还是tar...,无需设置，这里为了方便解说。放上来。</span>
<span style="color: #0000ff;">'comment'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;&quot;</span>
<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Add entire htdocs directory and all subdirectories</span>
<span style="color: #666666; font-style: italic;">// Add all php files in htsdocs and its subdirectories</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_files</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;htdocs&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;htsdocs/*.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Exclude all jpg files in htdocs and its subdirectories</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">exclude_files</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;htdocs/*.jpg&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Create /var/www/htdocs/test/test.tgz</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create_archive</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Check for errors (you can check for errors at any point)</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">errors</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Errors occurred.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Process errors here</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//The following example creates a zip file:</span>
<span style="color: #666666; font-style: italic;">// Create new zip file in the directory below the current one</span>
<span style="color: #000088;">$test</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> zip_file<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;../example.zip&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// All files added will be relative to the directory in which the script is </span>
<span style="color: #666666; font-style: italic;">//    executing since no basedir is set.</span>
<span style="color: #666666; font-style: italic;">// Create archive in memory</span>
<span style="color: #666666; font-style: italic;">// Do not recurse through subdirectories</span>
<span style="color: #666666; font-style: italic;">// Do not store file paths in archive</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set_options</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'inmemory'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'recurse'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'storepaths'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Add lib/archive.php to archive</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_files</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;src/archive.php&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Add all jpegs and gifs in the images directory to archive</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add_files</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;images/*.jp*g&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;images/*.gif&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Store all exe files in bin without compression</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">store_files</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;bin/*.exe&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Create archive in memory</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create_archive</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Send archive to user for download</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">download_file</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Examples of Decompression:</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//The following example extracts a bzipped tar file:</span>
<span style="color: #666666; font-style: italic;">// Open test.tbz2</span>
<span style="color: #000088;">$test</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> bzip_file<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test.tbz2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Overwrite existing files</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set_options</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'overwrite'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Extract contents of archive to disk</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">extract_files</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//The following example extracts a tar file:</span>
<span style="color: #666666; font-style: italic;">// Open archives/test.tar</span>
<span style="color: #000088;">$test</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> tar_file<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;archives/test.tar&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Extract in memory</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set_options</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'inmemory'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Extract archive to memory</span>
<span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">extract_files</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Write out the name and size of each file extracted</span>
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">files</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span>
<span style="color: #b1b100;">print</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;File &quot;</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; is &quot;</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'stat'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">7</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; bytes<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<div id="crp_related"><h3>相关文章：</h3><ul><li><a href="http://dallascao.com/cn/use-cookies-to-remember/" rel="bookmark" class="crp_title">使用 cookies 记住用户上次访问的语言版本（php 代码）</a></li><li><a href="http://dallascao.com/cn/plaintext/" rel="bookmark" class="crp_title">PlainText 1.10</a></li><li><a href="http://dallascao.com/cn/use-regular-expressions-in-htaccess-for-redirections/" rel="bookmark" class="crp_title">在 .htaccess 中使用正则表达式来定义转向</a></li><li><a href="http://dallascao.com/cn/%e7%82%b9%e5%87%bb%e5%8d%95%e5%85%83%e6%a0%bc%e5%8f%98%e8%89%b2%e7%9a%84%e4%bb%a3%e7%a0%81/" rel="bookmark" class="crp_title">点击单元格变色的代码</a></li><li><a href="http://dallascao.com/cn/windows-mobile-wm-opvenvpn/" rel="bookmark" class="crp_title">Windows Mobile (wm) 可用的OpvenVPN客户端</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://dallascao.com/cn/520/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql 错误处理</title>
		<link>http://dallascao.com/cn/mysql-error-handle/</link>
		<comments>http://dallascao.com/cn/mysql-error-handle/#comments</comments>
		<pubDate>Sat, 31 Mar 2012 05:41:42 +0000</pubDate>
		<dc:creator>Dallas Cao</dc:creator>
				<category><![CDATA[代码狂]]></category>

		<guid isPermaLink="false">http://dallascao.com/cn/?p=516</guid>
		<description><![CDATA[<p>网上的例子经常使用die()来处理mysql错误：即显示错误内容并中止程序。其实这样做是有一定危险的，尤其是代码中有敏感内容的时候，如密码，api 吗等。如果mysql出错，用户就有可能获得这些敏感内容。</p>
<p>而且作为一个用于生产的成品，这样相当地用户不友好。可以用mysql_errno()，对不同错误[......]</p><p class='read-more'><a href='http://dallascao.com/cn/mysql-error-handle/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>网上的例子经常使用die()来处理mysql错误：即显示错误内容并中止程序。其实这样做是有一定危险的，尤其是代码中有敏感内容的时候，如密码，api 吗等。如果mysql出错，用户就有可能获得这些敏感内容。</p>
<p>而且作为一个用于生产的成品，这样相当地用户不友好。可以用mysql_errno()，对不同错误进行处理：</p>
<p>$error_message = mysql_error();</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;INSERT INTO the_itemsordered (
orderref,
product,
quantity,
test,
date)
VALUES(
'&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$OrderReference</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;',
'&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$OrderProductNames</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;',
'&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$Quantity</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;',
'&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$OrderIsTest</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;',
CURRENT_TIMESTAMP )&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$error_no</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_errno</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$error_message</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_error</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$error_no</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//出错</span>
<span style="color: #666666; font-style: italic;">//bla bla</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<div id="crp_related"><h3>相关文章：</h3><ul><li><a href="http://dallascao.com/cn/change-your-php-and-mysql-timezone/" rel="bookmark" class="crp_title">修改php和mysql的时区</a></li><li><a href="http://dallascao.com/cn/use-cookies-to-remember/" rel="bookmark" class="crp_title">使用 cookies 记住用户上次访问的语言版本（php 代码）</a></li><li><a href="http://dallascao.com/cn/520/" rel="bookmark" class="crp_title"></a></li><li><a href="http://dallascao.com/cn/use-of-if-fields/" rel="bookmark" class="crp_title">使用 Miscrosoft Word 的 If 域</a></li><li><a href="http://dallascao.com/cn/the-context-sensitive-language-versions-link/" rel="bookmark" class="crp_title">环境感知的语言版本链接</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://dallascao.com/cn/mysql-error-handle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>喜欢BudgetVM处理宕机的方式</title>
		<link>http://dallascao.com/cn/like-budgetvm/</link>
		<comments>http://dallascao.com/cn/like-budgetvm/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 03:08:53 +0000</pubDate>
		<dc:creator>Dallas Cao</dc:creator>
				<category><![CDATA[全球互联网]]></category>

		<guid isPermaLink="false">http://dallascao.com/cn/?p=504</guid>
		<description><![CDATA[<p>其实我说我不喜欢折腾，那是在撒谎。年纪一大把了，有时候还会没日没夜地瞎折腾。前段时间虚拟主机出现问题，情急之中，买了<a href="http://www.enzu.com/account/aff.php?aff=184">budgtvm</a>的 vps，玩起了linux，重装了两三次系统，乐此不疲。</p>
<p><a href="http://www.enzu.com/account/aff.php?aff=184">budgetvm</a>的机器一直很稳定，几个星期来，用monitor.us监控，图上的线像死人的心电图一样平稳。不过[......]</p><p class='read-more'><a href='http://dallascao.com/cn/like-budgetvm/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>其实我说我不喜欢折腾，那是在撒谎。年纪一大把了，有时候还会没日没夜地瞎折腾。前段时间虚拟主机出现问题，情急之中，买了<a href="http://www.enzu.com/account/aff.php?aff=184">budgtvm</a>的 vps，玩起了linux，重装了两三次系统，乐此不疲。</p>
<p><a href="http://www.enzu.com/account/aff.php?aff=184">budgetvm</a>的机器一直很稳定，几个星期来，用monitor.us监控，图上的线像死人的心电图一样平稳。不过昨天开始出现访问速度慢，ping掉包的问题。有意思的是，budgetvm的vps稳定的时候，我天天琢磨着换个服务商。这次出了问题，看到了他们处理的问题的方式，我反而决定不换了。</p>
<p>出了问题后我提交了小票，今天早上收到回答，当然不算是很快。但回信的Nick友好而诚恳，先解释了原因，然后保证说他们正在十分努力地解决问题，几个小时后就会彻底解决问题，而且还给了我半个月的补偿！</p>
<p>vps也好，主机也好，还是国外的靠谱些，他们没有QQ客服，也没有群，一般也不会有24小时的实时帮助，不用中文，国人用起来觉得不习惯。但是，以下几个关键国内vps提供商是没法比的。</p>
<p>1. 说不超卖，就不超卖（看各人如何定义超卖了）。一个服务器到达了一定承载力，宁愿暂时歇业，也不再放新客户。一般情况下别期望国人有如此强的原则性。</p>
<p>2. 论技术能力，总得来讲，还是老美有经验和实力。</p>
<p>3. 属于自己的硬件。</p>
<p>4. 出现宕机等问题承诺有补偿，就会补偿。</p>
<p>无论国内还是国外，指望一出问题就立即得到回应和解决都是不现实的。当然国内人力便宜，一般会有在线QQ听你抱怨一下，给你点心理安慰。国外很少会有能得到实时回应的情况，都要先提交小票的。</p>
<p>&nbsp;</p>
<div id="crp_related"><h3>相关文章：</h3><ul><li><a href="http://dallascao.com/cn/some-good-vps-providers/" rel="bookmark" class="crp_title">几个靠谱的vps提供商</a></li><li><a href="http://dallascao.com/cn/%e5%ad%b5%e8%9b%8b%e5%99%a8%e8%af%b4%e6%98%8e%e4%b9%a6/" rel="bookmark" class="crp_title">孵蛋器说明书</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://dallascao.com/cn/like-budgetvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>几个靠谱的vps提供商</title>
		<link>http://dallascao.com/cn/some-good-vps-providers/</link>
		<comments>http://dallascao.com/cn/some-good-vps-providers/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 16:42:38 +0000</pubDate>
		<dc:creator>Dallas Cao</dc:creator>
				<category><![CDATA[全球互联网]]></category>

		<guid isPermaLink="false">http://dallascao.com/cn/?p=496</guid>
		<description><![CDATA[<p>研究了几天，感觉比较靠谱的vps供应商有：</p>
<p>1. <a title="budgetvm" href="http://www.enzu.com/account/aff.php?aff=184">http://budgetvm.com/</a></p>
<p>公司形象有点土气，不够酷，还搞了个老土的our mission什么的。我用的就是他们洛杉矶的服务器</p>
<p>价格便宜；服务反应速度中等；稳定性优秀，用monitor.us观察了很长时间，图表像死人的心电图一样，不带跳[......]</p><p class='read-more'><a href='http://dallascao.com/cn/some-good-vps-providers/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>研究了几天，感觉比较靠谱的vps供应商有：</p>
<p>1. <a title="budgetvm" href="http://www.enzu.com/account/aff.php?aff=184">http://budgetvm.com/</a></p>
<p>公司形象有点土气，不够酷，还搞了个老土的our mission什么的。我用的就是他们洛杉矶的服务器</p>
<p>价格便宜；服务反应速度中等；稳定性优秀，用monitor.us观察了很长时间，图表像死人的心电图一样，不带跳的；la的硬件不好，探针测试各项指标倒数第一。不过，稳定就好，我很满意。</p>
<p>2. <a href="http://ramhost.us/">http://ramhost.us/</a></p>
<p>口碑好，连续多次在lowendbox.com最佳vps评选中获得第一。从网上的记录来看，网站站长不够友好，急了会骂人，一些他觉得的滥用的客户，可能直接给你删除没商量。这个服务商的独特之处是公布各个服务器的各项监控记录，同时公布pingdom.com对其各服务器的监控记录，你可以看到服务器的真实情况，确定服务器没有超卖，还可以看到他们的服务器历史在线率。买他的服务器，即使是最便宜的15美元一年的vps (tinyvz.com)，心里也踏实。</p>
<p>3. <a href="http://www.evorack.com">http://www.evorack.com</a></p>
<p>国外评价也比较高。可惜只有伦敦机房，国内访问速度一般。特点是服务特别专业到位，网站文字及客服都让你觉得自己像个贵客，恨不能一口一个亲字。跟ramhost.us及homezz.com的东哥形成鲜明对比。</p>
<p>4. <a href="http://www.leaseweb.com/">http://www.leaseweb.com</a></p>
<p>这可是个建于上个世纪90年代初的老古董级公司。价格也合理，leaseweb提供低价独服（35欧元一个月）。网上的口碑不错，不过骂的人也不在少数。wikipedia的服务器就在它那。我需要独服的话就找它。机房在荷兰阿姆斯特丹，国内访问速度一般。</p>
<p>再加两个</p>
<p>5. <a href="http://prgmr.com/">http://prgmr.com</a> ，网标题都是用文本符号堆成的，副标题是：“我们不假设你是小白。”</p>
<p>创始时间：2005</p>
<p>虚拟技术：Xen</p>
<p>操作系统：Linux</p>
<p>入门套餐：$5/月 64M RAM+512M swap, 1.5GB 空间，10G流量</p>
<p>服务器位置：未知</p>
<p>据说店主是个出过多本书的技术高人，感觉值得托付。</p>
<p>6. <a href="https://hostigation.com/">https://hostigation.com/</a></p>
<p>首页就一句话：欢迎，我们以疯颠颠的价格提供疯颠颠的套餐，疯了！</p>
<p>创始时间：2006，lowendbox优秀vps前几名。</p>
<p>虚拟技术：KVM, OpenVZ, 独立主机</p>
<p>操作系统：Linux</p>
<p>入门套餐：KVM $30/年，128M RAM, 10G空间，500G流量<br />
OpenVZ $20/年，128/256M RAM, 10G空间，500GB流量</p>
<p>服务器位置：Charlotte（北卡，美国东南），LA（美国西海岸）</p>
<p>欢迎添加。</p>
<div id="crp_related"><h3>相关文章：</h3><ul><li><a href="http://dallascao.com/cn/like-budgetvm/" rel="bookmark" class="crp_title">喜欢BudgetVM处理宕机的方式</a></li><li><a href="http://dallascao.com/cn/friendfeedtranslate/" rel="bookmark" class="crp_title">friendfeedTranslate：将所有语言译成一种语言</a></li><li><a href="http://dallascao.com/cn/520/" rel="bookmark" class="crp_title"></a></li><li><a href="http://dallascao.com/cn/two-translation-mistakes-in-cpanel/" rel="bookmark" class="crp_title">中文版 cpanel 中的两个翻译错误</a></li><li><a href="http://dallascao.com/cn/is-facebook-hacked-by-its-chinese-translator/" rel="bookmark" class="crp_title">facebook 被翻译给黑了？</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://dallascao.com/cn/some-good-vps-providers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>孵蛋器说明书</title>
		<link>http://dallascao.com/cn/%e5%ad%b5%e8%9b%8b%e5%99%a8%e8%af%b4%e6%98%8e%e4%b9%a6/</link>
		<comments>http://dallascao.com/cn/%e5%ad%b5%e8%9b%8b%e5%99%a8%e8%af%b4%e6%98%8e%e4%b9%a6/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 11:07:08 +0000</pubDate>
		<dc:creator>Dallas Cao</dc:creator>
				<category><![CDATA[疯狂的中国]]></category>

		<guid isPermaLink="false">http://dallascao.com/cn/?p=493</guid>
		<description><![CDATA[<p>本店6枚孵化器大30%，原来的普通鸡蛋可以孵化6个，现在的9个，放2层就是15个，元宝鸡，绿壳鸡、山鸡、鸽子可以孵化12-15个，放2层的话可以21-27个，鹌鹑的蛋可以15-18个，2层就是27-33个。随时有蛋随时放进去孵化（用笔写上日期便于区别）</p>
<p>&#160;</p>
<p><span style="color: #000000;"><span style="color: #000000;">注意：如孵化鸟蛋类小型蛋请提前告[......]</span></span></p><p class='read-more'><a href='http://dallascao.com/cn/%e5%ad%b5%e8%9b%8b%e5%99%a8%e8%af%b4%e6%98%8e%e4%b9%a6/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>本店6枚孵化器大30%，原来的普通鸡蛋可以孵化6个，现在的9个，放2层就是15个，元宝鸡，绿壳鸡、山鸡、鸽子可以孵化12-15个，放2层的话可以21-27个，鹌鹑的蛋可以15-18个，2层就是27-33个。随时有蛋随时放进去孵化（用笔写上日期便于区别）</p>
<p>&nbsp;</p>
<p><span style="color: #000000;"><span style="color: #000000;">注意：如孵化鸟蛋类小型蛋请提前告知，会配备鸟蛋转轴（两根），不事先告知的，均不配送。</span></span></p>
<p align="left">
<p align="left">一、概述 本孵化器主要用于鸡、鸭、鹅等种蛋进行孵化，通过对温度及孵化时间的设定可用于不同种类种蛋的孵化。仪器采用智能化的控制方式，具有自动恒温、自动翻蛋、自动加湿功能，具有使用方便，安全可靠的特点，可广泛用于各类实验室进行种蛋的孵化。</p>
<p align="left">二、参数 1、电源电压：220（1<span style="font-family: Times New Roman;">±</span>10%）V , 50Hz 2、消耗功率：＜20W 3、工作温度：10-35<span style="font-family: Times New Roman;">℃</span> 4、环境湿度：10-70%RH 5、温稳范围：26.0-42.0<span style="font-family: Times New Roman;">℃</span> 6、恒温精度：<span style="font-family: Times New Roman;">±</span>0.1<span style="font-family: Times New Roman;">℃</span> 7、分辨率：<span style="font-family: Times New Roman;">±</span>0.1<span style="font-family: Times New Roman;">℃</span> 8、定时时间：0-60天 9、单次孵化数量：9只 10、来电保持</p>
<p align="left">三、使用方法 1、放蛋 将选好的种蛋放置于孵化器内，每隔内可放置2枚种蛋，盖好透明罩。 2、孵化时间和温度调节 插上电源，仪器显示当前温度值。 <span style="font-family: Times New Roman;">①</span>时间设定: 按住<span style="font-family: Times New Roman;">“</span>设置/确认<span style="font-family: Times New Roman;">”</span>键三秒不放，仪器显示的十位数闪烁，此时按动<span style="font-family: Times New Roman;">“∧”</span>或<span style="font-family: Times New Roman;">“∨</span>键数码管0-6变化，按一下<span style="font-family: Times New Roman;">“</span>设置/确认<span style="font-family: Times New Roman;">”</span>键闪烁位移到个位，按<span style="font-family: Times New Roman;">“∧”</span>或<span style="font-family: Times New Roman;">“∨”</span>键数码管0-9变化，个位调节完毕后再按一下<span style="font-family: Times New Roman;">“</span>设置/确认<span style="font-family: Times New Roman;">”</span>键，转入温度设定状态。根据不同种类孵化时间的需要进行1<span style="font-family: Times New Roman;">—</span>60天任意设定。 <span style="font-family: Times New Roman;">②</span>温度设定：当时间天数设定完成后自动转到温度设定状态，此时百位数闪烁，此时按动<span style="font-family: Times New Roman;">“∧”</span>或<span style="font-family: Times New Roman;">“∨</span>键数码管2-4变化，按一下<span style="font-family: Times New Roman;">“</span>设置/确认<span style="font-family: Times New Roman;">”</span>键闪烁位移到十位，此时按动<span style="font-family: Times New Roman;">“∧”</span>或<span style="font-family: Times New Roman;">“∨</span>键数码管0-9变化，按一下<span style="font-family: Times New Roman;">“</span>设置/确认<span style="font-family: Times New Roman;">”</span>键闪烁位移到个位，此时按动<span style="font-family: Times New Roman;">“∧”</span>或<span style="font-family: Times New Roman;">“∨</span>键数码管0-9变化，个位温度调节完毕后再按一下<span style="font-family: Times New Roman;">“</span>设置/确认<span style="font-family: Times New Roman;">”</span>键，温度设定完成。根据不同种类孵化温度的需要进行26.0<span style="font-family: Times New Roman;">—</span>42.0度任意设定。 <span style="font-family: Times New Roman;">③</span>当时间和温度设定完成后，仪器自动进入正常工作状态，工作指示灯闪烁发光，显示窗数码管显示当前温度值。 注意:A当进入时间天数或温度设置时,而手动无操作约十秒钟左右自动转入工作状态。 B只有当<span style="font-family: Times New Roman;">①</span>和<span style="font-family: Times New Roman;">②</span>设定步骤全部完成后时间和温度设置才有效。否则设置无效。 <span style="font-family: Times New Roman;">④</span>在正常孵化期间按<span style="font-family: Times New Roman;">“</span>设置/确认<span style="font-family: Times New Roman;">”</span>键还可对设置温度和天数进行查看。 <span style="font-family: Times New Roman;">⑤</span>在正常孵化期间按<span style="font-family: Times New Roman;">“∧”</span>键还可对运行倒计时天数进行查看。 如遇中途停电，等来电后时间保持为停电时运行的数据（即来电保持）,仪器自动进入工作状态。 3、自动报警 当设定的时间工作运行结束后数码管显示<span style="font-family: Times New Roman;">“</span>E<span style="font-family: Times New Roman;">”</span>，同时发出声音报警。 4、湿度控制 为保障蛋胚的正常发育，孵化期孵化器内要保持一定的湿度，因此内部储水盒内每隔几天要加一次水，储水盒在孵化器侧面，可直接观察到储水盒内的水位，孵化时应保持储水盒内有水，仪器会将湿度自动控制在合适的范围内。 5、翻蛋 蛋架每隔三个小时会自动翻蛋一次，将蛋种翻转180度左右，以保证禽蛋受热均匀，避免胚盘与内壳膜粘连导致死胚。孵化器会在出雏前三天自动停止翻蛋。 6、照蛋 入孵第五天起每隔几天就可以将蛋取出，对着强光观察胚胎在蛋内发育的变化，剔除没有受精的蛋，注意时间不要太长和在温度过高或过低的环境中进行。（具体参照后文介绍） 7、雏后的使用 出雏前三天，可将蛋从蛋框中取出，将蛋平放在孵化器内，以便于出雏后有一定的活动空间，为使幼雏能更好的适应孵化器外的温度，可将它们继续放在孵化器内，直到它们可以适应室外的温度（视当时温度而定）。 四、孵化常识 1、种蛋的选择及保存 种蛋品质的好坏直接影响出雏率的高低，也关系到育雏的成活率，所以选择种蛋必须注意以下事项： 1）种蛋必须新鲜，一般是产蛋后10内的受精蛋最好。春季保存种蛋不宜超过7-10天，夏季不宜超过5天，保存种蛋最适宜的温度为10-15度，新鲜蛋表面有一层粉状物覆盖，色泽鲜艳。 2）鸡蛋重量一般在55-60克，鸭蛋一般在80-90克，鹅蛋一般在160-200克为宜，蛋壳要求无斑点、无裂纹、破皮、麻皮、薄皮、厚皮等现象。 2、孵化禽蛋的基本条件 1）、温度：适宜的温度是孵化的首要条件，鸡蛋的温度保持在37.6度为宜。 2）、湿度：湿度对家禽的胚胎发育也有很大的作用，本产品已设计好合适有湿度，只需要在水盒内注入自来水就可以了。 3）通风：胚胎的发育要不断<span style="font-family: Times New Roman;">“</span>呼吸<span style="font-family: Times New Roman;">”</span>氧气，在孵化箱内有一只小风扇就是用来通风换气的。 4）、翻蛋：是将种蛋定时翻动，经常变换位置使其受热均匀，有利于胚胎发育。如不定时翻蛋，或时间间隔太久，胚盘就会与内壳膜粘在一起，入孵的胚胎就有致死的危险。 3、种蛋孵化效果的检查照蛋 1）一般照日蛋日期（见下表） 验蛋日期</p>
<p align="left">种蛋温度第一次第二次第三次 鸡37.6 5天11天19天 鸭37.2-37.8 7天13天26天 鹅37-37.6 8天15天28天 2）照蛋方法 照蛋时，在一张黑纸上开个小洞（比蛋稍小一点）左手拿纸，右手中食指拿蛋的两端，将种蛋尽量紧靠纸孔，对着强光观察蛋胚的发育情况。观察时，右手中指轻轻转动种蛋检查，照蛋过程要做到轻/快/准，防止种蛋破损，并及时检出死胚蛋。 第一次验蛋：主要检查种蛋的受精情况，挑出无精蛋、散黄蛋和死精蛋。如果是正常的受精蛋（活胚蛋），其胚蛋和卵黄囊血管网可以看到血管均匀分布，颜色发红，蛋黄下沉。胚胎眼球内大量黑色素沉积，照蛋可见黑色眼珠，无精蛋的蛋黄悬于中线内，无精蛋没有发育，蛋体透明度大，有时隐约可见蛋黄浮动暗影。散黄蛋在验蛋时一般看不到血管。不规则形状的蛋黄飘悬于蛋有中线附近。死胚蛋则蛋内物混浊，颜色发黑，看不到正常的血管。 第二次验蛋：发育良好的胚胎变大，血管满布蛋内，气室大而边界分明。尿囊已经合扰并包围蛋的所有内容物，蛋的小端血管满布蛋内，谷称<span style="font-family: Times New Roman;">“</span>合扰<span style="font-family: Times New Roman;">”</span>。若是死蛋，在验蛋时可见蛋内显出黑影，周围见不到血管，或血管模糊，蛋内物混浊，颜色发黄。 第三次验蛋：以小端对准光源，发育良好的胚胎体形更大，蛋内为胚胎所充满，看不到光亮的部分，若是死胚蛋内血管模糊不清，靠近气室的部分发黄，蛋内物与气室的界限不明显。 4、照蛋示意图 1）不可孵化 2）正常孵化（见图二） 5、出雏后的管理 刚出壳的幼禽24小时以内可以不用喂食，目的是让它们消化道产生一定的抵抗力，之后可以喂一些玉米粉和小米之类的细小食物和清洁水，如当时的气温比较低，可将出如雏的幼禽继续放在孵化器内继续饲养，直到它们的羽毛长全。 6、各种家禽的孵化期 鸡21天 鸭28天  鹅31天 五、注意事项 1、仪器具有断电记忆数据功能，当仪器在正常工作中遇停电时，可自动保存当前工作状态。在来电时继续工作（当长时间断电时注意检查蛋的孵化情况），在工作状态中如需要恢复到初始化工作状态时，则重新设置。 2、每次使用完毕应将内部蛋壳等清理干净，并将储水盒内残留水倒掉。 3、当室温较低时可将孵化器放置于外包装盒内，以增加恒温效果。 4、仪器应放置于干燥，无阳光直射地方。 5、长期不使用仪器应每隔三个月左右取出通电一小时以上，以保持内部电路工作正常。</p>
<p align="left">附：家禽胚胎不同胎龄发育的外部特征 胎龄主要特征 鸡鸭鹅 2 2 2出现血管,前羊膜开始发育 3 4 5眼开始色素沉着,出现四肢的原基 4 5 5肉眼可明显看到尿囊 7 7 8出现口腔 9 10 12背后出现绒毛,喙开成 10 13 14尿囊合拢 13 15 15眼皮达到瞳孔,头覆盖初级绒毛 14 15 18胚胎整个覆盖羽毛 15 18 22眼皮合闭 16-18 21 23蛋白全被利用它 19 23 24-26蛋黄开始被吸收,眼开始睁开</p>
<p>&nbsp;</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td colspan="7" width="436"><span style="color: #000000;">鸟禽孵化参数</span></td>
</tr>
<tr>
<td rowspan="2" width="59"><span style="color: #000000;">鸟禽名称</span></td>
<td rowspan="2" width="53"><span style="color: #000000;">孵出天数</span></td>
<td colspan="2" width="133"><span style="color: #000000;">孵化期</span></td>
<td colspan="2" width="132"><span style="color: #000000;">出雏期</span></td>
<td width="59"><span style="color: #000000;">种蛋重量</span></td>
</tr>
<tr>
<td width="77"><span style="color: #000000;">温度<span style="font-family: Times New Roman;">±</span>0.5<span style="font-family: Times New Roman;">℃</span></span></td>
<td width="56"><span style="color: #000000;">湿度％</span></td>
<td width="77"><span style="color: #000000;">温度<span style="font-family: Times New Roman;">±</span>0.5<span style="font-family: Times New Roman;">℃</span></span></td>
<td width="55"><span style="color: #000000;">湿度％</span></td>
<td width="59"><span style="color: #000000;">克</span></td>
</tr>
<tr>
<td width="59"><span style="color: #000000;">鸡</span></td>
<td width="53"><span style="color: #000000;">21</span></td>
<td width="77"><span style="color: #000000;">37.6 （宠物超人的说明书上注的是37.8)</span></td>
<td width="56"><span style="color: #000000;">55-70</span></td>
<td width="77"><span style="color: #000000;">37.5</span></td>
<td width="55"><span style="color: #000000;">65-85</span></td>
<td width="59"><span style="color: #000000;">50-60</span></td>
</tr>
<tr>
<td width="59"><span style="color: #000000;">孔雀</span></td>
<td width="53"><span style="color: #000000;">28</span></td>
<td width="77"><span style="color: #000000;">37.6</span></td>
<td width="56"><span style="color: #000000;">60-75</span></td>
<td width="77"><span style="color: #000000;">37.3</span></td>
<td width="55"><span style="color: #000000;">65-85</span></td>
<td width="59"><span style="color: #000000;">100-120</span></td>
</tr>
<tr>
<td width="59"><span style="color: #000000;">火鸡</span></td>
<td width="53"><span style="color: #000000;">28</span></td>
<td width="77"><span style="color: #000000;">37.6</span></td>
<td width="56"><span style="color: #000000;">60-75</span></td>
<td width="77"><span style="color: #000000;">37.2</span></td>
<td width="55"><span style="color: #000000;">65-85</span></td>
<td width="59"><span style="color: #000000;">75-80</span></td>
</tr>
<tr>
<td width="59"><span style="color: #000000;">鸭</span></td>
<td width="53"><span style="color: #000000;">28</span></td>
<td width="77"><span style="color: #000000;">37.8</span></td>
<td width="56"><span style="color: #000000;">60-75</span></td>
<td width="77"><span style="color: #000000;">37.3</span></td>
<td width="55"><span style="color: #000000;">65-85</span></td>
<td width="59"><span style="color: #000000;">80-100</span></td>
</tr>
<tr>
<td width="59"><span style="color: #000000;">鹅</span></td>
<td width="53"><span style="color: #000000;">30</span></td>
<td width="77"><span style="color: #000000;">37.6</span></td>
<td width="56"><span style="color: #000000;">65-80</span></td>
<td width="77"><span style="color: #000000;">37.1</span></td>
<td width="55"><span style="color: #000000;">65-85</span></td>
<td width="59"><span style="color: #000000;">100-120</span></td>
</tr>
<tr>
<td width="59"><span style="color: #000000;">鸽子</span></td>
<td width="53"><span style="color: #000000;">18</span></td>
<td width="77"><span style="color: #000000;">38</span></td>
<td width="56"><span style="color: #000000;">55-70</span></td>
<td width="77"><span style="color: #000000;">37.8</span></td>
<td width="55"><span style="color: #000000;">65-85</span></td>
<td width="59"><span style="color: #000000;">30-40</span></td>
</tr>
<tr>
<td width="59"><span style="color: #000000;">山鸡</span></td>
<td width="53"><span style="color: #000000;">24</span></td>
<td width="77"><span style="color: #000000;">37.8</span></td>
<td width="56"><span style="color: #000000;">55-70</span></td>
<td width="77"><span style="color: #000000;">37.7</span></td>
<td width="55"><span style="color: #000000;">65-85</span></td>
<td width="59"><span style="color: #000000;">30-40</span></td>
</tr>
<tr>
<td width="59"><span style="color: #000000;">土鸡</span></td>
<td width="53"><span style="color: #000000;">21</span></td>
<td width="77"><span style="color: #000000;">37.6</span></td>
<td width="56"><span style="color: #000000;">55-70</span></td>
<td width="77"><span style="color: #000000;">37.5</span></td>
<td width="55"><span style="color: #000000;">65-85</span></td>
<td width="59"><span style="color: #000000;">45-55</span></td>
</tr>
</tbody>
</table>
<p align="left">
<p align="left">
<p>&nbsp;</p>
<div id="crp_related"><h3>相关文章：</h3><ul><li><a href="http://dallascao.com/cn/interview-moving-beyond-%e2%80%9cgarbage-in-garbage-out%e2%80%9d-translations/" rel="bookmark" class="crp_title">采访：超越“垃圾进、垃圾出”的翻译</a></li><li><a href="http://dallascao.com/cn/google-dictionary-for-word-gd4word/" rel="bookmark" class="crp_title">Google Dictionary for Word</a></li><li><a href="http://dallascao.com/cn/advertising-gt4t-on-proz-com/" rel="bookmark" class="crp_title">在 proz.com 上做 GT4T 广告</a></li><li><a href="http://dallascao.com/cn/google-discovered-uninhabited-land-just-northeast-of-china/" rel="bookmark" class="crp_title">世界上最酷的国家</a></li><li><a href="http://dallascao.com/cn/two-translation-mistakes-in-cpanel/" rel="bookmark" class="crp_title">中文版 cpanel 中的两个翻译错误</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://dallascao.com/cn/%e5%ad%b5%e8%9b%8b%e5%99%a8%e8%af%b4%e6%98%8e%e4%b9%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Mobile (wm) 可用的OpvenVPN客户端</title>
		<link>http://dallascao.com/cn/windows-mobile-wm-opvenvpn/</link>
		<comments>http://dallascao.com/cn/windows-mobile-wm-opvenvpn/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 08:57:39 +0000</pubDate>
		<dc:creator>Dallas Cao</dc:creator>
				<category><![CDATA[疯狂的中国]]></category>

		<guid isPermaLink="false">http://dallascao.com/cn/?p=484</guid>
		<description><![CDATA[<p>历经苦难，终于找到了wm可以用的openvpn程序，跟我来吧，咱一步一步走。</p>
<p>1）到这里下载openvpn：<a href='http://dallascao.com/cn/wp-content/uploads/2012/02/openvpn.zip'>openvpn</a></p>
<p>2）按次序安装以下软件（卡和存储卡都无所谓）：<br />
     a) ovpnppc.en.ARM.cab b)DaGong OpenVPN_Patch.cab 3）Hosts.re[......]</p><p class='read-more'><a href='http://dallascao.com/cn/windows-mobile-wm-opvenvpn/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>历经苦难，终于找到了wm可以用的openvpn程序，跟我来吧，咱一步一步走。</p>
<p>1）到这里下载openvpn：<a href='http://dallascao.com/cn/wp-content/uploads/2012/02/openvpn.zip'>openvpn</a></p>
<p>2）按次序安装以下软件（卡和存储卡都无所谓）：<br />
     a) ovpnppc.en.ARM.cab b)DaGong OpenVPN_Patch.cab 3）Hosts.reg </p>
<p>以上两条抄袭自 http://www.quietwrite.com/writing/42153/wm-ppc-de-openvpn-shi-yong-ji-she-zhi-jian-jie </p>
<p>以下所有条改编自上面的链接。 </p>
<p>3）安装后确认一下你所安装的路径，我们以安装到 My Storage\Program Files\OpenVPN\</p>
<p>3）登录killwall.com，下载你的vpn 配置文件。</p>
<p>4）解压后用notepad+，打开所有以 .ovpn 为扩展名的文件。</p>
<p>5）把这些文件里包含的 .crt  .key .txt 文件名前面加上完整路径，目录名之间用双反斜杠隔开，并前后加引号，如把</p>
<p>ca v10.crt 一行替换成：</p>
<p>ca “\\My Storage\\Program Files\\OpenVPN\\Config\\v10.crt”</p>
<p>把 key xxx.key 替换成：</p>
<p>key “\\My Storage\\Program Files\\OpenVPN\\Config\\xxx.key”</p>
<p>等等 </p>
<p>6) 把</p>
<p>#route-delay</p>
<p>route-method exe</p>
<p>两行删除。</p>
<p>*notepad+有替换打开的所有文件功能，用上吧！</p>
<p>7) 把所有修改后的文件复制到手机上 OpenVPN 目录下的 Config 目录下。</p>
<p>8）在ppc上对openvpn的设置其实也很简单。安装成功后，回到“今日”桌面，就会在右下角看到一部小电脑图标，点击它就会弹出菜单，点击“utils”,然后点击“setting”。进入后会看到两个“settings”,在第一个里把第三个钩(“Try to ping servers on connect”)去掉,在第二个里选择cmnet(或 “internet 设置” ), 最后点击 “tap”,再点击“tap device 1”，按下 “start”, 如果弹出个窗口不是写着“This adapter is already loaded”，的话，请卸载后重新安装。</p>
<p>9）点小电脑图标&#8211;>Start from Config&#8212;>点一个服务器。</p>
<p>10) 若干妙后，系统提示发现LAN什么的，点确认，然后小电脑变绿。</p>
<p>11) 打开ucweb，ucweb会提示发现WLAN（其实连的是VPN，ucweb傻)，是否连接，点是。</p>
<div id="crp_related"><h3>相关文章：</h3><ul><li><a href="http://dallascao.com/cn/520/" rel="bookmark" class="crp_title"></a></li><li><a href="http://dallascao.com/cn/%e5%90%a6%e5%ae%9a-dallas-facebook%e7%9a%84%e7%bf%bb%e8%af%91%e9%94%99%e8%af%af/" rel="bookmark" class="crp_title">否定 Dallas? facebook的翻译错误</a></li><li><a href="http://dallascao.com/cn/austrian-german-is-translated-as-australian-germa-in-windows-98/" rel="bookmark" class="crp_title">中文 Windows 98 中一个难忘的翻译错误</a></li><li><a href="http://dallascao.com/cn/google-dictionary-for-word-gd4word/" rel="bookmark" class="crp_title">Google Dictionary for Word</a></li><li><a href="http://dallascao.com/cn/plaintext/" rel="bookmark" class="crp_title">PlainText 1.10</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://dallascao.com/cn/windows-mobile-wm-opvenvpn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何使JiaThis按钮居中或任意位置</title>
		<link>http://dallascao.com/cn/%e5%a6%82%e4%bd%95%e4%bd%bfjiathis%e6%8c%89%e9%92%ae%e5%b1%85%e4%b8%ad%e6%88%96%e4%bb%bb%e6%84%8f%e4%bd%8d%e7%bd%ae/</link>
		<comments>http://dallascao.com/cn/%e5%a6%82%e4%bd%95%e4%bd%bfjiathis%e6%8c%89%e9%92%ae%e5%b1%85%e4%b8%ad%e6%88%96%e4%bb%bb%e6%84%8f%e4%bd%8d%e7%bd%ae/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 12:47:35 +0000</pubDate>
		<dc:creator>Dallas Cao</dc:creator>
				<category><![CDATA[代码狂]]></category>

		<guid isPermaLink="false">http://dallascao.com/cn/?p=480</guid>
		<description><![CDATA[<p>JiaThis 的按钮默认靠左，但通常会我们想让它居中或靠右，实现方法是在div标签里添加style。例如</p>
<p>居中：<br />
<code></code></p>
<div id="ckepop" style="padding-left: 47%;">

<p>调整padding-left后面的百分比，可实现靠右或任意位置，当然你也可写像素值。具体可参考网上<a href=http://suiji.so/s.php?q=div>div</a>标签的说明。</p>
<p>样例见</p>
<p><a href=http://suiji.so>http://suiji.so</a></p>
<div id="crp_related"><h3>相关文章：</h3><ul><li><a href="http://dallascao.com/cn/change-your-php-and-mysql-timezone/" rel="bookmark" class="crp_title">修改php[......]</a></li></ul></div></div><p class='read-more'><a href='http://dallascao.com/cn/%e5%a6%82%e4%bd%95%e4%bd%bfjiathis%e6%8c%89%e9%92%ae%e5%b1%85%e4%b8%ad%e6%88%96%e4%bb%bb%e6%84%8f%e4%bd%8d%e7%bd%ae/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>JiaThis 的按钮默认靠左，但通常会我们想让它居中或靠右，实现方法是在div标签里添加style。例如</p>
<p>居中：<br />
<code></p>
<div id="ckepop" style="padding-left: 47%;">
</code></p>
<p>调整padding-left后面的百分比，可实现靠右或任意位置，当然你也可写像素值。具体可参考网上<a href=http://suiji.so/s.php?q=div>div</a>标签的说明。</p>
<p>样例见</p>
<p><a href=http://suiji.so>http://suiji.so</a></p>
<div id="crp_related"><h3>相关文章：</h3><ul><li><a href="http://dallascao.com/cn/change-your-php-and-mysql-timezone/" rel="bookmark" class="crp_title">修改php和mysql的时区</a></li><li><a href="http://dallascao.com/cn/use-regular-expressions-in-htaccess-for-redirections/" rel="bookmark" class="crp_title">在 .htaccess 中使用正则表达式来定义转向</a></li><li><a href="http://dallascao.com/cn/%e7%82%b9%e5%87%bb%e5%8d%95%e5%85%83%e6%a0%bc%e5%8f%98%e8%89%b2%e7%9a%84%e4%bb%a3%e7%a0%81/" rel="bookmark" class="crp_title">点击单元格变色的代码</a></li><li><a href="http://dallascao.com/cn/plaintext/" rel="bookmark" class="crp_title">PlainText 1.10</a></li><li><a href="http://dallascao.com/cn/google-dictionary-for-word-gd4word/" rel="bookmark" class="crp_title">Google Dictionary for Word</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://dallascao.com/cn/%e5%a6%82%e4%bd%95%e4%bd%bfjiathis%e6%8c%89%e9%92%ae%e5%b1%85%e4%b8%ad%e6%88%96%e4%bb%bb%e6%84%8f%e4%bd%8d%e7%bd%ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>否定 Dallas? facebook的翻译错误</title>
		<link>http://dallascao.com/cn/%e5%90%a6%e5%ae%9a-dallas-facebook%e7%9a%84%e7%bf%bb%e8%af%91%e9%94%99%e8%af%af/</link>
		<comments>http://dallascao.com/cn/%e5%90%a6%e5%ae%9a-dallas-facebook%e7%9a%84%e7%bf%bb%e8%af%91%e9%94%99%e8%af%af/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 17:41:11 +0000</pubDate>
		<dc:creator>Dallas Cao</dc:creator>
				<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://dallascao.com/cn/?p=476</guid>
		<description><![CDATA[<p><a href="http://dallascao.com/cn/wp-content/uploads/2012/02/negative_dallas.jpg"><img src="http://dallascao.com/cn/wp-content/uploads/2012/02/negative_dallas.jpg" alt="Not Dallas?" title="negative_dallas" width="314" height="139" class="alignnone size-full wp-image-477" /></a></p>
<p>登录facebook时输错的密码，facebook提示我“否定 Dallas？”</p>
<div id="crp_related"><h3>相关文章：</h3><ul><li><a href="http://dallascao.com/cn/chinese-characters/" rel="bookmark" class="crp_title">用来做装饰的汉字</a></li><li><a href="http://dallascao.com/cn/business-opportunities-from-chinas-great-firewall/" rel="bookmark" class="crp_title">G~F~W  带来的商业机会</a></li><li><a href="http://dallascao.com/cn/surprise/" rel="bookmark" class="crp_title">Surprise!</a></li><li><a href="http://dallascao.com/cn/exceeds-expecations/" rel="bookmark" class="crp_title">“超越期待！”</a></li><li><a href="http://dallascao.com/cn/repairs-trados/" rel="bookmark" class="crp_title">TradosRepairer: 一个修复 Microsoft Word 中 Trados Workbench 错误的程序</a></li><li>Power[......]</li></ul></div><p class='read-more'><a href='http://dallascao.com/cn/%e5%90%a6%e5%ae%9a-dallas-facebook%e7%9a%84%e7%bf%bb%e8%af%91%e9%94%99%e8%af%af/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://dallascao.com/cn/wp-content/uploads/2012/02/negative_dallas.jpg"><img src="http://dallascao.com/cn/wp-content/uploads/2012/02/negative_dallas.jpg" alt="Not Dallas?" title="negative_dallas" width="314" height="139" class="alignnone size-full wp-image-477" /></a></p>
<p>登录facebook时输错的密码，facebook提示我“否定 Dallas？”</p>
<div id="crp_related"><h3>相关文章：</h3><ul><li><a href="http://dallascao.com/cn/chinese-characters/" rel="bookmark" class="crp_title">用来做装饰的汉字</a></li><li><a href="http://dallascao.com/cn/business-opportunities-from-chinas-great-firewall/" rel="bookmark" class="crp_title">G~F~W  带来的商业机会</a></li><li><a href="http://dallascao.com/cn/surprise/" rel="bookmark" class="crp_title">Surprise!</a></li><li><a href="http://dallascao.com/cn/exceeds-expecations/" rel="bookmark" class="crp_title">“超越期待！”</a></li><li><a href="http://dallascao.com/cn/repairs-trados/" rel="bookmark" class="crp_title">TradosRepairer: 一个修复 Microsoft Word 中 Trados Workbench 错误的程序</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://dallascao.com/cn/%e5%90%a6%e5%ae%9a-dallas-facebook%e7%9a%84%e7%bf%bb%e8%af%91%e9%94%99%e8%af%af/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[微的软]将选中的词粘贴到任意指定词典等查询工具中</title>
		<link>http://dallascao.com/cn/micro-soft-pasting-selected-words-to-any-applications/</link>
		<comments>http://dallascao.com/cn/micro-soft-pasting-selected-words-to-any-applications/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 16:03:34 +0000</pubDate>
		<dc:creator>Dallas Cao</dc:creator>
				<category><![CDATA[疯狂的中国]]></category>

		<guid isPermaLink="false">http://dallascao.com/cn/?p=470</guid>
		<description><![CDATA[<p>做翻译时经常需要查词，一般的方法是把要查的词复制到有道词典等软件中，或者手动输入进去，这个小程序可以帮你自动将要查的词粘贴过去，仅此而已。</p>
<p><a href='http://dallascao.com/cn/wp-content/uploads/2011/09/copy_to_Search-and-Replace_ctrl+F12.zip'>copy_to_Search and Replace_ctrl+F12</a></p>
<p>使用方法：</p>
<p>1. 先设置：创新！设置仅需改文件名即可！下载解压出来的可执行文件的文件名是[......]</p><p class='read-more'><a href='http://dallascao.com/cn/micro-soft-pasting-selected-words-to-any-applications/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>做翻译时经常需要查词，一般的方法是把要查的词复制到有道词典等软件中，或者手动输入进去，这个小程序可以帮你自动将要查的词粘贴过去，仅此而已。</p>
<p><a href='http://dallascao.com/cn/wp-content/uploads/2011/09/copy_to_Search-and-Replace_ctrl+F12.zip'>copy_to_Search and Replace_ctrl+F12</a></p>
<p>使用方法：</p>
<p>1. 先设置：创新！设置仅需改文件名即可！下载解压出来的可执行文件的文件名是</p>
<p>copy_to_Search and Replace_ctrl+F12.exe</p>
<p>把 “Search and Replace”部分改为你用的词典软件的窗口名（软件窗口左上角标注的名称），无需写全，但大小写必须一致。<br />
把文件名中的”ctrl+F12&#8243;改为你想要的快捷键。</p>
<p>设置好了运行</p>
<p>2. 把你的工作窗口（如word, trados 2009）和词典软件并排，使二者在屏幕上可见。在工作窗口选中一个要查的词，按你设置的快捷键，如“ctrl+F12&#8243;。</p>
<div id="crp_related"><h3>相关文章：</h3><ul><li><a href="http://dallascao.com/cn/repairs-trados/" rel="bookmark" class="crp_title">TradosRepairer: 一个修复 Microsoft Word 中 Trados Workbench 错误的程序</a></li><li><a href="http://dallascao.com/cn/a-list-of-country-names/" rel="bookmark" class="crp_title">国家地区名称英汉对照（Trados TM 格式）</a></li><li><a href="http://dallascao.com/cn/replace-with-chinese-quotation-mark/" rel="bookmark" class="crp_title">如何把英文引号或英文字体的引号批量替换成中文引号</a></li><li><a href="http://dallascao.com/cn/open-a-link-in-a-new-tab/" rel="bookmark" class="crp_title">在新选项卡而不是在新窗口打开链接的快捷键</a></li><li><a href="http://dallascao.com/cn/use-of-if-fields/" rel="bookmark" class="crp_title">使用 Miscrosoft Word 的 If 域</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://dallascao.com/cn/micro-soft-pasting-selected-words-to-any-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk

Served from: www.dallascao.com @ 2012-05-19 06:26:29 -->
