Why is this code throwing the following errors? Thanks.
<?
class DirTree {
/**
* Get a tree of folders and files from a spec dir
* @returns An ArrayCollection of Tree
*/
function DirTree($dir_tree) {
$_tree = $this->parse_dir($dir_tree);
return $_tree;
}
/**
* Get a tree of folders and files from a spec dir
* @returns An Array of Tree
*/
function parse_dir($folder) {
$dir = @opendir($folder);
$filecount = 0;
$foldercount= 0;
$tree= array();
$limb= array();
$cnt= 0;
while(false != ($item = @readdir($dir))) {
if($item == "." || $item == "..") continue;
if(is_dir("$folder/$item")){
$tmpTree = new DirTree();
$limb['sub_folder'][]['folder_name'] = $item;
$limb['sub_folder'][] = $tmpTree->parse_dir("$folder/$item");
$foldercount++;
$limb['folders'][] = $foldercount;
$filecount++;
$limb['files'][] = $filecount;
//continue;
}else{
$limb['file_name'][] = $item;
}
}
$tree[] = $limb;
$cnt++;
return $tree;
}
}
$class = new DirTree();
/* view array */
echo "<pre>";
print_r($class->DirTree("../../core/amf/app"));
echo "</pre>*****************************************************************";
?>
Warning: Missing argument 1 for DirTree:irTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8
Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9
Warning: Missing argument 1 for DirTree:irTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8
Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9
Warning: Missing argument 1 for DirTree:irTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8
Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9
Warning: Missing argument 1 for DirTree:irTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8
Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9
Warning: Missing argument 1 for DirTree:irTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8
Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9You have one issue. When you instantiate your class, you are required to pass to it one argument: the directory.
You specify this with the function declaration:
function DirTree($dirtree) {
If you want to make the directory optional, you need to specify a default value:
function DirTree($dirtree='./') {
Once you fix those issues, the other ones will go away.
So you have two choices:
(1) Start sending an argument with the $tempDir = new DirTree() call in the while(){} loop, or
(2) Make sending the argument option as stated above.
<?
class DirTree {
/**
* Get a tree of folders and files from a spec dir
* @returns An ArrayCollection of Tree
*/
function DirTree($dir_tree) {
$_tree = $this->parse_dir($dir_tree);
return $_tree;
}
/**
* Get a tree of folders and files from a spec dir
* @returns An Array of Tree
*/
function parse_dir($folder) {
$dir = @opendir($folder);
$filecount = 0;
$foldercount= 0;
$tree= array();
$limb= array();
$cnt= 0;
while(false != ($item = @readdir($dir))) {
if($item == "." || $item == "..") continue;
if(is_dir("$folder/$item")){
$tmpTree = new DirTree();
$limb['sub_folder'][]['folder_name'] = $item;
$limb['sub_folder'][] = $tmpTree->parse_dir("$folder/$item");
$foldercount++;
$limb['folders'][] = $foldercount;
$filecount++;
$limb['files'][] = $filecount;
//continue;
}else{
$limb['file_name'][] = $item;
}
}
$tree[] = $limb;
$cnt++;
return $tree;
}
}
$class = new DirTree();
/* view array */
echo "<pre>";
print_r($class->DirTree("../../core/amf/app"));
echo "</pre>*****************************************************************";
?>
Warning: Missing argument 1 for DirTree:irTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8
Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9
Warning: Missing argument 1 for DirTree:irTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8
Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9
Warning: Missing argument 1 for DirTree:irTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8
Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9
Warning: Missing argument 1 for DirTree:irTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8
Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9
Warning: Missing argument 1 for DirTree:irTree() in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 8
Notice: Undefined variable: dir_tree in C:\apache2triad\htdocs\flashservices_v1.9\services\folder_tree\dir_tree2.php on line 9You have one issue. When you instantiate your class, you are required to pass to it one argument: the directory.
You specify this with the function declaration:
function DirTree($dirtree) {
If you want to make the directory optional, you need to specify a default value:
function DirTree($dirtree='./') {
Once you fix those issues, the other ones will go away.
So you have two choices:
(1) Start sending an argument with the $tempDir = new DirTree() call in the while(){} loop, or
(2) Make sending the argument option as stated above.