ZipArchive::locateName
(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)
ZipArchive::locateName — アーカイブ内のエントリのインデックスを返す
パラメータ
name
-
探したいエントリの名前。
flags
-
この関数は、アーカイブ内の指定した名前のファイルのインデックスを返します。 フラグには、次の値を OR で連結して指定します。 あるいは何もしていしない場合は 0 とします。
戻り値
成功した場合にエントリのインデックス、失敗した場合に false
を返します。
例
例1 アーカイブを作成し、ZipArchive::locateName() を使用する
<?php
$file = 'testlocate.zip';
$zip = new ZipArchive;
if ($zip->open($file, ZipArchive::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
+add a note
User Contributed Notes 2 notes
thedotwriter ¶
12 years ago
As this is not directly available from this page, here's the meaning of the two flags:
ZIPARCHIVE::FL_NOCASE
Ignore case on name lookup
ZIPARCHIVE::FL_NODIR
Ignore directory component
All defined constants can be found here : http://php.net/manual/en/zip.constants.php
me at nowhere dot com ¶
16 years ago
If the option ZIPARCHIVE::FL_NODIR is used, the result may be ambiguous as files with the same name may occur in various directories. In this case, the first occurence in the index whoose name matches is returned.
E.g.
<?php
$zip->addFromString('afile.txt', 'index 0');
$zip->addFromString('double.txt', 'index 1');
$zip->addFromString('dir/double.txt', 'index 2');
?>
$zip->locateName('double.txt',ZIPARCHIVE::FL_NODIR) returns 1
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google