Mehrere Dateien auslesen und den Inhlat teilweise anzeigen

daylon

Grünschnabel
Hallo!

Vielleicht gibt es schon die Antwort auf meine Frage, aber ich habe leider nichts gefunden.

Ich habe ein Problem und zwar: diese Funktion ließt den Ihnalt eines Ordners aus und schreibt die Dateien als Links in eine Tabelle:

PHP:
<?php
  
  $pfad= "verzeichnis/ordner";
  
  		$verz=opendir (''.$pfad.'/.');
  		while ($File = readdir ($verz)) {
  		if($File != '.' && $File != '..' && $File != '.htaccess')
  		{
  		 $i++;
  
 		echo " <table width=\"100%\" border=\"0\" cellpadding=\"1\" cellspacing=\"0\"><tr>
  		<td  width=\"35\" align=\"right\"> $i.</td>
 		<td >&nbsp;&nbsp;<a href=\"$pfad/$File\" target=\"_blank\">$File</a></td>
  <td>Hier der  --Betreff --</td>
  </tr></table>";}
  		   }
  ?>

Nun möchte ich die Funktion erweitern.
Alle Dateien in diesem Ordner nach dem Wort "Betreff" (befindet sich in jeder Datei) durchsuchen und 50 Zeichen nach dem String "Betreff" ebenfalls in der Tabelle anzeigen.
Habe schon wirklich sehr viel ausprobiert und komme einfach nicht weiter.

Für Eure Tipps bin ich sehr dankbar!

Viele Grüße
daylon
 
Hi

hast Du es mal mit der Funktion explode() oder split() zu trennen versucht.
Man könnte dann den index[1] entspr. abfragen und ausgeben.
 
Hi!

Nein,
Ich habe es mit der file() ausgelesen und nach "Betreff" gesucht - so weit so gut, aber eben nur mit einer Datei, gibt es mehrere Dateien geht nichts mehr - ich glaube ich stehe auf dem Schlauch und zwar mit beiden Füßen.... :confused:

Gruß
daylon
 
Hi

was ich meine ist folgendes
via explode nach der Bezeichung "betreff" suchen, also im Dateinamen, den Teil in eine Variable speichern und dann nur die ersten 50 Zeichen ausgaben.

PHP:
<?php
  
$pfad= "verzeichnis/ordner";
  
          $verz=opendir (''.$pfad.'/.');
          while ($File = readdir ($verz)) {
          if($File != '.' && $File != '..' && $File != '.htaccess')
          {
        $betreff = explode("betreff",$File);
		
		// Endung löschen z.b. .gif, 4 Zeichen
		$x = substr($betreff[1],0,-4);
		
		// 50 Zeichen ausgeben
		$ausgabe = substr($x,0,50);
		
		echo " <table width=\"100%\" border=\"1\" cellpadding=\"1\" cellspacing=\"0\"><tr>
          <td  width=\"35\" align=\"right\"> $i.</td>
        <td >&nbsp;&nbsp;<a href=\"$pfad/$File\" target=\"_blank\">$File</a></td>
  <td>$ausgabe</td>
  </tr></table>";
   $i++;
  }
             }
  ?>
 
Hi!

Besten Dank Luzie, aber ich glaube ich habe mich falsch ausgedrückt, SORRY.
Die Zeichenkette "Betreff" ist in jeder Datei zu finden, nicht im Dateinamen, wenn diese gefunden ist, sollen die nachfolgenden 50 Zeichen ausgegeben werden,
z.B. "Betreff Klassenarbeiten und Prüfungen" - hier wäre es also der Text "Klassenarbeiten und Prüfungen" der in der Tabelle angezeigt werden sollte.

Vielen Dank noch mal!
 
Hi

also ich habs mir schon gedacht. Die Kontruktion war wirklich etwas unwahrscheinlich.
Kannst Du denn keine Datenbank nutzen?
Da ist das Handling, für solche Aktion echt einfach.

Ansonsten musst Du Dich einfach mal mit dem Filsystem auseinanderstetzen
http://de3.php.net/manual/de/function.fopen.php

und halt mit den Zeichenkettenoptionen wie substr() etc. Beispiele findet mal im Manual.
 
Zuletzt bearbeitet:
Hallo Luzi!

Vielen Dank für Deine Hilfe!
Nein, leider muss ich mit Dateien arbeiten, Datenbak "ist nicht zu haben" - wäre zwar super, aber geht leider nicht!

Wie Du sagst, ich muss mit dem Filesystem auseinanderstetzen - wer weiß, vielleicht klappt es doch?

Noch Mal - vielen Dank!
 
Hi

vielleicht hilft Dir dies weiter

PHP:
<?php
if(file_exists('blindtext.txt')) {
	$finhalt = join('',file('blindtext.txt'));
	echo substr($finhalt,0,50);
}
?>
 
Zurück