Automatisches auslesen von Ordnern und ausgabe von enthaltenen Textdateien?

Suchfunktion

Erfahrenes Mitglied
Guten Morgen! :)
Also nich viel drum rumreden, gleich zum Problem:

Ich will, dass ein bestimmter ordner (nennen wir ihn mal 'dateiordner') ausgelesen wird, also alle textdatein dir dort drinne sind und dann:
1.) Es soll eine Seite generiert werden, die automatisch links erstellt.
2.) Diese Links sollen auf eine importierte Textdatei, also weitere PHP-Seite, verknuepfen
3.) Die textdatein sollen bei jedem Aufruf neu generiert werden, so dass es nur eine PHP-Seite gibt, die automatisch beim Aufruf eine bestimmte Textdatei importiert und (wie vorgegeben per CSS) formatiert ;)

Also nochmal verstaendlicher mit beispiel:
1.) uebersicht.php wird aufgerufen (uebersicht.php liesst automatisch '/dateiordner/' aus und fuer jede textdatei wird ein link erstellt mit der 1.zeile der textdatei als name (also bspl. 'Linux formatieren' steht in einer der Textdateien, also soll auch der link 'Linux formatieren' heissen, oder so ;))
2.) Ruft jemand einen link auf, so soll in einer vorerstellten seite automatisch der dazugehoerige textinhalt auf der seite ausgegeben werden.

Wie macht man das am besten?
Wuerde ma sagen dass man dann jeden link per schleife erstellt, weil so kann man, denk ich, am besten den ordner auslesen und links erstellen.
Das Aufrufen der Site wuerde doch so gehen, oder?
Code:
www.bla.de/blub/dateiordner/ausgabe.php?=datei.txt

Netuerlich muss, wie gesagt, jeder link automatisch mit verknuepfung erstellt werden..

Mh ich raff selber nich so ganz was ich will wenn ich mir meinen Text durchlesen, also ich versuchs noch n drittes mal, etwas klarer :)
(Is aba auch ne doofe uhrzeit fuer fragen stellen :suspekt: :suspekt: :suspekt:

1.) uebersicht.php liesst ordner aus und fuer jede textdatei wird ein link erstellt, erstellt wird der link aus der ersten zeile der dazugehoerigen textdatei (bspl. 'Linux formatieren') und die verknuepfung ist etwa 'dateiordner/ausgabe.php?=linux-formatieren.txt'..
2.) wenn man auf den link klickt wird die 'linux-formatieren.txt' ausgelesen und in eine vorgefertigte php-datei (also ausgabe.php) importiert..

Ich hoffe ihr wisst was ich meine.. schlechte uhrzeit fuer fragen aber es is echt dringend
Fuer bessere Vorschlaege bin ich immer offen,
hab absolut null Ahnung von PHP :-/ Naja, nur beschraenkt.. ;)

(Ich hoffe mal Ihr seid wacher als ich und versteht was ich da geschrieben hab.. beim 3.mal durchlesen check ichs immanoch net so wirklich :P :P


DANKE SCHONMAL


cucu @ all
Und schoenes neues jahr :P


P.S.:
Ich hatte heute morgen schon 3 threads eroeffnet, aber sind alle beim erstellen abgeschmiert so dass nur ein 'Ghost'-Thread erschienen ist in dem nix drinne steht.. sorry!
 
ich hoffe ich verstehe dich richtig:

PHP:
 $dir="deinordner";
 if ($_GET["file"]) { // Wenn eine Textdatei per GET übergeben wird
 	 // Diese Datei öffnen:
 	 include($dir."/".$_GET["file"]);
 }
 else { // Wird keine Datei übergeben ...
 $open=opendir($dir);
 while ($file = readdir($open)) { // per Schleife die Dateien auslesen
    if ($file != "." AND $file != "..") {
 	 $daten=file($dir."/".$file); // Die Datei in Array einlesen
 	echo "<a href=\"".$PHP_SELF."?file=".$file."\"> ".$daten[0]."</a>"; // 1. Zeile der Datei als Titel des Links nehmen
 }

ich hoffe, du verstehst davon auch bissi was, und kopierst nicht einfach alles. Denk dir auch was dabei. Das war jetzt nur ein Ansatz, und ist natürlich erweiterbar. Enthalten sind jetztz:

Links zu den Einzelnen Dateien eines Ordner, mit Linktitel (=1.Zeile der jeweiligen Datei) !
NAtürlich nicht getestet, und somit ohne Gewähr ^^
 
Hi,

mh danke habe mir in langer bastelkarbeit mit ner menge hilfe schon was zusammenbasteln koennen ^^ Trotzdem danke!

Hier der Code der Datei in der die Links dann stehen (list.php):
PHP:
<table>
	<?php
	  function lsfiltered ($dir, $extension) {
		$dirh = opendir ($dir);
		while ($file = readdir($dirh)) { 
		  if ($file != '..' && $file != '.') {
			$fileinfo = pathinfo ($dir.$file);
			if ($fileinfo['extension'] == $extension) {
			  $filedata = file ($dir.$file);      
			  print '<tr><td><a href="show.php?file='.urlencode($file).'">'.htmlspecialchars(trim($filedata[0]))."</a></td>\n";
			  print "<td>".$fileinfo['extension']."</td></tr>\n";
			}
		  }
		}
		closedir ($dirh);
	  }
	  lsfiltered ('./dateiordner/','txt');
	?>
</table>


Und in dieser PHP-Seite wird der text ausgegeben (show.php):
PHP:
<?php
  $file = realpath('./dateiordner/'.$_GET['file']);
  if (file_exists($file)) { // wenn datei nicht existiert, dann stop
    $cwdinfo = pathinfo ($_SERVER['PHP_SELF']);
    $fileinfo = pathinfo ($file);
    if (preg_match ('/^'.escape4reg($cwdinfo['basedir']).'.*'.escape4reg($extension).'$/i',$file)) {
      $filedata = file ($file);
      print nl2br(htmlspecialchars(implode ("", $filedata)));
    }
    else {
      print "NO!";
    }
  }
  else {
    print "File doesnt exist!";
  }
  
  function escape4reg ($var) {
    return preg_replace ('/([\/\\\^\$\.\[\]\(\)\?\*\+\{\}\|])/','\\\\$1',$var);
  }
?>

So hab ich es momentan.. dann wird auch auf der list.php angezeigt, welches format die datei hat, auf die der Link weist.
Ausserdem wird der Linktitel aus der ersten Zeile der jeweiligen Textdatei erzeugt.
Praktisch ;)


ACHTUNG:
Die Textdatein (nicht die PHP-Seiten) muessen in einem unterordner namens 'dateiordner' sein! (Oder aendert den code einfach ab


Naja muss man noch n bissel modifizieren..

Ich will das ganze machen dass das automatisch in sektionen unterteilt wird, also auch z.B. mit sortieren von file-extensions und namen usw..
Wird schon :)

Wer sehn will wie's aussieht, der kann hier nachschaun:
<<beispiel>>

Naja danke an alle die helfen wollten/konnten :)

ciao @ all!

P.S.:
Ich steig da sogar durch.. das is schoen.. ich glaub ich tu mir php auch mal richtig an ;)
:rtfm: :rtfm: :rtfm: :rtfm: :rtfm: :rtfm:
 
Zuletzt bearbeitet:
Zurück