Page 1 of 1
Need help with my php dir class!!!
Posted: Thu Nov 13, 2003 8:41 am
by Merlin3D
Code: Select all
<?php
class dir_class
{
var $dir_name;
var $dirs = array();
var $files = array();
var $idx = NULL;
var $sortlists;
function open($dirname, $sortlists = false)
{
if(($dirname != "") || (is_dir($dirname) == true))
{
$this->dir_name = $dirname;
}
if($dh = opendir($this->dir_name))
{
$this->idx = $dh;
while(($file = readdir($this->idx)) !== false)
{
if($file != '..' || $file != '.')
continue;
if(is_dir($file))
$this->dirs[] = $file;
else
$this->files[] = $file;
}
@closedir($this->idx);
if($sortlists == true)
{
sort($this->dirs);
sort($this->files);
}
}
}
function file_types()
{
foreach($this->files as $filenum => $filename)
{
$file_types[$filenum] = filetype($this->dir_name.'/'.$file[$filenum]);
}
return $file_types;
}
function file_sizes()
{
foreach($this->files as $filenum)
{
$file_sizes[$filenum] = filesize($this->dir_name.'/'.$file[$filenum]) / 1024;
}
return $file_sizes;
}
function get_dirs()
{
return $this->dirs;
}
function get_files()
{
return $this->files;
}
}
?>
Example :
Code: Select all
<?
include("includes/dir_class.inc.php");
$gallery = new dir_class;
$gallery->open("/home/gallery" , true);
$types = $gallery->file_types();
$sizes = $gallery->file_sizes();
$dirs = $gallery->get_dirs();
$files = $gallery->get_files();
print_r($types);
print_r($sizes);
print_r($dirs);
print_r($files);
?>
can anyone tell me if you see any errors?
Posted: Thu Nov 13, 2003 8:51 am
by twigletmac
Do you get any errors when you run the code, what does/doesn't happen that you don't/do expect?
Mac
Posted: Thu Nov 13, 2003 8:53 am
by Merlin3D
Well it just echos blank array's it doesnt show the files in that dir. So i dont know whats wrong
Posted: Thu Nov 13, 2003 9:04 am
by Merlin3D
well heres what shows up on my screen.
Array() Array()
Posted: Thu Nov 13, 2003 9:33 am
by Merlin3D
anyone
Posted: Thu Nov 13, 2003 10:06 am
by twigletmac
Have you tried putting some debugging echo()'s into the class so that you can see what's going on in there?
E.g:
Code: Select all
function open($dirname, $sortlists = false)
{
echo '<p>$dirname = '.$dirname.'</p>';
if (($dirname != "") || (is_dir($dirname) == true)) {
$this->dir_name = $dirname;
} else {
echo '<p>'.$dirname.' is either empty or not a directory.</p>';
}
if ($dh = opendir($this->dir_name)) {
$this->idx = $dh;
while (($file = readdir($this->idx)) !== false) {
echo 'Current File is: '.$file;
if ($file != '..' && $file != '.') {
if (is_dir($file)) {
echo ' and is a directory <br />';
$this->dirs[] = $file;
} else {
echo ' and is a file <br />';
$this->files[] = $file;
}
}
}
@closedir($this->idx);
if ($sortlists == true) {
sort($this->dirs);
sort($this->files);
}
} else {
echo '<p>The directory could not be opened</p>';
}
echo '<pre>Directories - ';
print_r($this->dirs);
echo '</pre>';
echo '<pre>Files - ';
print_r($this->files);
echo '</pre>';
}
Mac
Posted: Thu Nov 13, 2003 10:14 am
by Merlin3D
I dont understand
Parse error: parse error in /home/includes/dir_class.inc.php on line 42
Fatal error: Cannot instantiate non-existent class: dir_class in /home/gallery.php on line 5
Posted: Thu Nov 13, 2003 10:26 am
by twigletmac
There was a missing brace in the code I posted (it was just an example after all) but I've edited the code now and added it in.
Mac
Posted: Thu Nov 13, 2003 10:34 am
by Merlin3D
YOU ARE GOD!!! Thanks sooooooooooo much!!!