PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

RarEntry::getStream - このエントリのファイルハンドラを取得する | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

RarEntry::getStream

(PECL rar >= 2.0.0)

RarEntry::getStreamこのエントリのファイルハンドラを取得する

説明

public resource RarEntry::getStream ([ string $password ] )

読み込み操作をサポートするファイルハンドラを返します。 このハンドラを使って、このエントリをその場で展開します。

このハンドラは、rar_close() をコールしても無効にはなりません。

警告

返されるストリームでは、整合性の検証を行いません。 特に、ファイルの破損や間違ったキーによる復号は検出できません。 もし整合性を検証したいのなら、エントリの CRC を確認するのはプログラマ側の役割となります。

パラメータ

password

このエントリの暗号化に使うパスワード。 エントリが暗号化されていない場合は、この値は使われずに無視されます。 このパラメータが省略されていてエントリが暗号化されていた場合は、もし rar_open() でパスワードを指定していればそれを使います。 このパラメータや rar_open() で指定したパスワードが間違っていたときは、 このメソッドの結果のストリームは間違った結果を出力します。 パスワードが要求されているときにパスワードを指定していなければ、 このメソッドは失敗して FALSE を返します。 エントリが暗号化されているかどうかを知るには RarEntry::isEncrypted() を使います。

返り値

ファイルハンドラを返します。失敗した場合に FALSE を返します。

変更履歴

バージョン 説明
3.0.0 エントリ名が繰り返される RAR アーカイブも対応するようになりました。

例1 RarEntry::getStream() の例

<?php

$rar_file 
rar_open('example.rar');
if (
$rar_file === false)
    die(
"Rar アーカイブのオープンに失敗しました");

$entry rar_entry_get($rar_file'Dir/file.txt');
if (
$entry === false)
    die(
"そのようなエントリは見つかりません");

$stream $entry->getStream();
if (
$stream === false)
    die(
"ストリームの取得に失敗しました");

rar_close($rar_file); // ストリームはファイルとは独立しています

while (!feof($stream)) {
    
$buff fread($stream8192);
    if (
$buff !== false)
        echo 
$buff;
    else
        break; 
// fread のエラー
}

fclose($stream);

?>

参考


忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「RarEntry::getStream - このエントリのファイルハンドラを取得する」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | RarEntry::getStream - このエントリのファイルハンドラを取得する」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: