PHP Inhaltsverzeichnis

Hallo !

hätte nochmal ne Frage.

Habe Dateien im Format
e101_10.html
e101_11.html
.
.
.
e199_99.html

Diese sollen nun systematisch ausgelesen werden, d.h. das e steht für EInzel, das 101 für Krüge und das 10 z.B. für Zinn.

Wie könnte man das ganze am besten verwirklichen, dass man z.b. in einer Tabelle das ganze hinterlegt und wenn man dann die Seite öffnet, dann steht da
Einzel Krüge Zinn
Einzel Krüge Keramik
.
.
.
usw

Das ganze sollte dann noch ein jeweiliger Link auf die Seite sein.

Vielen Dank für Eure Hilfe

STefan

Nur ein kleienr Denkanstoss (hab sicher wirder die 's mit den 's verwechselt und diverses interpunktionsgedöns durcheinander geworfen):

echo „“;
for ($a=101, $a";
for ($b=10, $bName des Links";
}
echo „“;
}
echo „/table“;

Den Name des Links kannst du ja in die ensprechende HTML-Datei reinschreiben, wenn er sich nicht von dem Muster ableiten lässt. Z.B. als Titel. Das kannste dann in der Schleife jedesmal rauslesen. Zum Beispiel so in der Art:

// html-Dokument einlesen, zerlegen und so Zeug
$filesplit = explode(
array("",""),
strtolower ($file_get_contens(„e$a_$b.html“))
);
// Titel des html-Dokuments ausgeben
echo $filesplit[1];

Hab grad nix php-Fähiges da, also erwarte nicht, daß der quellcode, ohne tausend weitere Korrekturen, irgendeine Funktion zeigt! :wink:

abend stefan…

—php—

// Diesen Array müsstest Du dann dynamisch mit Filenamen füllen…
$myFiles = array( ‚e101_10.html‘, ‚e101_11.html‘,‚z101_11.html‘,
‚e199_10.html‘, ‚e199_11.html‘,‚az199_11.html‘ );

// HIER WIRD DEFINIERT WELCHE WERTE DURCH WELCHE ERSETZT WERDEN SOLLEN
$ReplaceArray = array(
array( „e“ => „Einzeln“,
„z“ => „Zusammen“ ),
array( „199“ => „Eimer“,
„101“ => „Krug“ ),
array( „10“ => „Zinn“,
„11“ => „Keramik“ ) );

// !! HIER GESCHIEHT DER EIGENTLICHE AUFRUF !!
echo dataToTable( fetchFiledata( $myFiles ) );

// Überprüft $fileArray auf Korrektheit hinsichtlich des Dateinamens
// und speichert einzelne Informations-Fragemente in einem Array, der
// auch zurückgegeben wird.
function fetchFiledata( $fileArray ) {
foreach( $fileArray as $key => $value )
if( !ereg( „(^[a-z|A-Z]{1})([0-9]{3})_([0-9]{2}).[a-z|A-Z]{2,5}“,
$value, $parts ) )
continue;
else $retVal[] = array( $parts[0], $parts[1], $parts[2], $parts[3] );
return $retVal;
}

// Visualisiert einen Array als HTML-Tabelle.
function dataToTable( $dataArr ) {
$retVal = " ".
" DATEI MENGE ".
" BEHAELTER MATERIAL „;
for( $i=0; $i“;
$retVal .= „“;
}
$retVal .= „“;
return $retVal;
}

// Ersetzt $val durch zugewiesene Werte aus $ReplaceArray
function replaceValue( $val, $ind ) {
global $ReplaceArray;
if( $ind > 0 )
return $ReplaceArray[$ind - 1][$val];
return „$val“;
}
?>
—php—

hoffe ich konnte dir helfen…

mfg

zebuon::

Hallo zebulon
vielen vielen Dank für die Antwort…

Bräuchte das ganze jetzt eigentlich nur mit zwei Veränderungen:

  1. das Script müsste die Dateien selbst auslesen (sind ca. 150 Dateien)
    und
  2. Müsste ich irgenwie sortieren können also z.B. mit index.php?gruppe=101 oder so, dass dann alles was 101 im Text hat mit rauskommt.

Ich wäre sehr dankbar wenn dies zu verwirklichen wäre…

Viele Grüße & noch schöne Ostern

Stefan

Hallo Stefan !

  1. das Script müsste die Dateien selbst auslesen (sind ca. 150
    Dateien)
    und
$myFiles = Array();
$DIR = opendir("."); // Pfad evtl. anpassen
while($file=readdir($DIR))
 if (is\_file($file)) $myFiles[] = $file;
closedir($DIR);

dahin, wo jetzt die Files definiert sind.

  1. Müsste ich irgenwie sortieren können also z.B. mit
    index.php?gruppe=101 oder so, dass dann alles was 101 im Text
    hat mit rauskommt.

oben statt
if (is_file($file)) $myFiles[] = $file;
folgendes

if (is\_file($file) && 
 ((!isset($\_GET['gruppe'])) ||
 (strstr($file, $\_GET['gruppe'])))) $myFiles[] = $file;

Liste nur die Dateien ein, deren Dateiname den Text nach „gruppe“ enthält. Wenn „gruppe“ fehlt, werden alle Dateien eingelesen.

Alexander

P.S.: Nicht getestet, evtl. sind noch Tippfehler drin :wink:

Hallo !

super, das ganze funktioniert wie am schnürchen, vielen vielen dank.

Eine letzte Bitte hätte ich aber noch:

Sortieren…nämlich zuerst nach Eimer, Krug usw. dann nach Zinn usw. und dann erst nach e oder z.

Vielleicht lässt sich das ganze nochmals ändern.
Vielen dank schon mal für die Antwort(en)

Gruß
Stefam