Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : txt



maik15
22-06-2005, 17:42
Hi,

habe eine txt, in der pro zeile 5 einträge mit einem ; als trennzeichen.
jetzt will ich alles ohne den trennzeichen ausgeben.
je die 5 einträge auf eine zeile und das für alle zeilen.
wie geht das?

Maik

undefined
22-06-2005, 20:47
Explode ist dein Freund ;)


<?php
$out = array();
$datei = file( "Datei.txt" );
foreach ( $datei AS $z ) {
$out[] = explode( ";", $z );
}
echo "<pre>";
var_dump( $out );
echo "</pre>";
?>

maik15
22-06-2005, 21:40
das mit explode wusste ich...
jetzt bekomme ich das angezeigt:


array(9) {
[0]=>
array(5) {
[0]=>
string(4) "Eintrag 1/Zeile 1"
[1]=>
string(28) "E2/Z1"
[2]=>
string(3) "E3/Z1"
[3]=>
string(2) "E4/Z1"
[4]=>
string(29) "E5/Z1
"
}
[1]=>
array(1) {
[0]=>
string(30) "E5/Z1
"
}
[2]=>
array(2) {
[0]=>
string(37) "E5/Z1
"
[1]=>
string(1) "
"
}
[3]=>
array(5) {
[0]=>
string(4) "E1/Z2"
[1]=>
string(28) "E2/Z2"
[2]=>
string(3) "E3/Z2"
[3]=>
string(2) "E4/Z2"
[4]=>
string(90) "E5/Z2
"
}
[4]=>
array(1) {
[0]=>
string(59) "E%/Z2
"
}
[5]=>
array(2) {
[0]=>
string(9) "E5/Z2
"
[1]=>
string(1) "
"
}
[6]=>
array(6) {
[0]=>
string(4) "E1/Z3"
[1]=>
string(12) "E2/Z3"
[2]=>
string(4) "E3/Z3"
[3]=>
string(4) "E4/Z3"
[4]=>
string(8) "E5/Z3
"
[5]=>
string(1) "
"
}
[7]=>
array(6) {
[0]=>
string(4) "E1/Z4"
[1]=>
string(12) "E2/Z4"
[2]=>
string(4) "E3/Z4"
[3]=>
string(4) "E4/Z4"
[4]=>
string(8) "E5/Z4
"
[5]=>
string(1) "
"
}
[8]=>
array(6) {
[0]=>
string(4) "E1/Z5"
[1]=>
string(28) "E2/Z5"
[2]=>
string(3) "E3/Z5"
[3]=>
string(2) "E4/Z5"
[4]=>
string(20) "E5/Z5
"
[5]=>
string(1) "
"
}
}



Das waren mal 5 Zeilen in der txt...
soll aber so ausgegebn werden:
Z1: E1 E2 E3 E4 E5

Z2: E1 E2 E3 E4 E5

Z3: E1 E2 E3 E4 E5

Z4: E1 E2 E3 E4 E5

Z5: E1 E2 E3 E4 E5

Was nun?

Gruß
Maik

undefined
23-06-2005, 06:16
soll aber so ausgegebn werden:
Na dann Formatiere doch deine Ausgabe :rolleyes:

maik15
23-06-2005, 07:31
und was ist mit dem:


}
[1]=>
array(1) {
[0]=>
string(30) "

Wie bekomme ich das alles weg?

michael.sprick
23-06-2005, 08:57
Du kannst doch einfach das Trennzeichen mit einem regulären Ausdruck gegen ein Leerzeichen ersetzen... wozu das explode?



<?PHP
$String = 'Dieser;String;ist;durch;Semikolon;getrennt';
$String = preg_replace('/;/',' ',$String);
echo $String;
?>



Es gibt auch noch jede Menge andere regex Funktionen - ein Blick auf php.net verschafft Dir Überblick...

Gaert
23-06-2005, 09:55
und was ist mit dem:


}
[1]=>
array(1) {
[0]=>
string(30) "

Wie bekomme ich das alles weg?

Indem du versuchst das Coding zu verstehen, endlich mal die Onlinehilfe liest, oder einfach das var_dump() weglässt... :rolleyes:

fgetcsv hilft dir vielleicht auch weiter... http://php.net/fgetcsv

Gruß,

Gaert

maik15
23-06-2005, 10:18
Danke michael.sprick!
Das ist das richtige!

Gruß
Maik

undefined
23-06-2005, 10:42
Indem du versuchst das Coding zu verstehen, endlich mal die Onlinehilfe liest, oder einfach das var_dump() weglässt... :rolleyes:

fgetcsv hilft dir vielleicht auch weiter... http://php.net/fgetcsv

Gruß,

Gaert

:D Gaert gib es auf, Das habe ich schon vor langem getan, wenn ich wie hier merke das einer die Manual nicht lesen wiel oder kann einfach d? sterben lassen :D

maik15
23-06-2005, 13:58
dazu gibts doch das forum, wenn ich mit dem manual nicht klar komme, oder was nicht verstehe daraus, dann frage ich hier oder mach ich da was falsch?
außerdem kann ich ja in dem manual nicht eingeben, "es soll die datei ausgelesen werden und gib mir das dann so aus..." nee, dazu muss man wissen nach was für einem Befehl man sucht und wenn man das nicht weis, is man am Arsch, da nützt das manual auch nichts!!!

amc
23-06-2005, 16:14
du könntest aber zum Beispiel nur nach stichwörtern wie "csv" suchen, wo du sicher bei der Suche mehr Erfolg hättest, als wenn du einen Roman über dein Problem schreibst und dannach suchst ;)