場合によっては、ディレクトリ関数を再帰的に作成する必要があります。この場合、dirname() 関数 (パスのディレクトリ部分を取得するため) と mkdir() 関数 (ディレクトリを作成するため) を使用する必要があります。
まずは文法を普及させましょう:
(PHP 4、PHP 5)
dirname — パスのディレクトリ部分を返します
$path
)
ファイルへのフルパスを含む文字列を指定すると、この関数はファイル名を削除した後のディレクトリ名を返します。
path
パス。
Windows では、スラッシュ (/) とバックスラッシュ () の両方をディレクトリ区切り文字として使用できます。他の状況では、スラッシュ (/) になります。
パスの親ディレクトリを返します。 path
にスラッシュがない場合は、現在のディレクトリを示すドット (「.」) が返されます。それ以外の場合、返される文字列は、path
の末尾の /component (最後のスラッシュとそれに続く部分) を削除した後の文字列です。
版本 | 说明 |
---|---|
5.0.0 | dirname() 的操作从 PHP 5.0.0 版开始是二进制安全的。 |
4.0.3 | 在这个版本中,dirname() 被修正为 POSIX 兼容。 |
例 #1 dirname() の例
<?php <br/>
echo "1) " . dirname("/etc/passwd") . PHP_EOL; // 1) /etc<br>
echo "2) " . dirname("/etc/") . PHP_EOL; // 2) / (or on Windows)<br>
echo "3) " . dirname("."); // 3) .<br>
?>
注:
dirname() は入力文字列に対して単純に動作し、実際のファイルシステムや ".." などのパス コンポーネントを認識しません。
注:
dirname() はロケールを認識するため、マルチバイト文字パスを含む正しいディレクトリ名を表示するには、setlocale() 関数を使用して一致するロケールを設定する必要があります。
注:
PHP 4.3.0 以降、古い機能では空の文字列が返される状況で、dirname() からスラッシュまたはドットが返されることがよくあります。
何が起こったかの例を以下で確認してください:
<?php <br/>
<br>
// PHP 4.3.0 以前<br>
dirname('c:/'); // 返回 '.'<br>
<br>
// PHP 4.3.0 以后<br>
dirname('c:/x'); // 返回 'c:'<br>
dirname('c:/Temp/x'); // 返回 'c:/Temp'<br>
dirname('/x'); // 返回 '/'
(or '' on Windows)<br>
<br>
?>
(PHP 4、PHP 5)
mkdir — 新しいディレクトリを作成します
$pathname
[, int $mode
=
0777 [, ブール $recursive
=
false [, resource$context
]]]
)
パス名で指定された新しいディレクトリを作成してみます。
pathname
ディレクトリへのパス。
mode
デフォルトのモードは 0777 で、これは可能な最大アクセスを意味します。モードの詳細については、chmod() ページを参照してください。
注:
mode
で Windows では無視されます。
モードを 8 進数として指定することもできます。これは、数値がゼロで始まる必要があることを意味します。モードは現在の umask によっても変更されます。これは umask() で変更できます。
recursive
pathname
で指定されたネストされたディレクトリの作成を許可します。
context
注: Context のサポートは PHP 5.0.0 で追加されました。コンテキストの説明については、「ストリーム」を参照してください。
成功した場合は TRUE
を返し、失敗した場合は FALSE
を返します。
バージョン | 説明|||||||||
---|---|---|---|---|---|---|---|---|---|
5.0.0 |
|
||||||||
5.0.0 | mkdir() は特定の URL でも動作します カプセル化プロトコル。 mkdir() が何をサポートしているかを確認するには、サポートされているプロトコルとカプセル化されたプロトコルのリストを参照してください。 URL カプセル化プロトコル。 | ||||||||
4.2.0 | はオプションになります。 |