Array zeilenweise in txt-Datei schreiben
Jochen
- php
Hallo zusammen!
Ich habe ein dringendes Problem...
Ich möchte den Inhalt eines Arrays zeilenweise in eine txt Datei schreiben, was nicht wirklich funktioniert. Es macht seltsame Sachen (genaue Erklärung folgt, wenn ihr sie benötigt). Hier mein Quelltext:
<?php
$distributor_file = "../distributor.txt";
$condition = file($distributor_file;
$endpage = "page07.php";
if ($sex == 1 and $bed == 1)
{$condition[0] = $condition[0] + 1+"\r\n";}
elseif ($sex == 1 and $bed == 2)
{$condition[1] = $condition[1] + 1+"\r\n";}
elseif ($sex == 1 and $bed == 3)
{$condition[2] = $condition[2] + 1+"\r\n";}
elseif ($sex == 1 and $bed == 4)
{$condition[3] = $condition[3] + 1+"\r\n";}
elseif ($sex == 2 and $bed == 1)
{$condition[4] = $condition[4] + 1+"\r\n";}
elseif ($sex == 2 and $bed == 2)
{$condition[5] = $condition[5] + 1+"\r\n";}
$distributor = fopen($distributor_file,"w");
for ($i=0;$i<count($condition);$i++)
{fwrite($distributor, "$condition[$i]");}
fclose($distributor);
?>
Moin!
Hallo zusammen!
Ich habe ein dringendes Problem...
Ich möchte den Inhalt eines Arrays zeilenweise in eine txt Datei schreiben, was nicht wirklich funktioniert. Es macht seltsame Sachen (genaue Erklärung folgt, wenn ihr sie benötigt). Hier mein Quelltext:
<?php
$distributor_file = "../distributor.txt";
$condition = file($distributor_file;
$condition = file($distributor_file); # Sytax: Klammer fehlte
$endpage = "page07.php";
if ($sex == 1 and $bed == 1)
{$condition[0] = $condition[0] + 1+"\r\n";}
elseif ($sex == 1 and $bed == 2)
{$condition[1] = $condition[1] + 1+"\r\n";}
elseif ($sex == 1 and $bed == 3)
{$condition[2] = $condition[2] + 1+"\r\n";}
elseif ($sex == 1 and $bed == 4)
{$condition[3] = $condition[3] + 1+"\r\n";}
elseif ($sex == 2 and $bed == 1)
{$condition[4] = $condition[4] + 1+"\r\n";}
elseif ($sex == 2 and $bed == 2)
{$condition[5] = $condition[5] + 1+"\r\n";}
$distributor = fopen($distributor_file,"w");for ($i=0;$i<count($condition);$i++)
{fwrite($distributor, "$condition[$i]");}
{
fwrite($distributor, $condition[$i]); # Sytax- Fehler
}
fclose($distributor);
?>
Was sind "komische Sachen"? Wir hätten schon gern den Fehler, damit wir wissen, wonach wir suchen sollen.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hi fastix(R)!
Danke für die schnelle Hilfe!
Das genaue Problem: in der ersten Zeile der txt Datei setzt er ein Return und die Var aus Array[2] folgt in der 2ten Zeile. Ab dann ist aber immer eine Leerzeile zwischen den Vars der Arrays. Wenn man \r\n komplett weglässt, dann gibt es diese Leerzeilen nicht mehr - allerdings befindet sich in der ersten Zeile des txts dann direkt hintereinander Var[1] und Var[2].
Deine Tips habe ich umgesetzt - es macht dadurch nichts neues...
Danke schon mal! An was könnte das denn alles liegen?
Jochen
Moin!
Also... ich hab auch nicht unbedingt was gesehen, was das Problem verursachen könnte. Inzwischen hab ich den Quelltext mal etwas "stringenter" hingeschrieben und sicher auch hinsichtlich der performance optimiert.
<?php
$distributor_file = "../distributor.txt";
$condition = file($distributor_file);
$endpage = "page07.php";
if ($sex == 1 and $bed == 1) { $condition[0]++; }
elseif ($sex == 1 and $bed == 2) { $condition[1]++; }
elseif ($sex == 1 and $bed == 3) { $condition[2]++; }
elseif ($sex == 1 and $bed == 4) { $condition[3]++; }
elseif ($sex == 2 and $bed == 1) { $condition[4]++; }
elseif ($sex == 2 and $bed == 2) { $condition[5]++; }
$strToWrite=implode("\r\n",$condition);
$FH = fopen($distributor_file,"w");
fwrite($FH, $strToWrite);
fclose($FH);
?>
Moin!
foreach ($condition as $strPart) { $strToWrite=$strPart.trim($condition[$i])."\r\n"; }
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hi fastix®,
vielen Dank ich werd es ausprobieren - wird schon klappen!
brauch alledings noch ne Stunde, da es jetzt "mittagessen" gibt...
Viele Grüße und vielen, vielen Dank,
Jochen
hi,
brauch alledings noch ne Stunde, da es jetzt "mittagessen" gibt...
dann könntest du es demnächst vielleicht unterlassen, auf die "dringlichkeit" deines problems hinzuweisen.
das interessiert erstens sowieso keinen, zweitens verärgert es viele leute nur - und drittens kann der zeitdruck so groß ja nicht sein, wenn du jetzt erst mal mittagessen gehst ...
gruß,
wahsaga
Moin!
dann könntest du es demnächst vielleicht unterlassen, auf die "dringlichkeit" deines problems hinzuweisen.
das interessiert erstens sowieso keinen,
Jepp. Ich habs jetzt erst nachgelesen :)
zweitens verärgert es viele leute nur
Was mich nicht interessiert, kann mich auch nicht ärgern. Hätte es mich aber interessiert, dann wäre meine Antwort sicher kürzer ausgefallen :o
und drittens kann der zeitdruck so groß ja nicht sein, wenn du jetzt erst mal mittagessen gehst ...
Ehrlich. Das hat mich allerdings wirklich ein wenig geärgert. Copy & Paste + Test dauern sicher nicht so lange, als das das Essen nicht die paar Sekunden warten könnte.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hallo Jochen,
genaue Erklärung folgt, wenn ihr sie benötigt
Glaskugeln sind ab und an etwas ungenau, deswegen ist es immver von Vorteil wenn man eine möglichst genaue Problembeschreibung abgibt. Es fördert auch die Bereitschaft zu antworten...
{$condition[0] = $condition[0] + 1+"\r\n";}
Strings werden mit einem Punkt verbunden, also:
$string = $substr1.$substr2;
{fwrite($distributor, "$condition[$i]");}
Wo öffnest du die Datei?
Grüße
David
Hi David,
Danke für Deine Hilfe. Der File öffnet sich durch die Befehlszeile, die an dem if-Schleifen-Block klebt - ungünstige Formatierung - sorry! Genauere Erklärung findest Du bei der Antwort auf fastix. Danke schon mal!!! Hoffentlich finden wir den fehler zusammen...