Hi,
aktuell lese ich eine Datei mit:
$datei="datei.txt";
$dateizeiger=fopen($datei,"r");
fgets($dateizeiger);
zeilenweise aus.
Kann ich nun auch pro Zeile Spaltenweise vorgehen?
Als Beispiel steht in der datei.txt eine Zeile
123456
und ich möchte die Zahlen einzeln, also spaltenweise auswerten.
D.h. dazu muß ich sagen, ich will zuerst alle Zeilen für Spalte eins durchlaufen und dann wieder oben in der Datei beginnen mit Spalte 2 usw..
Wie geht das?
Ciao
Datei nicht nur Zeilenweise auslesen PHP
-
-
mittels file_get_contents() einlesen.
mittels explode() nach jedem \n trennen.
Immer das erste Zeichen, das zweite Zeichen, das dritte Zeichen, etc... auslesen. -
mittels file_get_contents() einlesen.
mittels explode() nach jedem \n trennen.
Da kann man die Datei aber auch direkt mir file() einlesen -
Ok das geht schonmal,
aber ich habe folgendes eingabeformat
xxxx
x
x
x
jetzt ließt er es zeilenweise aus
aber ich möchte ja spaltenweise vorgehen
also erste spalte:
x
x
zweite spalte:
x
x
usw.. -
Wir wissen jetzt, was du möchtest, wir wissen aber nicht, was du bisher versucht hast, dieses Problem zu lösen.
<edit>
So, habe ein paar Minuten Zeit gehabt, so sollte es gehen:
Die Textdatei:Code1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
Das Script:PHP
Alles anzeigen<?php $lines = file("xx.txt"); $arrays = array(); $maxLen = 0; foreach ($lines as $line) { $line = trim($line); $arrays[] = str_split($line,1); if (strlen($line) > $maxLen) $maxLen = strlen($line); } for ($i = 0; $i < $maxLen; $i++) { foreach ($arrays as $array) { if (isset($array[$i])) echo $array[$i]; else echo " "; } echo "<br>\n"; } ?>
Die AusgabeZitat
1111111111
2222222222
3333333333
4444444444
5555555555
6666666666
7777777777
8888888888
9999999999
0000000000
</edit> -
Da kann man die Datei aber auch direkt mir file() einlesen
Nicht ganz, file lässt nämlich am Ende jedes Array-Elements das \n stehen.
Also wenn du keine überflüssigen Zeilenumbrüche haben möchtest, musst du nur Bandits erste Code-Zeile mit dem file() so ersetzen: -
Also wenn du keine überflüssigen Zeilenumbrüche haben möchtest
Zitat von Bandit600$line = trim($line);
No comment -
danke habe es mit file gelöst und die daten in arrays gepackt
fkt. nun einwandfrei -
No comment
Stimme voll und ganz zu. xD