rekursiv programmieren innerhalb einer Klasse
mika
- php
Hallo Zusammen,
wenn ich innerhalb einer Klasse rekursiv programmiere, gibt PHP folgenden Fehler aus:
Fatal error: Call to undefined function getImages() in C:\Programme\xampp\htdocs\download\image.php on line 10
class Image{
//Anzahl und Dateinamen aller Bilder ermitteln
function getImages($folder){
$fp = opendir($folder);
while($file = readdir($fp)){
//ist $file ein Verzeichnis?
if(is_dir("$folder/$file") && $file!="." && $file!=".."){
echo $folder.'/'.$file.' (dir)<br />';
getImages("$folder/$file");
}
.
.
.
}
}
}
Wenn ich die Funktion getImages allerdings ausserhalb der Klasse schreibe funktioniert der Selbstaufruf einwandfrei.
Was mache ich falsch?
Viele Grüße
Mikael Parmentier
Hi,
Was mache ich falsch?
Du versuchst, eine Funktion aufzurufen, anstatt eine Methode des aktuellen Objektes zu referenzieren.
Cheatah
Hello Mika,
function getImages($folder){
Das ist sowieso nicht OK oder gefährlich (Endlosschliefe) was Du da machst.
Beachte bitte symbolische Links auf Verzeichnisse.
Ich kann es jetzt leider im Moment nicht ausprobieren, weil ich keinen Linux-Host zum Spielen hier habe und XAMPP ist dafür leider nicht unbedingt geeinget...
Entweder, Links werden unterschlagen, oder aber sie werden wie Directories behandelt und können dann, wenn sie in eine übergeordnete Ebene verweisen, zu Endlosschliefen des Scriptes führen.
Ich hatte hier Ende letzten Jahres eine Directory-Listing-Funktion veröffentlicht, die Rücksicht auf solche Dinge nimmt. Musst Du bitte mal suchen. Ich versuche auch, sie zu finden.
Du solltest also bei Dirs auf jeden Fall die Auflösung in den Realpath betreiben und kontrollieren, ob er schon einmal in der Sammelliste enthalten ist. Ohne Sammelliste kommst Du nicht aus.
Sonst hast Du nachher einen zirkulären Verlauf gebastelt und wunderst Dich...
Ein harzliches Glückauf
Tom vom Berg
http://bergpost.annerschbarrich.de
.
Hello,
Ich hatte hier Ende letzten Jahres eine Directory-Listing-Funktion veröffentlicht, die Rücksicht auf solche Dinge nimmt. Musst Du bitte mal suchen. Ich versuche auch, sie zu finden.
habe ihn doch noch gefunden http://forum.de.selfhtml.org/archiv/2007/12/t163759/#m1066617
Ein harzliches Glückauf
Tom vom Berg
http://bergpost.annerschbarrich.de
.