Mam problem z w/w funkcjami. Mam klasę która tworzy mi plik CSV dla podanej sciezki. Wywołanie:
<?php $A = new A(); $A->stworzCSV("."); ?>
Dla katalogu głównego (sciezka '.') plik CSV generuje się prawidlowo i wyglada tak:
Kod
C:\Program Files\WebServ\httpd
.,d,0B,2008-07-07 14:03:43,2008-07-23 11:59:11
..,d,0B,2008-07-07 14:03:39,2008-07-07 14:04:02
class,d,0B,2008-07-23 08:57:14,2008-07-23 09:35:11
index.php,f,105B,2008-07-07 14:09:49,2008-07-23 12:40:48
plik.csv,f,1.28kB,2008-07-23 11:44:56,2008-07-23 12:40:18
strona_tyt22.zip,f,714.15kB,2008-06-02 09:23:15,2008-06-02 09:23:15
stronka,d,0B,2008-07-23 08:56:44,2008-07-23 08:56:56
Thumbs.db,f,4.5kB,2008-07-07 14:08:07,2008-07-07 14:08:08
.,d,0B,2008-07-07 14:03:43,2008-07-23 11:59:11
..,d,0B,2008-07-07 14:03:39,2008-07-07 14:04:02
class,d,0B,2008-07-23 08:57:14,2008-07-23 09:35:11
index.php,f,105B,2008-07-07 14:09:49,2008-07-23 12:40:48
plik.csv,f,1.28kB,2008-07-23 11:44:56,2008-07-23 12:40:18
strona_tyt22.zip,f,714.15kB,2008-06-02 09:23:15,2008-06-02 09:23:15
stronka,d,0B,2008-07-23 08:56:44,2008-07-23 08:56:56
Thumbs.db,f,4.5kB,2008-07-07 14:08:07,2008-07-07 14:08:08
Natomiast gdy próbuje wywołać ją dla katalogu podrzędnego(sciezka 'stronka') dostaje warningi:
<?php $A = new A(); $A->stworzCSV("./stronka"); ?>
Kod
Warning: filesize() [function.filesize]: stat failed for img in C:\Program Files\WebServ\httpd\class\A.class.php on line 21
Warning: filectime() [function.filectime]: stat failed for img in C:\Program Files\WebServ\httpd\class\A.class.php on line 34
Warning: filemtime() [function.filemtime]: stat failed for img in C:\Program Files\WebServ\httpd\class\A.class.php on line 39
Warning: filectime() [function.filectime]: stat failed for img in C:\Program Files\WebServ\httpd\class\A.class.php on line 34
Warning: filemtime() [function.filemtime]: stat failed for img in C:\Program Files\WebServ\httpd\class\A.class.php on line 39
img jest katalogiem, a rozpoznawany jest jako plik przez is_dir()
dla podkatalogu class w katalogu stronka informacje wyswietlane sa poprawnie, tak samo dla . i .. oraz dla plików znajdujących sie w katalogu
Plik CSV wyglada nastepująco:
Kod
C:\Program Files\WebServ\httpd\stronka
.,d,0B,2008-07-07 14:03:43,2008-07-23 11:59:11
..,d,0B,2008-07-07 14:03:39,2008-07-07 14:04:02
class,d,0B,2008-07-23 08:57:14,2008-07-23 09:35:11
img,f,B,1970-01-01 01:00:00,1970-01-01 01:00:00
index.php,f,113B,2008-07-07 14:09:49,2008-07-23 13:32:49
lib,f,B,1970-01-01 01:00:00,1970-01-01 01:00:00
smarty,f,B,1970-01-01 01:00:00,1970-01-01 01:00:00
templates,f,B,1970-01-01 01:00:00,1970-01-01 01:00:00
templates_c,f,B,1970-01-01 01:00:00,1970-01-01 01:00:00
.,d,0B,2008-07-07 14:03:43,2008-07-23 11:59:11
..,d,0B,2008-07-07 14:03:39,2008-07-07 14:04:02
class,d,0B,2008-07-23 08:57:14,2008-07-23 09:35:11
img,f,B,1970-01-01 01:00:00,1970-01-01 01:00:00
index.php,f,113B,2008-07-07 14:09:49,2008-07-23 13:32:49
lib,f,B,1970-01-01 01:00:00,1970-01-01 01:00:00
smarty,f,B,1970-01-01 01:00:00,1970-01-01 01:00:00
templates,f,B,1970-01-01 01:00:00,1970-01-01 01:00:00
templates_c,f,B,1970-01-01 01:00:00,1970-01-01 01:00:00
Klasa CSV
<?php //Klasa generująca plik CSV class A{ //zmienne dostępne publicznie //zmienne dostępne wewnątrz klasy private $uchwyt; private $plik; //funkcja zamieniająca bierzący katalog na tablice zawierająca informacje o plikac
h i katalogach oraz ich nazwy private function Dir2array($sciezka){ $this->data[] = $this->plik.','.$this->spr().','.$this->RozmiarPliku().','.$this->stworzono().','.$this->zmodyfikowano(); } } } //funkcja zwracająca rozmiar pliku i zamienijąca go na postać przyjazną dla człowi
eka private function RozmiarPliku(){ if($rozmiar < 1024){ return $rozmiar_pliku = $rozmiar.'B'; } elseif($rozmiar > 1024 && $rozmiar < 1024*1024){ }elseif($rozmiar > 1024*1024){ } } //funkcja zwracająca datę stworzenia pliku private function stworzono(){ } //funkcja zwracająca datę modyfikacji pliku private function zmodyfikowano(){ } private function spr(){ if($spr==TRUE){ return 'd'; }else{ return 'f'; } } public function stworzCSV($sciezka){ $this->Dir2array($sciezka); foreach($this->data as $zapisz){ } } //koniec } ?>
Jeśli masz jakiś pomysł to proszę o pomoc.
pozdrawiam