PHPのzip_read()関数の使い方とサンプルコードを解説
zip_read()関数は、ZIPファイルアーカイブ内の次のエントリを読み取るための関数です。ZIPアーカイブを開いた後、この関数を繰り返し呼び出すことで、アーカイブに含まれる各ファイルの情報を順番に取得できます。
構文
zip_read(zip)
パラメータ
zip − 読み取り対象のZIPリソースを指定します。通常はzip_open()で開いたリソースを渡します。
戻り値
zip_read()関数は、成功した場合にZIPアーカイブ内のファイルを含むリソースを返します。読み取るエントリがこれ以上存在しない場合はFALSEを返し、エラーが発生した場合にはエラー番号を返します。
使用例
以下の例では、次のファイルが含まれるZIPファイル「new.zip」を扱います。
amit.txt peter.txt result.html demo.java settings.ini
サンプルコード
それでは、実際の使用例を見てみましょう。whileループと組み合わせることで、アーカイブ内の全エントリを順番に処理できます。
<?php
$zip = zip_open("new.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "File Name = ". zip_entry_filename($zip_entry). "<br/>";
}
zip_close($zip);
}
?>
出力結果
このコードを実行すると、ZIPファイルに含まれるすべてのファイル名が出力されます。
File Name = amit.txt File Name = peter.txt File Name = result.html File Name = demo.java File Name = settings.ini
補足:非推奨に関する注意
なお、zip_open()やzip_read()などの旧Zip拡張モジュールの関数は、PHP 7.4.0で非推奨となり、PHP 8.0.0で削除されました。現在の開発では、オブジェクト指向のAPIを提供するZipArchiveクラスの使用が推奨されています。既存コードをメンテナンスする場合は、この点に注意してください。
-
PHPのfpassthru()関数の使い方を徹底解説
fpassthru()関数とはPHPのfpassthru()関数は、開いているファイルからEOF(ファイルの終端)までデータを読み込み、その内容を出力バッファに書き出すための関数です。ファイルポインタから読み取った文字数を返し、エラーが発生した場合はFALSEを返します。構文fpassthru(file_pointer):パラメータfile_pointer − fopen()またはfsockopen()によって正常にオープンされ、まだfclose()で閉じられていないファイルを指すファイルポインタを指定します。戻り値fpassthru()関数は、ファイルポインタから読み取った文字数を返します。
-
PHPのfopen()関数とは?構文・モード一覧・使い方をわかりやすく解説
fopen()関数は、PHPでファイルまたはURLを開くための組み込み関数です。ファイル操作の入り口となる重要な関数で、処理に失敗した場合はFALSEを返し、エラーを出力します。エラー表示を非表示にしたい場合は、関数名の前に「@」を付けてください。 構文 fopen(file_path, mode, include_path, context) パラメータ file_path − 開きたいファイルへのパスを指定します。 mode − ファイルへのアクセス方式(モード)を指定します。主なモードは以下のとおりです。 r − 読み込み専用。ファイルポインタはファイルの先頭に置かれます。 r+ −