ZipArchive::getFromName

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

ZipArchive::getFromName名前を使用して、エントリの内容を返す

説明

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

名前を使用して、エントリの内容を返します。

パラメータ

name

エントリの名前。

length

エントリから読み込む長さ。0 の場合はエントリ全体を読み込みます。

flags

エントリを探す際に使用するフラグ。以下の値を OR で連結して使用します。

  • ZipArchive::FL_UNCHANGED

  • ZipArchive::FL_COMPRESSED

  • ZipArchive::FL_NOCASE

返り値

成功した場合にエントリの内容、失敗した場合に FALSE を返します。

例1 ファイルの内容の取得

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

例2 zip エントリの画像への変換

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

参考

add a note add a note

User Contributed Notes 1 note

up
-1
henrik dot haftmann at gmail dot com
3 years 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