PHP 開発におけるファイル ディレクトリの処理
1. ファイル ディレクトリを開く/閉じる
ファイル ディレクトリを開く/閉じることは、ファイルを開く/閉じることと似ていますが、開いたファイルが存在しない場合は、ファイルが自動的に作成されます。ファイルを開くパスが正しくない場合、エラーが報告されます。
(1) ディレクトリを開きます
PHP の opendir() 関数を使用してディレクトリを開きます。 構文は次のとおりです。
resource opendir(string path)
path は有効なディレクトリ パスです。実行が成功すると、ディレクトリ ポインタが返されます。パスが正当なディレクトリ パスではない場合、またはアクセス許可またはシステム エラーが原因で開けない場合は false を返します。そしてエラー警告を生成します。 opendir()[email protected]
(2) で Closedir() 関数を使用して、ディレクトリ
を閉じることができます。構文は次のとおりです:
void Closedir(リソース ハンドル)
パラメータハンドルはopendir()関数でディレクトリポインタを返します。
ディレクトリをオープン/クローズするサンプルコードは次のとおりです。
<code class=" hljs xml"><span class="php"><span class="hljs-preprocessor"><?php</span><span class="hljs-variable">$filepath</span> =<span class="hljs-string">'/Applications/XAMPP/xamppfiles/htdocs/PHPTEST/'</span>;<span class="hljs-keyword">if</span> (is_dir(<span class="hljs-variable">$filepath</span>)) { <span class="hljs-comment">//检测是否是一个目录</span> <span class="hljs-keyword">if</span> (<span class="hljs-variable">$dir</span> =opendir(<span class="hljs-variable">$filepath</span>)) { <span class="hljs-keyword">echo</span> <span class="hljs-string">"目录如下:"</span>; <span class="hljs-keyword">echo</span> <span class="hljs-variable">$dir</span>; } <span class="hljs-keyword">else</span> { <span class="hljs-keyword">echo</span> <span class="hljs-string">"<<<<目录错误"</span>; <span class="hljs-keyword">exit</span>(); } closedir(<span class="hljs-variable">$dir</span>);}<span class="hljs-keyword">else</span> { <span class="hljs-keyword">echo</span> <span class="hljs-string">"目录错误>>>"</span>;}<span class="hljs-preprocessor">?></span></span></code>
実行結果は次のとおりです。
(3) PHP でディレクトリ
を参照します。 scandir() 関数を使用してディレクトリを参照します。 構文は次のとおりです:
array scandir(string diretory[,int sort_order])
この関数はすべてのファイルとディレクトリを返します。ディレクトリ内のパラメータsorting_orderは、デフォルトの並べ替え順序を指定します。パラメータを追加すると、降順にソートされます。
サンプルコードは次のとおりです。
<code class=" hljs php"><span class="hljs-preprocessor"><?php</span><span class="hljs-variable">$filepath</span> =<span class="hljs-string">'/Applications/XAMPP/xamppfiles/htdocs/PHPTEST/'</span>;<span class="hljs-keyword">if</span> (is_dir(<span class="hljs-variable">$filepath</span>)) { <span class="hljs-comment">//检测是否是一个目录</span> <span class="hljs-variable">$dir</span> =scandir(<span class="hljs-variable">$filepath</span>); <span class="hljs-keyword">foreach</span> (<span class="hljs-variable">$dir</span> <span class="hljs-keyword">as</span> <span class="hljs-variable">$value</span>){ <span class="hljs-keyword">echo</span> <span class="hljs-variable">$value</span>.<span class="hljs-string">'<br>'</span>; }}<span class="hljs-keyword">else</span> { <span class="hljs-keyword">echo</span> <span class="hljs-string">"目录错误>>>"</span>;}<span class="hljs-preprocessor">?></span></code>
実行結果は次のとおりです。
共通のディレクトリ操作関数は次のとおりです。