Moin,
Das ist mit Dateien echt totaler Quatsch^^, aber du hast Glück, da ich heut so kaputt drauf bin hab ich dir mal was gebastelt, zwar nicht komplett aber den Rest musste selber hinbekommen:
pw84.php
<?php
class pw84
{
/*
* Greetz by pApA noAh
*
*/
var $fileHref = "";
var $fileContent = "";
var $classErrors = array();
var $contentPointer = 0;
var $printIt = false;
var $contentArray = array();
function killClass()
{
echo "Fehler!<hr/>";
$this->classErrors[] = "Datei-Pointer: ".$this->contentPointer;
foreach($this->classErrors as $error)
{
echo $error."<br/>";
}
}
function nextStep()
{
$this->contentPointer = $this->contentPointer + 2;
if(trim($this->fileContent[$this->contentPointer]) == "")
{
$this->printIt = true;
}
$this->readContent();
}
function getOneLine($zone)
{
$this->contentPointer++;
if($this->fileContent[$this->contentPointer] != "")
{
$this->contentArray[$zone] = $this->fileContent[$this->contentPointer];
$this->nextStep();
}
else
{
$this->classErrors[] = "Fehler im Aufbau in Nähe von 'Datum'";
$this->killClass();
}
}
function getMultiLine($zone)
{
$this->contentPointer++;
while(trim($this->fileContent[$this->contentPointer]) != "")
{
$this->contentArray[$zone][] = $this->fileContent[$this->contentPointer];
$this->contentPointer++;
}
$this->contentPointer--;
$this->nextStep();
}
function getTable($zone)
{
$this->contentPointer++;
$tableFields = explode(";",$this->fileContent[$this->contentPointer]);
$this->contentArray[$zone]['fields'] = $tableFields;
$this->contentPointer++;
while(trim($this->fileContent[$this->contentPointer]) != "")
{
$currentLine = explode(";",$this->fileContent[$this->contentPointer]);
$this->contentArray[$zone][] = $currentLine;
$this->contentPointer++;
}
$this->nextStep();
}
function readContent()
{
if($this->fileContent[0] == "")
{
$this->classErrors[] = "Fehler im Aufbau der Datei!";
$this->killClass();
}
if($this->printIt === false && isset($this->fileContent[$this->contentPointer]))
{
switch(trim($this->fileContent[$this->contentPointer]))
{
case "Datum":
$this->getOneLine("Datum");
break;
case "Ueberschrift":
$this->getOneLine("Ueberschrift");
break;
case "Link":
$this->getOneLine("Link");
break;
case "Sondertext":
$this->getMultiLine("Sondertext");
break;
case "Text":
$this->getMultiLine("Text");
break;
case "Tabelle":
$this->getTable("Tabelle");
break;
default:
$this->classErrors[] = "Fehler im Aufbau der Datei! (2)";
$this->classErrors[] = $this->contentPointer;
$this->classErrors[] = $this->fileContent[$this->contentPointer];
$this->classErrors[] = print_r($this->contentArray);
$this->killClass();
}
}
}
function getFileContent()
{
if($this->fileContent = file($this->fileHref))
{
$this->readContent();
}
else
{
$this->classErrors[] = "Datei konnte nicht eingelesen werden!";
$this->killClass();
}
}
function pw84($file)
{
if(file_exists($file))
{
$this->fileHref = $file;
$this->getFileContent();
}
else
{
$this->classErrors[] = "Datei existiert nicht!";
$this->killClass();
}
}
function resultArray()
{
return $this->contentArray;
}
}
?>
Alles anzeigen
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>BluBB</title>
<style type="text/css">
<!--
#haupt-div {width:600px; padding:3px; margin-bottom:50px}
#datum-div {float:left}
#ueberschrift-div {float:left; margin-left:8px}
#sondertext-div {margin-bottom:5px}
#text-div {}
#link-div {margin-top:10px}
#tabelle-div {margin-top:20px}
#rekord-div {margin-top:3px}
-->
</style>
</head>
<body>
<?php
include_once("pw84.php");
$newResult = new pw84("1.txt");
$resultArray = $newResult->resultArray();
echo "<pre>";
print_r($resultArray);
echo "</pre>";
?>
</body>
</html>
Alles anzeigen
1.txt
Datum
07.12.2008
Ueberschrift
Lauf über die grüne Wiese
Sondertext
blablabla
Text
blablabla rabarber rabarber rabarber
Link
Bericht & Fotos
Tabelle
Name;AK;Strecke;Platz AK;Platz Ges.;Platz m/w;Zeit;Rekord
Patrick;M20;10 km;15;324;34;54:24 min
Patrick;M20;10 km;15;324;34;54:24 min;*
Patrick;M20;10 km;15;324;34;54:24 min
Patrick;M20;10 km;15;324;34;54:24 min
Alles anzeigen
Bei Txt ist zu beachten das unten bei den Zeilen kein Semicolon ans Ende gehört und das der Aufbau sich auf keinen Fall verändern darf, sprich Abstände usw usw sind entscheidend!
Der Array würde bei dieser Datei so aussehen:
Array
(
[Datum] => 07.12.2008
[Ueberschrift] => Lauf über die grüne Wiese
[Sondertext] => Array
(
[0] => blablabla
)
[Text] => Array
(
[0] => blablabla rabarber rabarber rabarber
)
[Link] => Bericht & Fotos
[Tabelle] => Array
(
[fields] => Array
(
[0] => Name
[1] => AK
[2] => Strecke
[3] => Platz AK
[4] => Platz Ges.
[5] => Platz m/w
[6] => Zeit
[7] => Rekord
)
[0] => Array
(
[0] => Patrick
[1] => M20
[2] => 10 km
[3] => 15
[4] => 324
[5] => 34
[6] => 54:24 min
)
[1] => Array
(
[0] => Patrick
[1] => M20
[2] => 10 km
[3] => 15
[4] => 324
[5] => 34
[6] => 54:24 min
[7] => *
)
[2] => Array
(
[0] => Patrick
[1] => M20
[2] => 10 km
[3] => 15
[4] => 324
[5] => 34
[6] => 54:24 min
)
[3] => Array
(
[0] => Patrick
[1] => M20
[2] => 10 km
[3] => 15
[4] => 324
[5] => 34
[6] => 54:24 min
)
)
Alles anzeigen
Wunderbar um damit zu arbeiten...
Vielleicht hilft dir ja noch wer bei der Ausgabe
)