php フォルダ操作関数
string Basename (string path [, string suffix])
ファイルへの完全パスを含む文字列を指定すると、この関数はベース ファイル名を返します。ファイル名が接尾辞で終わる場合、この部分も削除されます。
Windows では、スラッシュ (/) とバックスラッシュ () の両方をディレクトリ区切り文字として使用できます。他の状況では、スラッシュ (/) になります。
文字列ディレクトリ名 (文字列パス)
ファイルへの完全パスを含む文字列を指定すると、この関数はファイル名を削除した後のディレクトリ名を返します。
Windows では、スラッシュ (/) とバックスラッシュ () の両方をディレクトリ区切り文字として使用できます。他の状況では、スラッシュ (/) になります。
配列パス情報 (文字列パス [, int オプション] )
pathinfo() は、パス情報を含む連想配列を返します。次の配列要素が含まれます: dirname、basename、および extension。
オプション パラメータを使用して、どの単位を返すかを指定できます。これらには、PATHINFO_DIRNAME、PATHINFO_BASENAME、および PATHINFO_EXTENSION が含まれます。デフォルトでは、すべての単位が返されます。
文字列実パス (文字列パス)
realpath() は、すべてのシンボリック リンクを展開し、入力パス内の '/./'、'/../'、および冗長な '/' を処理し、正規化された絶対パス名を返します。返されたパスには、シンボリック リンク、「/./」または「/../」コンポーネントはありません。
realpath() は、ファイルが存在しない場合など、失敗すると FALSE を返します。 BSD システムでは、パスが単に存在しない場合、PHP は他のシステムのように FALSE を返しません。
bool is_dir (文字列ファイル名)
ファイル名が存在し、ディレクトリである場合は TRUE を返します。 filename が相対パスの場合、その相対パスは現在の作業ディレクトリに対してチェックされます。
注: この関数の結果はキャッシュされます。詳細については、clearstatcache() を参照してください。
リソース opendir (文字列パス [, リソース コンテキスト] )
後続の Closedir()、readdir()、および rewinddir() 呼び出しで使用できるディレクトリ ハンドルを開きます。
文字列 readdir (リソース dir_handle)
ディレクトリ内の次のファイルのファイル名を返します。ファイル名はファイル システム内の順序で返されます。
void Closedir (リソース dir_handle)
dir_handle で指定されたディレクトリ ストリームを閉じます。ストリームは、opendir() によって事前に開かれている必要があります。
void rewinddir ( resource dir_handle )
dir_handle で指定されたディレクトリ ストリームをディレクトリの先頭にリセットします。
配列 glob (文字列パターン [, int flags] )
glob() 関数は、通常のシェルで使用されるルールと同様に、libc glob() 関数で使用されるルールに従って、パターンに一致するすべてのファイル パスを検索します。略語展開やパラメータ置換は行われません。
一致するファイル/ディレクトリを含む配列を返します。エラーが発生した場合は FALSE を返します。
有効なタグは次のとおりです。
GLOB_MARK - 返される各項目にスラッシュを追加します。
GLOB_NOSORT - ディレクトリ内での元の出現順序でファイルを返します (ソートなし)。
GLOB_NOCHECK - ファイルがない場合一致は、検索に使用されたパターンを返します
GLOB_NOESCAPE - バックスラッシュのエスケープされていないメタ文字
GLOB_BRACE - {a,b,c} を展開して 'a'、'b'、または 'c' に一致させます
GLOB_ONLYDIR - ディレクトリのみを返しますパターンに一致するエントリ
注: PHP 4.3.3 より前は、Windows または GNU C ライブラリを使用しないその他のシステムでは GLOB_ONLYDIR を使用できませんでした。
GLOB_ERR - エラー メッセージ (読み取り不能なディレクトリなど) を停止して読み取ります。デフォルトではすべてのエラーを無視します。
注: GLOB_ERR は PHP 5.1 で追加されました。
php ファイル ディレクトリの操作
新しいファイルを作成します
1. まず、ファイルに書き込むコンテンツを決定します
$content = 'Hello';
2. このファイルを開きます (システムはこの空のファイルを自動的に作成します)
/ / 新しく作成されたファイルは file.txt という名前で、上位ディレクトリにあるとします。 w は「書き込みファイル」を意味し、$fp の下で開いているファイルを指すために使用されます。
$fp = fopen('../file.txt', 'w');
3. コンテンツ文字列をファイルに書き込みます
//$fp は、書き込むファイルをシステムに指示します。 write 入力されたコンテンツは $content です
fwrite($fp, $content);
4. ファイルを閉じます
fclose($fp);
注: PHP5 には、上記のより便利な関数 file_put_contents が用意されています。 4 つのステップは次のように完了できます:
$content = 'Hello';
file_put_contents('file.txt',$content);
ファイルの削除
//現在のディレクトリの Arch ディレクトリにあるファイル abc.txt を削除します
unlink('arch/abc.txt');
注: システムは操作結果を返します。成功した場合は TRUE を返し、それ以外の場合は FALSE を返します。変数を使用してそれを受け取ると、削除が成功したかどうかを知ることができます:
$deleteResult = unlink('arch/abc.txt');
ファイルの内容を取得
//対象ファイル名は file.txt で、上位ディレクトリにあるものとします。取得したコンテンツは$contentに格納されます。
$content = file_get_contents('../file.txt');
ファイルの内容を変更する
操作方法は基本的に新規コンテンツの作成と同じです
ファイルまたはディレクトリの名前を変更します
//現在のディレクトリのサブディレクトリ a にあるファイル 1.gif の名前を 2.gif に変更します。
rename('/a/1.gif', '/a/2.gif');
注: ディレクトリについても同じことが当てはまります。システムは操作結果 (成功した場合は TRUE、失敗した場合は FALSE) を返します。変数を使用してそれを受け取り、名前変更が成功したかどうかを知ることができます。
$renameResult = rename('/a/1.gif', '/a/2.gif');
ファイルまたはディレクトリを移動する場合は、名前を変更したパスを新しいパスに設定するだけです。以上です:
//現在のディレクトリのサブディレクトリ a にあるファイル 1.gif を現在のディレクトリのサブディレクトリ b に移動し、名前を 2.gif に変更します。
rename('/a/1.gif', '/b/2.gif');
ただし、ディレクトリ b が存在しない場合、移動は失敗することに注意してください。
ファイルをコピー
//現在のディレクトリのサブディレクトリ a にあるファイル 1.gif を現在のディレクトリのサブディレクトリ b にコピーし、2.gif という名前を付けます。
copy('/a/1.gif', '/b/1.gif');
説明: この操作はディレクトリに対して実行できません。
ターゲット ファイル (上記の /b/1.gif) がすでに存在する場合、元のファイルは上書きされます。
システムは操作結果 (成功した場合は TRUE、失敗した場合は FALSE) を返します。変数を使用してそれを受け取ると、コピーが成功したかどうかを知ることができます。
$copyResult = copy('/a/1.gif', '/b/1.gif');
ファイルやディレクトリの移動
操作方法は名前変更と同じです
ファイルまたはディレクトリが存在するかどうか
//上位ディレクトリにファイル logo.jpg が存在するかどうかを確認します。
$existResult = file_exists('../logo.jpg');
注: ファイルが存在する場合、システムは true を返し、存在しない場合は false を返します。ディレクトリに対しても同様の操作が可能です。
ファイルサイズの取得
//上位ディレクトリにあるlogo.pngファイルのサイズを取得します。
$size = filesize('../logo.png');
説明: システムはファイルのサイズをバイト単位で示す数値を返します。
新しいディレクトリを作成します
//現在のディレクトリのディレクトリ a の下に新しいディレクトリ b を作成します。
mkdir('/a/b');
注: システムは操作結果を返します。成功した場合は TRUE、失敗した場合は FALSE。変数を使用して結果を受け取り、新しい作成が成功したかどうかを知ることができます。 :
$mkResult = mkdir('/a/b');
ディレクトリの削除
//現在のディレクトリのディレクトリ a の下にあるサブディレクトリ b を削除します。
rmdir('/a/b');
注: 空でないディレクトリのみを削除できます。それ以外の場合は、最初にディレクトリ内のサブディレクトリとファイルを削除し、次にディレクトリ全体を削除する必要があります。
システムは操作結果を返し、成功した場合は TRUE を返し、失敗した場合は FALSE を返します。変数を使用してそれを受け取ると、削除が成功したかどうかを知ることができます:
$deleteResult = rmdir('/a/b');ぱ>
ディレクトリ内のすべてのファイル名を取得します
1. まず、操作対象のディレクトリを開き、変数を使用してそれを指します
//現在のディレクトリのディレクトリ pic の下にあるサブディレクトリ common を開きます。
$handler = opendir('pic/common');
2. ディレクトリ内のすべてのファイルを読み取るループ
/*ここで、$filename = readdir($handler) は、読み取られたファイル名が割り当てられます。無限ループに陥らないようにするには、$filename !== false も必要です。必ず !== を使用してください。ファイル名が '0' である場合、またはシステムが false を表すとみなした場合、 != を使用するとループが停止します */
while( ($filename = readdir( $ handler)) !== false ) {
3. ディレクトリ内に '.' と '..' という名前の 2 つのファイルがあります。これらを操作しないでください。
if($filename != "." && $filename != "..") {
4. プロセス
//ここでは単に echo を使用してファイル名を出力します
echo $filename;
}
}
5. ディレクトリを閉じます
closedir($handler);
オブジェクトがディレクトリかどうか
//上位ディレクトリにある対象オブジェクトlogo.jpgがディレクトリかどうかを確認します。
$checkResult = is_dir('../logo.jpg');
注: ターゲット オブジェクトがディレクトリ システムの場合は true を返し、それ以外の場合は false を返します。もちろん、上記の例の $checkResult は false です。
オブジェクトがファイルかどうか
//上位ディレクトリにある対象オブジェクト logo.jpg がファイルかどうかを確認します。
$checkResult = is_file('../logo.jpg');
注: ターゲット オブジェクトがファイルの場合、システムは true を返し、それ以外の場合は false を返します。もちろん、上記の例の $checkResult は true です。