関数・クラス解説

streamWrapper::dir_readdir

version:PHP 4 >= 4.3.2, PHP 5, PHP 7 (公式)

ディレクトリハンドルからエントリを読み込む

公式リファレンス

書式

public streamWrapper::dir_readdir ( ) : string

説明

このメソッドは、readdir() に対応してコールされます。

パラメータ

この関数にはパラメータはありません。

返値

次のファイル名をあらわす文字列、あるいは次のファイルがない場合に FALSE を返します。

注意: 返り値は文字列にキャストされます。

エラー

このメソッドのコールに(未実装などの理由で) 失敗した場合、E_WARNING を発行します。

サンプル

例1 tar アーカイブのファイル一覧

class streamWrapper {     protected $fp;     public function dir_opendir($path, $options) {         $url = parse_url($path);         $path = $url["host"] . $url["path"];         if (!is_readable($path)) {             trigger_error("$path isn't readable for me", E_USER_NOTICE);             return false;         }         if (!is_file($path)) {             trigger_error("$path isn't a file", E_USER_NOTICE);             return false;         }         $this->fp = fopen($path, "rb");         return true;     }     public function dir_readdir() {         // Extract the header for this entry         $header      = fread($this->fp, 512);         $data = unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1filetype/a100link/a100linkedfile", $header);         // Trim the filename and filesize         $filename    = trim($data["filename"]);         // No filename? We are the end of the archive         if (!$filename) {             return false;         }         $octal_bytes = trim($data["size"]);         // Filesize is defined in octects         $bytes       = octdec($octal_bytes);         // tar rounds up filesizes up to multiple of 512 bytes (zero filled)         $rest        = $bytes % 512;         if ($rest > 0) {             $bytes      += 512 - $rest;         }         // Seek over the file         fseek($this->fp, $bytes, SEEK_CUR);         return $filename;     }     public function dir_closedir() {         return fclose($this->fp);     }     public function dir_rewinddir() {         return fseek($this->fp, 0, SEEK_SET);     } } stream_wrapper_register("tar", "streamWrapper"); $handle = opendir("tar://example.tar"); while (false !== ($file = readdir($handle))) {     var_dump($file); } echo "Rewinding..\n"; rewind($handle); var_dump(readdir($handle)); closedir($handle);

上の例の出力は、たとえば以下のようになります。

string(13) "construct.xml" string(16) "dir-closedir.xml" string(15) "dir-opendir.xml" string(15) "dir-readdir.xml" string(17) "dir-rewinddir.xml" string(9) "mkdir.xml" string(10) "rename.xml" string(9) "rmdir.xml" string(15) "stream-cast.xml" string(16) "stream-close.xml" string(14) "stream-eof.xml" string(16) "stream-flush.xml" string(15) "stream-lock.xml" string(15) "stream-open.xml" string(15) "stream-read.xml" string(15) "stream-seek.xml" string(21) "stream-set-option.xml" string(15) "stream-stat.xml" string(15) "stream-tell.xml" string(16) "stream-write.xml" string(10) "unlink.xml" string(12) "url-stat.xml" Rewinding.. string(13) "construct.xml"

参考

  • readdir() - ディレクトリハンドルからエントリを読み込む
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール