funktion bei auslesen von Dateien aus Verzeichnis funktioniert nicht

webdesign

Mitglied
Hallo zusammen
Ich bin fast am verzweifeln, da die einte funktion nicht geht.
Ich habe folgenden Script:

PHP:
 <?php 
$hdl=opendir('download/audio/files/');

while($file=readdir($hdl)){
if(($file!=".")&&($file!="..")){
echo"<a href='http://www.niklausrueegg.ch/download/audio/files/$file' target='_blank'>".$file."</a><br>";
}
}
closedir($hdl);
?>

Die Ausgabe ist aber immer noch:

.
..
sitemap Kopie 1.doc
sitemap Kopie 2.doc
sitemap Kopie 3.doc
sitemap Kopie 4.doc
sitemap Kopie 5.doc
sitemap Kopie 6.doc
sitemap Kopie 7.doc
sitemap Kopie.doc
sitemap.doc


Ich will aber die:
.
..

wegbekommen und das sollte doch durch diese Funktion gehen, geht aber irgendwie nicht. Kann man das auch noch auf andere weise entfernen?
 
Vorab: Dein Script müsste eigentlich klappen.

Probier mal das so :

PHP:
<?php 
$hdl=opendir('download/audio/files/');

while($file=readdir($hdl)){
if ((!$file==".") AND (!$file=="..")){
echo"<a href='http://www.niklausrueegg.ch/download/audio/files/$file' target='_blank'>".$file."</a><br>";
}
}
closedir($hdl);
?>
 
Das Problem kenne ich, die IF--Abfrage wird manchmal komplett ignoriert... Dabei geht es immer um irgendeine Verneinung (also "!=" oder "!funktion()"). Auf dieses Problem habe ich noch keine Lösung gefunden, gelöst habe ich es dadurch, dass ich den betroffenen Teil neu schrieb, und zwar anders als vorher. Probier mal die einzelnen Anführungszeichen... Oder schreib die Punkte in Variablen...

Bin mal echt auf die Lösung gespannt. ich hasse dieses Problem.
 
Dann erbeitet doch andersrum :

PHP:
<?php 
$hdl=opendir('download/audio/files/');

while($file=readdir($hdl)){
if (($file==".") AND ($file=="..")) $eijo=1;
else {
echo"<a href='http://www.niklausrueegg.ch/download/audio/files/$file' target='_blank'>".$file."</a><br>";
}
}
closedir($hdl);
?>
 
Ich kann mir auch gerade nicht erklären, wieso das Skript nicht funktionieren sollte. Ein anderer Vorschlag:
PHP:
<?php

	$dir = 'download/audio/files/';
	$hdl = opendir($dir);
	$abspath = substr(realpath($dir), strlen($_SERVER['DOCUMENT_ROOT']));
	echo '<ul>';
	while( $file = readdir($hdl) ) {
		if( $file=='.' || $file=='..' ) {
			continue;
		}
		echo '<li><a href="http://www.niklausrueegg.ch'.$abspath.'/'.$file.'" target="_blank">'.$file.'</a></li>';
	}
	echo '</ul>';
	closedir($hdl);

?>
 
Jetzt kommt bei mir folgende Fehlermeldung, was heisst das genau, was stimmt da nicht?

Parse error: syntax error, unexpected T_VARIABLE in /home/www/web201/html/download/audio/main.php on line 18
 
Die Fehlermeldung besagt, dass in der Zeile 18 eine unerwartete Variable notiert ist.
 
Gibt es irgendwie eine Möglichkeit die Dateien in einem Verzeichnis zu zählen und dann die ersten zwei einfach nicht ausgeben,damit diese Punkte verschwinden?
 
Es ist ganz komisch,langsam glaub ich wirklich ich spinn.
Manchmal wird die function überhaupt nicht ausgeführt und dann plötzlich kommt diese
Fehlermeldung, die vorher gar nicht kam, beim gleichen Script.
Kann es irgendwie an eine Einstellung beim Server liegen, oder an der Version von php?
 
Zurück