ZipArchive::locateName

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

ZipArchive::locateNameアーカイブ内のエントリのインデックスを返す

説明

ZipArchive::locateName ( string $name [, int $flags ] ) : int

名前を使用して、エントリの場所を取得します。

パラメータ

name

探したいエントリの名前。

flags

この関数は、アーカイブ内の指定した名前のファイルのインデックスを返します。 フラグには、次の値を OR で連結して指定します。 あるいは何もしていしない場合は 0 とします。

  • ZipArchive::FL_NOCASE

  • ZipArchive::FL_NODIR

返り値

成功した場合にエントリのインデックス、失敗した場合に FALSE を返します。

例1 アーカイブを作成し、ZipArchive::locateName() を使用する

<?php
$file 
'testlocate.zip';

$zip = new ZipArchive;
if (
$zip->open($fileZipArchive::CREATE) !== TRUE) {
    exit(
'失敗');
}

$zip->addFromString('entry1.txt''entry #1');
$zip->addFromString('entry2.txt''entry #2');
$zip->addFromString('dir/entry2d.txt''entry #2');

if (!
$zip->status == ZipArchive::ER_OK) {
    echo 
"zip の書き込みに失敗\n";
}
$zip->close();

if (
$zip->open($file) !== TRUE) {
    exit(
'失敗');
}

echo 
$zip->locateName('entry1.txt') . "\n";
echo 
$zip->locateName('eNtry2.txt') . "\n";
echo 
$zip->locateName('eNtry2.txt'ZipArchive::FL_NOCASE) . "\n";
echo 
$zip->locateName('enTRy2d.txt'ZipArchive::FL_NOCASE|ZipArchive::FL_NODIR) . "\n";
$zip->close();

?>

上の例の出力は以下となります。

0

1
2