Shop-Hilfe.com
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 22.11.2006, 14:48   #1
TP-Member
 
Registriert seit: Nov 2005
lx-concept macht alles soweit korrekt

txt-Datei in php-array schreiben??


hallo,

ich möchte eine Text-Datei der folgenden Form:

Code:
     1     2    50     5     2
     2     5    61     5     3
     3     5    61     5     3
     4     3    63     2     2
     5   -99     0     8     0
     6   -99     0     8     0
     7   100     0     8     0
     8   -99     0     8     0
     9   100     0     8     0
    10   -99     0     8     0
    11   100     0     8     0
    12   -99     0     8     0
per php in arrays schreiben. Und zwar soll jede Spalte in ein Array geschrieben werden. Habt ihr eine Idee wie ich das am besten lösen kann?

gruß

volker
lx-concept ist offline   Mit Zitat antworten


Alt 22.11.2006, 16:14   #2
321
TP-Specialist
 
Benutzerbild von 321
 
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
321 hilft, wo's geht321 hilft, wo's geht321 hilft, wo's geht
Eine Comma-Separeted mit Newline am Zeilenende wäre schon besser!
Erstellst Du diese Datei; kannst Du das ändern?
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]


use my HTML-Tester

Motto'06: Mut zur deutschen Sprache!
321 ist offline   Mit Zitat antworten
Alt 22.11.2006, 16:30   #3
TP-Member
 
Registriert seit: Nov 2005
lx-concept macht alles soweit korrekt
ich erstelle die datei leider nicht, aber evtl kann man da trotzdem was ändern, ich werde mal nachfragen. also die spalten besser mit kommas anstatt leerzeichen trennen, richtig? hatte schon überlegt mit führenden nullen bei den werten zu arbeiten, aber wenn kommas vorhanden sind, ist das nicht mehr nötig, oder?
was bedeutet "newline" genau? bin leider nicht so fit in php, arbeite mich gerade erst rein. die txt-datei wird aber auch nicht mittels php erstellt...

naja gut, dann stellen wir uns also die datei wie folgt vor:
Code:
1,2,50,5,2
2,5,61,5,3
3,5,61,5,3
4,3,63,2,2
5,-99,0,8,0
6,-99,0,8,0
7,100,0,8,0
8,-99,0,8,0
9,100,0,8,0
10,-99,0,8,0
11,100,0,8,0
12,-99,0,8,0
die kommas dienen jetzt als seperator zwischen den einzelnen spalten. wie kriege ich nun jede spalte in ein array, also je ein array für eine spalte.
lx-concept ist offline   Mit Zitat antworten
Alt 22.11.2006, 16:36   #4
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Hier mal nen Ansatz zur ersten TXT Version
PHP-Code:
<?php
function arrayfilter($var){
    return (
$var " ");
}

$handle fopen ("daten.txt""r");
while (!
feof($handle)) {
    
$buffer fgets($handle4096);
    
$row explode(" "$buffer);
    
$foo array_filter($row"arrayfilter");
    
$anzahl count($foo);
    
$foo array_merge($foo);

    for(
$i 0$i $anzahl$i++)${"array".$i}[] = $foo[$i];
}
fclose ($handle);
for(
$i 0$i $anzahl$i++){
    echo 
"Array $i:";
    echo 
"<pre>";
    
print_r(${"array".$i});
    echo 
"</pre>";
}
?>
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE || PS Kniffe
emCalculator 1.0



webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 22.11.2006, 17:10   #5
TP-Member
 
Registriert seit: Nov 2005
lx-concept macht alles soweit korrekt
schonmal danke für den ansatz, aber die datei wird wohl der einfachheit halber auf kommas umgeschrieben.
lx-concept ist offline   Mit Zitat antworten
Alt 22.11.2006, 17:18   #6
321
TP-Specialist
 
Benutzerbild von 321
 
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
321 hilft, wo's geht321 hilft, wo's geht321 hilft, wo's geht
newline = Zeilenumbruch.

