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_UNCHANGEDZipArchive::FL_COMPRESSEDZipArchive::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.
