php生成目录树的二个例子

发布时间:2019-11-24编辑:脚本学堂
本文介绍了php生成目录树的二个实现代码,php 目录树生成的方法,有需要的朋友参考学习下。

在php中生成目录,使用函数mkdir来实现。
bool mkdir ( string $pathname [, int $mode [, bool $recursive [, resource $context ]]] ) 

尝试新建一个由 pathname 指定的目录。

recursive 参数是 php 5.0.0 添加的。这个参数很方便,如果将 recursive 设置为 true,mkdir函数会将给定的pathname递归创建好。

mkdir的详细用法,可以参考 php mkdir创建多级目录的方法 php unlink()、mkdir()、rmdir()用法介绍 
以下是 php 4 中的解决方法:
 

复制代码 代码示例:
function mkdirs($path , $mode = 0755 ){    
        if(!is_dir($path)){    
            mkdirs(dirname($path),$mode);    
            mkdir($path,$mode);    
        }    
        return true;    
}   

例2,php 目录树的创建 
 

复制代码 代码示例:

<?php
   session_start();
  
include("inc/dbconnect.php");
   $obj=new
dbclass();
   include("inc/function.php");
  /*

   * 直接select * 获取所有数据
然后放到一个数组中,以menuid加一个字符,作为key。
然后循环,找到有父id的从数组中删除,同时把其加入到父menudid 的数组的 child中。
 
把最终的到的数组序列化存储。
 
下次如果这个有跟新 再跟新这个序列化的文件。

* */
?>

<?php
$sql ="select * from menu ";
$result =
mysql_query($sql);
while($tmp =
mysql_fetch_assoc($result)){
    $arr[] = $tmp;
}
$temp = $tree = array();
foreach($arr as $k =>
$v){
    $temp[$v['id']] = $v;
}
//引用构造树
foreach($arr
as $k => $v){
   
if(isset($temp[$v['parentid']])){
       
$temp[$v['parentid']]['children'][] =
&$temp[$v['id']];
   
}else{
        $tree[] =
&$temp[$v['id']];
    }
}
echo
'<pre>';print_r($tree);
//递归输出 生成目录树
function get_children($tree, &$step = '', $html =
''){
    foreach($tree as
$v){
        $html .=
"{$step}{$v['name']}<br />";
       
if(isset($v['children'])){
           
$step .=
'---';
           
$html = get_children($v['children'], $step,
$html);
       
}else{
         $step =
'';
}
   
}
    return $html;
}
$html =
get_children($tree);
echo $html;
?>