fgets($handle, 4096); liest die angegebene Anzahl Zeichen oder
bis zum nächsten Zeilenumbruch, was denn zuerst eintritt.
Du kannst also leicht die Zeilen in ein Array einlesen.
Eine Zeile kannst Du mit $felder = explode(",", $zeile;
in die einzelnen felder zerlegen.
PHP-Code:
$handle fopen ("daten.txt""r");
$zeile 0;
while (!
feof($handle)) {
    
$buffer fgets($handle4096);
    
$zeile++;
    
$alles[$zeile] = $buffer// oder = trim($buffer) 
    
}
fclose ($handle);

// nun ist die ganze Datei zeilenweise im Array $alles
// die Zeilen werden nun einzeln verarbeitet

    
for($i 0$i count($alles) - 1$i++) {
        
$felder explode(","$alles[i]); 
//      Ausgabe und/oder Berechnungen pro Zeile
        
echo "erstes Feld:" $felder[0] . "<br>\n"
        echo 
"zweites Feld:" $felder[1] . "<br>\n"
//      usw.
        

Mit Vorbehalt auf Tippfehler
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]


use my HTML-Tester

Motto'06: Mut zur deutschen Sprache!

Geändert von 321 (22.11.2006 um 17:21 Uhr).
321 ist offline   Mit Zitat antworten
Alt 22.11.2006, 17:20   #7
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Code nicht verstanden?
Eine Änderung hier und eine da und ...
PHP-Code:
<?php
$handle 
fopen ("daten.txt""r");
while (!
feof($handle)) {
    
$buffer fgets($handle4096);
    
$foo explode(","$buffer);
    
$anzahl count($foo);
    for(
$i 0$i $anzahl$i++)${"array".$i}[] = $foo[$i];
}
fclose ($handle);
for(
$i 0$i $anzahl$i++){
    echo 
"Array $i:";
    echo 
"<pre>";
    
print_r(${"array".$i});
    echo 
"</pre>";
}
?>
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE || PS Kniffe
emCalculator 1.0



webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 22.11.2006, 17:26   #8
321
TP-Specialist
 
Benutzerbild von 321
 
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
321 hilft, wo's geht321 hilft, wo's geht321 hilft, wo's geht
Warum?
Mein Beispiel soll keine Kritik oder Verbesserung des Deinen sein.

Es ist eine Möglichkeit eine komma-getrennte Datei in Zeilen und Felder zu zerlegen.
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]


use my HTML-Tester

Motto'06: Mut zur deutschen Sprache!
321 ist offline   Mit Zitat antworten
Alt 22.11.2006, 17:28   #9
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Dich meinte ich nicht, ich meinte lx-concept, da es sich so anhörte, als würde er nicht verstehen, wie man es auf die Lösung für Kommas portieren kann ...
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE || PS Kniffe
emCalculator 1.0



webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 22.11.2006, 17:32   #10
321
TP-Specialist
 
Benutzerbild von 321
 
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
321 hilft, wo's geht321 hilft, wo's geht321 hilft, wo's geht
Axo, ok! *Bier-reich-und Prost!-sag*
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]


use my HTML-Tester

Motto'06: Mut zur deutschen Sprache!
321 ist offline   Mit Zitat antworten
Alt 23.11.2006, 14:55   #11
TP-Member
 
Registriert seit: Nov 2005
lx-concept macht alles soweit korrekt
doch, wie man es zum komma protiert ist mir klar, aber ich habe glaube die skripte schreiben die zeilen jeweils in ein array, ich brauche allerdings jede spalte in einem array. korrigiert mich bitte wenn ich falsch liege, wie gesgat, bin php-rookie.

aber schonmal tausend dank für eure skripte. nur php learning-by-doing ist nicht ganz so einfach, muss mir mal geeignete literatur zulegen.

gruß

volker

Geändert von lx-concept (23.11.2006 um 14:58 Uhr).
lx-concept ist offline   Mit Zitat antworten
Alt 23.11.2006, 14:58   #12
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Zur Klärung hier mal die Ausgabe meines letzten Scripts
Code:
Array 0:
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
    [9] => 10
    [10] => 11
    [11] => 12
)

Array 1:
Array
(
    [0] => 2
    [1] => 5
    [2] => 5
    [3] => 3
    [4] => -99
    [5] => -99
    [6] => 100
    [7] => -99
    [8] => 100
    [9] => -99
    [10] => 100
    [11] => -99
)

