ZipArchive::getFromName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::getFromNameReturns the entry contents using its name

Description

string ZipArchive::getFromName ( string $name [, int $length = 0 [, int $flags ]] )

Returns the entry contents using its name.

Parameters

name

Name of the entry

length

The length to be read from the entry. If 0, 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

Return Values

Returns the contents of the entry on success or FALSE on failure.

Examples

Example #1 Get the file contents

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test1.zip') === TRUE) {
    echo 
$zip->getFromName('testfromfile.php');
    
$zip->close();
} else {
    echo 
'failed';
}
?>

Example #2 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');
}
?>

See Also

add a note add a note

User Contributed Notes 1 note

up
0
henrik dot haftmann at gmail dot com
6 days ago
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.
To Top