PHP Array Frage (Poll - Script)
kurtm1 03.12.2005 - 14:35 762 9
nr1
Here to stay
|
So also hier zu meinem Code: Zuerst geht es darum aus einer Textdatei die so aufgebaut ist: Stand1: 1 //Zählerstand1 2 //Zählerstand2 3 //Zählerstand3 Die Werte zeilenweise in ein Array einzulesen, dies habe ich so gemacht:
$text=file('questions.txt');
for($i=0;$i<count($text);$i++)
$line[]=(int)$text[$i];
Weiters kommt folgende Prozedur, in der auf ein bestimmtes Ereignis reagiert wird, und die den dazugehörigen Zählerstand erhöht: switch ($q1)
{
case 1: $line[1]++; break;
case 2: $line[2]++; break;
case 3: $line[3]++; break;
}
Und jetzt kommt das Problem: Ich möchte die neuen Zählerwerte wieder im selbe Format (in jeder Zeile nur einen Zählerstand rausschreiben) Bis jetzt mache ich folgendes: $file=fopen('questions.txt','w');
for($i=0;$i<count($line);$i++)
fwrite($file,$line[$i],strlen($line[$i])+1);
fclose($file);
was zur Folge hat, dass zwar alle Werte wieder rausgeschrieben werden, jedoch alle in einer Zeile. Das heißt für mich, ich brauche zusätzlich einen „\n“ Tag. Nur wo bzw wie kann ich den zu jeder Zeile hinzufügen, wenn ich nur ein Integer Array habe? Wenn ich das Array ganz normal als String Array lasse, kann ich die einzelnen Elemente nicht inkrementieren… Bitte um Hilfe!
|
Frys_Assassin
information keeper
|
So rein ausm Stehgreif hätt ich gesagt: $file=fopen('questions.txt','w');
for($i=0;$i<count($line);$i++)
fwrite($file,$line[$i]."\n",strlen($line[$i])+1);
fclose($file);
Oder stören ihn da die unterschiedlichen Typen?
|
nr1
Here to stay
|
ich hab das schon so wie in deinem Code dazugefügt, allerdings passiert dann nichts, weil das Array ja ein Integer Typ ist
|
COLOSSUS
AdministratorGNUltra
|
Wie waer's mit Serialisierung?
|
nr1
Here to stay
|
Wie waer's mit Serialisierung? keine ahnung wie das in php funzen sollte
|
Facetious
Addicted
|
|
nr1
Here to stay
|
hmm ja das schaut zwar schön aus, aber ich kann mir nicht vorstellen, dass ich damit weiterkomme..
|
mat
AdministratorLegends never die
|
$file=fopen('questions.txt','wt');
for($i=0;$i<count($line);$i++)
{
$newline = $line[$i]."\n\r";
fwrite($file,$newline,strlen($newline));
}
fclose($file);
versuchs mal damit.. binaryfiles sind in php ein graus (auch wenn du von deinen posts her sowieso ein textfile willst ![:confused:](/images/smilies/confused.gif) ). mit textmode gibts aber auch ein paar probleme. zB macht fwrite aus jedem \r\n (das eigentlich crlf in windows) ein \n\n. wie auch immer, liegt wahrscheinlich auch an ein paar phpeinstellungen, vl ists ja auch ein bug. wenn du allerdings kein (von dir) lesbares textfile brauchst, dann rate ich dir zu einem separator a la '|', einfach ein zeichen, dass du nicht verwenden wirst. dann kannst du das eingelesen file einfach explode()'en..
|
nr1
Here to stay
|
habs inzwischen mit Hilfe von delphi-praxis.net geschafft $file = fopen('questions.txt', 'w');
for ($i=0; $i < count($line); $i++)
{
fwrite($file, $line[$i] . "\n", strlen($line[$i]) + 1);
}
fclose($file);
man muss nur aufpassen, weil der normale Editor die Datei falsch darstellt (keine zeilenumbrüche)
|
atrox
in fairy dust... I trust!
|
Bearbeitet von atrox am 08.12.2005, 14:23
|