Array 2:
Array
(
    [0] => 50
    [1] => 61
    [2] => 61
    [3] => 63
    [4] => 0
    [5] => 0
    [6] => 0
    [7] => 0
    [8] => 0
    [9] => 0
    [10] => 0
    [11] => 0
)

Array 3:
Array
(
    [0] => 5
    [1] => 5
    [2] => 5
    [3] => 2
    [4] => 8
    [5] => 8
    [6] => 8
    [7] => 8
    [8] => 8
    [9] => 8
    [10] => 8
    [11] => 8
)

Array 4:
Array
(
    [0] => 2
    [1] => 3
    [2] => 3
    [3] => 2
    [4] => 0
    [5] => 0
    [6] => 0
    [7] => 0
    [8] => 0
    [9] => 0
    [10] => 0
    [11] => 0
)
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE || PS Kniffe
emCalculator 1.0



webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 23.11.2006, 15:11   #13
TP-Member
 
Registriert seit: Nov 2005
lx-concept macht alles soweit korrekt
jep, war zu voreilig mit meinem post, sorry, ist genau das was ich wollte. vielen vielen dank!!!
jetzt muss der kram nur noch in eine tabelle und bei entsprechender nummer gifs zugewiesen werden, aber da werd ich weiter probieren müssen.

eine kleine frage hätte ich noch:

ich habe bspw. 20 links und bei klick auf einen link soll jeweils die entsprechende datei in das array geladen werden. ich denke mal ne funktion mit einer übergabe variable wäre da das richtige, aber es soll möglichst dynamisch sein.

zur erklärung:
es geht um eine wetterseite. zu jeder stadt gibt es wetterdaten und diese werden bei klick auf die entsprechende stadt auf einer detailseite angezeigt, dafür das array-skript. mir geht es jetzt aber noch um die verlinkung zu den detail-seiten, wie gestalte ich diese am pflegeleichtesten, da die städteliste erweiterbar sein muss???
lx-concept ist offline   Mit Zitat antworten
Alt 23.11.2006, 15:45   #14
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Ohne nun viel zu erklären, hier mal die Umsetzung:
index.php:
PHP-Code:
<?php
include "function.php";
echo 
"<a href=\"$_SERVER[PHP_SELF]?daten=1\">Datensatz1</a><br>";
echo 
"<a href=\"$_SERVER[PHP_SELF]?daten=2\">Datensatz2</a><br>";
echo 
"<a href=\"$_SERVER[PHP_SELF]?daten=3\">Datensatz3</a><br>";
echo 
"<a href=\"$_SERVER[PHP_SELF]?daten=4\">Datensatz4</a><br>";
echo 
"<a href=\"$_SERVER[PHP_SELF]?daten=5\">Datensatz5</a><br>";

if(isset(
$_GET['daten']) && $_GET['daten'] != ""read_data($_GET['daten']);
?>
function.php
PHP-Code:
<?php
function read_data($id){
    switch(
$id){
        case 
1:    $file "daten1.txt"; break;
        case 
2:    $file "daten2.txt"; break;
        case 
3:    $file "daten3.txt"; break;
        case 
4:    $file "daten4.txt"; break;
        case 
5:    $file "daten5.txt"; break;
    }
    
$handle fopen ($file"r");
    while (!
feof($handle)) {
        
$buffer fgets($handle4096);
        
$foo explode(","$buffer);
        global 
$anzahl;
        
$anzahl count($foo);
        
        for(
$i 0$i $anzahl$i++){
            global ${
"array".$i};
            ${
"array".$i}[] = $foo[$i];
        }
    }
    
fclose ($handle);
    
show_data();
}

function 
show_data(){
    global 
$anzahl;
    for(
$i 0$i $anzahl$i++){
        global ${
"array".$i};
        echo 
"<p>Tabelle No. ".($i+1);
        echo 
"<table border=\"1\">";
        foreach(${
"array".$i} as $lable => $data){
            echo 
"<tr>";
            echo 
"<td>Datensatz ".($lable+1)."</td>";
            echo 
"<td>$data</td>";
            echo 
"</tr>";
        }
        echo 
"</table></p>";
    }
}
?>
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE || PS Kniffe
emCalculator 1.0



webcreate IT SOLUTIONS
www.webcreate-nrw.de

Geändert von webcreate (23.11.2006 um 15:52 Uhr).
webcreate ist offline   Mit Zitat antworten