Array in Textdatei einlesen

schiese

Erfahrenes Mitglied
Hi,

ich möchte jetzt den Inhalt des Arrays wieder in die Textdatei einlesen! Die Textdatei soll wie folgt aussehen:
Code:
1|--|2|--|3|--|4|--|5
6|--|7|--|8|--|9|--|10
11|--|12|--|13|--|14|--|15

Ich habe es so gemacht:
PHP:
$einlesen = implode("|--|", $array);

Nur die Textdatei sah dann so aus:
Code:
1|--|2|--|3|--|4|--|5|--|6|--|7|--|8|--|9|--|10|--|11|--|12|--|13|--|14|--|15

Hat jemand eine Idee?

schiese
 
Danke für die Antwort. Ich will nicht nach dem z.B. 75. Zeichen einen Zeilenumbruch haben, sondern vor dem 5ten --> |--| !

schiese
 
PHP:
<?php
	define('CRLF', chr(13).chr(10));

	$counter = 1;
	
	for($i = 1; $i <= 15; $i++){
		$arr[] = $i;
	}
	
	foreach($arr as $key => $value){
		if($counter % 5 == 0) $splitter = CRLF;
		else $splitter = '|--|';
		print $value.$splitter;
		$counter++;
	}
?>
Wenn du dir jetzt den Quelltext der erzeugten Seite ansiehst, dürfte das deinem gewünschtem Ergebnis entsprechen.
 
Hallo,

Einzeiler gefällig?
PHP:
<?php
$einlesen = join("\r\n", array_map(create_function('$a','return join("|--|",$a);'), array_chunk($array, 5)));
?>

Etwas ausführlicher:
PHP:
<?php
$chunks = array_chunk($array, 5);

foreach ($chunks as $n => $chunk) {
	$chunks[$n] = join('|--|', $chunk);
}

$einlesen = join("\r\n", $chunks);
?>

Grüße,
Matthias
 
Oder so:
PHP:
    foreach($arr as $key => $value){ 
   if((($key+1) % 5) == 0) $bla[] = $value."\r\n";
   else $bla[] = $value."|--|";
}
Und ich könnte fast wetten, dass es noch mehr Lösungen gibt :D
 
Hi,
ich habe die Variante von Matthias benutzt, aber die Textdatei sieht nicht so aus, wie sie es sollte.

Code:
5|--|02.06.2006 10:40:05|--|admin|--||--|hallo 5
|--|4|--|02.06.2006 10:40:00|--|admin|--||--|hallo 4
|--|3|--|02.06.2006 10:39:55|--|admin|--||--|hallo 3
|--|2|--|02.06.2006 10:39:51|--|admin|--||--|hallo 2
|--|1|--|02.06.2006 10:39:45|--|admin|--|versuch|--|hallo 1

Die erste Zeile ist noch richtig, aber ab der 2ten ist ein"|--|" am Anfang zu viel!

Hier mal mein Code:
PHP:
	$datei = $_POST['datei'];
	$zeile = $_POST['zeile'];
	$geaendert = $_POST['editieren'];

	$lines = file("$datei");
	$richtigezeile = $lines[$zeile];



	$array = explode("|--|",$richtigezeile);
	$array[4] = $geaendert;

	$array2 = implode("|--|", $array);

	$lines[$zeile] = $array2;



	$chunks = array_chunk($lines, 5);

	foreach ($chunks as $n => $chunk) {
    	     $chunks[$n] = join('|--|', $chunk);
	}

	$einlesen = join("\r\n", $chunks);

schiese
 
Oder ist es vielleicht möglich, schon beim auslesen der Textdatei ans Ende jeder Zeile "\r\n" anzuhängen?

PHP:
$lines = file("$datei");

schiese
 
Bringt nichts! Ich habe zu viele von denen --> |--| in meiner Textdatei! Ich will dieses Array
Code:
Array ( [0] => 4|--|02.06.2006 20:30:34|--|admin|--||--|fjjkgfkghkgh [1] => 3|--|02.06.2006 20:30:31|--|admin|--||--|fjfjkfjfgjfj [2] => 2|--|02.06.2006 20:30:28|--|admin|--||--|fgjfgjfgj [3] => 1|--|02.06.2006 20:30:25|--|admin|--|hfghhghgh|--|lhljhlblö )

so in die Textdatei einlesen, dass die Datei so aussieht
Code:
4|--|02.06.2006 20:30:34|--|admin|--||--|fjjkgfkghkgh
3|--|02.06.2006 20:30:31|--|admin|--||--|fjfjkfjfgjfj
2|--|02.06.2006 20:30:28|--|admin|--||--|fgjfgjfgj
1|--|02.06.2006 20:30:25|--|admin|--|hfghhghgh|--|lhljhlbl&ouml;

Ich brauche es genau so, da ich die Datei sonst nicht mehr richtig auslesen kann.

schiese
 
schiese hat gesagt.:
Die erste Zeile ist noch richtig, aber ab der 2ten ist ein"|--|" am Anfang zu viel!
Das liegt wohl daran, dass mein Code darauf basiert, dass die Werte einzeln in einem eindimensionalen Array vorliegen (so hat es auch dein Ursprungsbeitrag impliziert). Wenn die einzelnen Zeilen natürlich schon zusammengesetzt in einem Array stehen, muss man sie nicht nochmals in Fünfergruppen aufteilen etc.

edit: Sorry, dass ich den Beitrag zwischen deinen letzten beiden gelöscht habe. Da stand nur leider Müll drin und war wohl zu langsam mit dem Löschen :) (Fernseher läuft auf dem zweiten Monitor ;))
 
Zurück