Hallo zusammen
Ich habe eine Klasse gemacht welche bestimmte Files aus einem Ordner liest diese einzeln öffnet und bestimmte Daten daraus herausliest.
Das klappt nun (auch mit der Hilfe dieses Boards

) und ich erhalte eine Liste in der jedes File mit Namen angegeben ist und die Daten daneben stehen.
Die Files die eingelesen werden sehen so aus:
Zitat:
#Kopf;F46
#Anschrift1;Luri furi
#Anschrift2;Weg
#Anschrift3;3826 xx
#Seiten;02
#AnzahlFxx;001
#Kopf;F46
#Anschrift1;PEter Pan
#Anschrift2;Alpenrose
#Anschrift3;3826 xx
#Seiten;04
#AnzahlFxx;001
#Kopf;F46
#Anschrift1;xx Fritz
#Anschrift2;Alpenrose
#Anschrift3;3826 Blub
#Seiten;01
#AnzahlFxx;001
|
Die Klasse liest nun die Zahl die hinter #Seiten; steht aus und addiert diese mit der nächsten. Ausgegeben wir das Total eines Files. Ausserdem schaut sie die "Art" des Files an. Das sind #AnzahlFxx; die sind immer 001 oder 000.
Was nicht klappt ist das Total zusammenrechen. Ich möchte also das die Anzahl Seiten eines Files mit der Anzahl Seiten des zweiten Files addiert werden. Aber da macht er einfach Fehler die ich nicht verstehe. Er rechnet halt falsch
Hier die Klasse:
PHP-Code:
<?php
class Fuck {
var $total;
var $karten;
function Lala() {
#########################################################################
# DIR lesen #
#########################################################################
$verz = opendir("files");
$verzlink = array ("0");
while ($verzfile = readdir ($verz)) {
// Alle Ordner/Files werden in den Array geschrieben
$verzlink[] .=$verzfile;
}
// Es wird gezählt wieviele Elemente im Array sind
$anzahl = count($verzlink);
// In dieser for-Schleife werden alle
// Arrayelemente ausgegeben
for($x = 1; $x < $anzahl; $x++) {
if ($verzlink[$x] == "." or $verzlink[$x] == ".." or $verzlink[$x] == "0" ) {
} else {
echo "\n";
echo "\n";
echo "<table width=\"480\" border=\"1\">\n";
echo "<tr>\n";
echo "<td colspan=\"3\" bgcolor=\"#DDD1BB\">\n";
echo "Name der Datei ";
echo "[b]";
echo $verzlink[$x];
echo "[/b]";
echo "</td>\n";
echo "</tr>\n";
echo "<tr bgcolor=\"A6BFE0\">\n";
echo "<td>\n";
echo "Anzahl TVD Nummern";
echo "</td>\n";
echo "<td>\n";
echo "Anzahl Seiten Total";
echo "</td>\n";
echo "<td>\n";
echo "Art:";
echo "</td>\n";
echo "</tr>\n";
echo "<tr bgcolor=\"#FFFFCC\">\n";
$this->leseseiten($verzlink[$x]);
echo "</tr>\n";
echo "<table>\n";
echo "
\n";
echo "
\n";
}
}
// Verzeichnis geschlossen
closedir($verz);
}
#########################################################################
# #
# Lesen #
# #
#########################################################################
function leseseiten($name) {
//text aus file einlesen
//$text = implode ('', file ("http://mpfi.intra.tierverkehr.ch/bestandeskontrollerechner/files/".$name.""));
$text = file_get_contents("http://mpfi.intra.tierverkehr.ch/bestandeskontrollerechner/files/".$name."");
//pregmatch für die seiten
preg_match_all("#Seiten;(\d+)#", $text, $matches, PREG_PATTERN_ORDER);
//für die art
preg_match_all("#AnzahlFxx;(\d+)#", $text, $art, PREG_PATTERN_ORDER);
//Seiten machen
$seiten = 0;
for($i = '0'; $i < count($matches[1]); $i++){
$seiten += (integer)$matches[1];
}
echo "<td>";
echo $seiten;
echo "</td>";
$alleseiten = '0';
foreach ($matches[1] as $key => $value) {
//echo "TVD Nummer: $key; Wert: $value
n";
$alleseiten = $alleseiten + $value;
}
echo "<td>";
echo "Seiten in diesem File: ";
echo $alleseiten;
$this->$total = $this->$total + $alleseiten;
echo "
Zwischentotal:";
echo $this->$total;
echo "</td>";
foreach ($art[1] as $key => $artvalue) {
//echo "TVD Nummer: $key; Wert: $value
n";
}
echo "<td>";
//echo $artvalue;
if ($artvalue == '001') {
$this->$karten = $this->$karten + $seiten;
echo "Zwischentotal Karten:";
echo $this->$karten;
} else {
echo "Keine Karten in diesem File";
}
echo "</td>";
}
}
?>
Also die obere MEthodeLala müsst ihr eigentlich gar nicht beachten, die öffnet einfach jedes File einzeln und lädt dann pro File die MEthode leseseiten().