PHP 自体には readdir 関数がありますが、この関数に基づいて、私のニーズを達成するために別の関数を作成しました。関数の原理は非常に単純で、主に再帰呼び出しを使用します。
コードは次のとおりです |
コードをコピー |
クラスリストディレクトリ{
var $深さ;
var $ディレクトリ名;
var $list;
var $tostring;
関数リストdir($dir){
$this->dirname=$dir;
$this->深さ=0;
$this->tostring=””;
}
//結果を多次元配列に保存します
関数 getlist($dir=""){
if($dir==”")$dir=$this->ディレクトリ名;
$d=@dir($dir);
while(false!==($item=$d->read()))
{
if($item!=”.”&&$item!=”..”)
{
$path=$dir.”/”.$item;
if(is_dir($path)){
$this->深さ+=1;
$this->getlist($path);
}その他{
$this->リスト[$this->深さ][]=$item;
}
}
}
$this->リスト[$this->深さ]['ディレクトリ']=$dir;
$this->深さ-=1;
$d->close();
$this->リストを返す;
}
//キャラクターの変身結果
関数tostring($dir=""){
if($dir==”")$dir=$this->ディレクトリ名;
$d=@dir($dir);
$this->tostring.=”
n”;
$this->tostring.=”ディレクトリ:”.$dir.”n”;
while(false!==($item=$d->read()))
{
if($item!=”.”&&$item!=”..”)
{
$path=$dir.”/”.$item;
if(is_dir($path)){
$this->深さ+=1;
$this->tostring($path);
}その他{
$this->tostring.=”- ”.$item.”
n”;
}
}
}
$this->深さ-=1;
$d->close();
$this->tostring.=” n”;
$this->tostringを返す;
}
}
$wapdir=”jquery”;
$d=新しいリストディレクトリ($wapdir);
echo $d->tostring();
?>
|
複数レベルのディレクトリを再帰的に作成する
1. 最初に下位ディレクトリ div/css/layout が存在するかどうかを確認します。 2. div/css/layout の上位ディレクトリ div/css が存在するかどうかを確認します。存在しない場合は、再帰的に続行するパラメータとして div/css を使用します。
以下はプログラムコードです:
コードは次のとおりです |
コードをコピー |
関数 mkdirs($dir)
{
if(!is_dir($dir))
{
if(!mkdirs(ディレクトリ名($dir))){
false を返します;
}
if(!mkdir($dir,0777)){
false を返します;
}
}
true を返します;
}
mkdirs('div/css/layout');
同じ考え方で、PHP は rmdir と unlink を使用して、複数レベルのディレクトリを再帰的に削除します。
関数rmdirs($dir)
{
$d = ディレクトリ($dir);
while (false !== ($child = $d->read())){
if($child != '.' && $child != '..'){
if(is_dir($dir.'/'.$child))
rmdirs($dir.'/'.$child);
else unlink($dir.'/'.$child);
}
}
$d->close();
rmdir($dir);
}
|
http://www.bkjia.com/PHPjc/631583.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631583.html技術記事 PHP 自体には readdir 関数がありますが、この関数に基づいて、私のニーズを実現するために別の関数を作成しました。関数の原理は非常にシンプルです...