Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

PHP: Call to undefined function ...

120  
Apels1n прохожий23.09.09 11:58
23.09.09 11:58 
Может я слепой, но никак не могу распознать, в чем заключается ошибка. Функция определена, а выдает ошибку.
Сорры за много букав
<?php
error_reporting(E_ALL | E_NOTICE);
class Dir
{
private $filetype = array();
private $root;
private $deny = array();
private $files = array();

public function setRoot ($var)
{
$this->root = $var;
}

public function denyFolder ($var)
{
$this-> deny = $var;
}


public function setFiletype ($var)
{
$this-> filetype = $var;
}

public function startSearch()
{
$this -> doNavigate();
if ($this->files)
{
return $this->files;
}
else
{
return false;
}
}

private function doNavigate()
{
$sort = array();

if ($handle = opendir($this->root))
{
while ($found = readdir($handle))
{
if ($found != '.' && $found != '..')
{
$sort[] = $this->root . '/' . $found;
}
}
//print_r($sort);

if (sizeof($sort) > 0)
{
natcasesort($sort);
foreach ($sort as $var)
{
if (is_dir($var))
{
$this->setFolder($var);
$this->doNavigate();
}
else if (is_file($var))
{
$this->setFile($var);
}
}
}
closedir($handle);
}
}

private function setFolder ($folder)
{
if (!$this->checkFolder($folder))
{
$this->root = $folder;
}
}

private function checkFolder($folder)
{
foreach ($this->deny as $forbidden)
{
$tmp = explode('/', $folder);
if ($tmp[count($tmp) -1] == $forbidden)
{
return true;
}
}
}

private function setFile($file)
{
if ($this->checkFiletype($file))
{
$filesize = filesize($file);
$filetime = filemtime($file);
$mark = strrpos($file, "/");
$path = substr($file, 0, $mark);
$file = substr($file, $mark + 1);
$this->files[] = array(
'path' => $path,
'file' => $file,
'size' => $filesize,
'time' => $filetime
);
}
}

private function checkFiletype($file)
{
foreach ($this-> filetype as $valid)
{
if (substr($file, -4) == $valid)
{
return true;
}
}
}
}
$root = $_SERVER['DOCUMENT_ROOT'].'/testDir';
$folder = array('privat', 'tracker', 'phpMyAdmin');
$filetype = array('.htm','.php');
$dir = new Dir;
$dir -> setRoot($root);
$dir = denyFolder($folder); // <----- ta samaja 129. stroka
$dir = setFiletype($filetype);
$result = $dir -> startSearch();
print_r($result);
?>


В ответ на:

Fatal error: Call to undefined function denyFolder() in .............../Dir.class.php on line 129

#1 
voxel3d коренной житель23.09.09 12:05
voxel3d
NEW 23.09.09 12:05 
в ответ Apels1n 23.09.09 11:58
$dir->denyFolder($folder);
$dir->setFiletype($filetype);


Dropbox - средство синхронизации и бэкапа файлов.
#2 
Apels1n прохожий23.09.09 13:15
23.09.09 13:15 
в ответ voxel3d 23.09.09 12:05
ха, точно! раз 20 пересмотрел ведь и не заметил... Благодарю!
#3