ZipArchive::getFromName()
(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)
Returns the entry contents using its name
说明
ZipArchive::getFromName(string $name[,int $length= 0[,int $flags]]): string
Returns the entry contents using its name.
参数
- $name
Name of the entry
- $length
The length to be read from the entry. If0, then the entire entry is read.
- $flags
The flags to use to find the entry. The following values may be ORed.
ZipArchive::FL_UNCHANGED
ZipArchive::FL_COMPRESSED
ZipArchive::FL_NOCASE
返回值
Returns the contents of the entry on success 或者在失败时返回FALSE
.
范例
Get the file contents
<?php $zip = new ZipArchive; if ($zip->open('test1.zip') === TRUE) { echo $zip->getFromName('testfromfile.php'); $zip->close(); } else { echo 'failed'; } ?>
Convert an image from a zip entry
<?php $z = new ZipArchive(); if ($z->open(dirname(__FILE__) . '/test_im.zip')) { $im_string = $z->getFromName("pear_item.gif"); $im = imagecreatefromstring($im_string); imagepng($im, 'b.png'); } ?>
参见
- ZipArchive::getFromIndex() Returns the entry contents using its index
The handling of file names containing non-ASCII characters is undocumented. It seems that this function calls <?php mb_convert_encoding($name,"CP850","UTF-8") ?> and therefore expects DOS encoding in the zipfile but UTF-8 encoding for the name. If the zipfile uses UTF-8 names (Pkzip 4.5 / Winzip 11.2), this function fails. Use getFromIndex instead as a workaround.