This extension enables you to transparently read or write ZIP compressed archives and the files inside them.
The bundled PHP 4 version requires » ZZIPlib, by Guido Draheim, version 0.10.6 or later
This extension uses the functions of » zlib by Jean-loup Gailly and Mark Adler.
注意: Zip support before PHP 4.1.0 is experimental.
警告Because the PHP 4 zip extension is unmaintained we recommend that the PECL extension is used rather than the bundled one.
In order to use these functions you must compile PHP with zip support by using the --with-zip[=DIR] configure option, where [DIR] is the prefix of the » ZZIPlib library install.
Windows users need to enable php_zip.dll inside of php.ini in order to use these functions.
In order to use these functions you must compile PHP with zip support by using the --enable-zip configure option.
Windows users need to enable php_zip.dll inside of php.ini in order to use these functions.
安装此 PECL 扩展库的信息可在手册中标题为 PECL 扩展库安装的一章中找到。 更多信息如新版本,下载,源文件,维护者信息以及更新日志等可以在这里找到: » http://pecl.php.net/package/zip.
可以从 » PHP 下载页面或者 » http://snaps.php.net/ 下载此 PECL 扩展的 DLL 文件。
在 PHP 4 中本 DLL 位于 PHP Windows 执行包中的 extensions/ 目录下。
本扩展模块在 php.ini 中未定义任何配置选项。
There are two resource types used in the Zip module. The first one is the Zip directory for the Zip archive, the second Zip Entry for the archive entries.
以下常量由本扩展模块定义,因此只有在本扩展模块被编译到 PHP 中,或者在运行时被动态加载后才有效。
ZipArchive uses class constants. There is three types of constants, Flags (FL_) errors (ER_) or mode (no prefix).
例 2467. Create a Zip archive
$zip = new ZipArchive();
$filename = "./test112.zip";
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
exit("cannot open <$filename>/n");
}
$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt./n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt./n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "numfiles: " . $zip->numFiles . "/n";
echo "status:" . $zip->status . "/n";
$zip->close();
?>
例 2468. Dump the archive details and listing
$za = new ZipArchive();
$za->open('test_with_comment.zip');
print_r($za);
var_dump($za);
echo "numFiles: " . $za->numFiles . "/n";
echo "status: " . $za->status . "/n";
echo "statusSys: " . $za->statusSys . "/n";
echo "filename: " . $za->filename . "/n";
echo "comment: " . $za->comment . "/n";
for ($i=0; $i<$za->numFiles;$i++) {
echo "index: $i/n";
print_r($za->statIndex($i));
}
echo "numFile:" . $za->numFiles . "/n";
?>
例 2469. Zip stream wrapper, read an OpenOffice meta info
$reader = new XMLReader();
$reader->open('zip://' . dirname(__FILE__) . '/test.odt#meta.xml');
$odt_meta = array();
while ($reader->read()) {
if ($reader->nodeType == XMLREADER::ELEMENT) {
$elm = $reader->name;
} else {
if ($reader->nodeType == XMLREADER::END_ELEMENT && $reader->name == 'office:meta') {
break;
}
if (!trim($reader->value)) {
continue;
}
$odt_meta[$elm] = $reader->value;
}
}
print_r($odt_meta);
?>
This example uses the old API (PHP 4), it opens a ZIP file archive, reads each file in the archive and prints out its contents. The test2.zip archive used in this example is one of the test archives in the ZZIPlib source distribution.
例 2470. Zip Usage Example
$zip = zip_open("/tmp/test2.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Name: " . zip_entry_name($zip_entry) . "/n";
echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "/n";
echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "/n";
echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "/n";
if (zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:/n";
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
echo "$buf/n";
zip_entry_close($zip_entry);
}
echo "/n";
}
zip_close($zip);
}
?>
http://www.php.net/manual/zh/ref.zip.php
Zend Optimizer 3.3.0a, http://www.zend.com/products/zend_optimizer
phpMyAdmin 2.11.2, http://www.phpmyadmin.net/home_page/index.php
Zend Core 2.5.0, http://www.zend.com/products/zend_core
Zend Platform 3.0.3, http://www.zend.com/products/zend_platform
PHP 5.2.5, http://www.php.net/releases/5_2_5.php
Zend Studio 5.5, http://www.zend.com/products/zend_studio
Zend Guard 5.0, http://www.zend.com/products/zend_guard
PHP - reset — 将数组的内部指针指向第一个单元, http://www.php.net/manual/zh/function.reset.php
PHP - serialize — 产生一个可存储的值的表示, http://www.php.net/manual/zh/function.serialize.php
PHP: 魔术常量 - Manual:, http://www.php.net/manual/zh/language.constants.predefined.php
PHP: SOAP Functions - soap.wsdl_cache_enabled, http://cn.php.net/manual/zh/ref.soap.php#ini.soap.wsdl-cache-enabled
字符串转换为数值, http://www.php.net/manual/zh/language.types.string.php#language.types.string.conversion
Class Abstraction类抽象, http://www.php.net/manual/zh/language.oop5.abstract.php
foreach遍历数组, http://www.php.net/manual/zh/control-structures.foreach.phpSOAP configuration options missing documentation文档中丢失SOAP配置选项, http://bugs.php.net/bug.php?id=38644
PHP 的命令行模式, http://www.php.net/manual/zh/features.commandline.php
位运算符, http://www.php.net/manual/zh/language.operators.bitwise.php#id2665181
file_exists检查文件或目录是否存在, http://www.php.net/manual/zh/function.file-exists.php
is_file判断给定文件名是否为一个正常的文件, http://www.php.net/manual/zh/function.is-file.php
settype设置变量的类型, http://cn.php.net/manual/zh/function.settype.php#function.settype
is_numeric检测变量是否为数字或数字字符串, http://www.php.net/manual/zh/function.is-numeric.php
ksort对数组按照键名排序, http://www.php.net/manual/zh/function.ksort.php
全局和静态变量的引用, http://www.php.net/manual/zh/language.variables.scope.php#language.variables.scope.references
错误控制运算符, http://www.php.net/manual/zh/language.operators.errorcontrol.php
概述, http://www.php.net/manual/zh/language.exceptions.php
用异常处理php改进流程
引用返回, http://www.php.net/manual/zh/language.references.return.php
表 43.2. CLI 专用常量, http://www.php.net/manual/zh/features.commandline.php#id2715646
array_merge合并一个或多个数组, http://www.php.net/manual/zh/function.array-merge.php
概述, http://www.php.net/manual/zh/ref.curl.php
curl_setopt设置cURL传输的选项, http://www.php.net/manual/zh/function.curl-setopt.php
register_shutdown_function注册一个脚本结束时调用的函数, http://www.php.net/manual/zh/function.register-shutdown-function.php
sleep延迟执行, http://www.php.net/manual/zh/ref.misc.php
uniqid生成唯一ID, http://www.php.net/manual/zh/function.uniqid.php
mysql_real_escape_string转义SQL语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集, http://www.php.net/manual/zh/function.mysql-real-escape-string.php
setcookie发送一个cookie, http://www.php.net/manual/zh/function.setcookie.php
proc_open执行命令并打开用于输入输出的文件指针, http://www.php.net/manual/zh/function.proc-open.php
session.use_only_cookies指定是否在客户端仅仅使用 cookie 来存放会话 ID, http://www.php.net/manual/zh/ref.session.php#ini.session.use-only-cookies
strpos查找一个字符串第一次出现的位置, http://www.php.net/manual/zh/function.strpos.php
substr返回字符串中的一部分, http://www.php.net/manual/zh/function.substr.php
token_get_all把给定源代码分解成解析器代号, http://www.php.net/manual/zh/function.token-get-all.php
short_open_tag决定是否允许使用PHP代码开始标志的缩写形式, http://www.php.net/manual/zh/ini.core.php#ini.short-open-tag
服务器变量:$_SERVER, http://www.php.net/manual/zh/reserved.variables.php#reserved.variables.server
表 Q.2. 用 == 进行松散比较, http://www.php.net/manual/zh/types.comparisons.php#id9240444
语法着色, php.exe -s "%1" > "%1.html"
移除SimpleXML对象中的子对象