WinFuture-Forum.de: Frage zu explode - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Frage zu explode


#1 Mitglied ist offline   PaulF 

  • Gruppe: Mitglieder
  • Beiträge: 9
  • Beigetreten: 15. Juli 15
  • Reputation: 0

geschrieben 29. August 2015 - 10:29

$datei = file("info.txt");

foreach($datei AS $info)
   {
   $zerlegen = explode("|", $info);

echo "Kunde 1 $zerlegen[0] <br>Kunde 2 $zerlegen[1] <br>Kunde 3 $zerlegen[2] <br>Kunde 4 $zerlegen[3]";
   }



Macht daraus
Kunde 1 Paul
Kunde 2 Bernd
Kunde 3
Kunde 4 Kunde 1 Tom
Kunde 2 Jens
Kunde 3
Kunde 4
----------------------------
Kann mir jemand helfen bitte?
0

Anzeige



#2 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 29. August 2015 - 12:07

Die explode()-Funktion zerlegt ein String in ein Array anhand des angegebenen Trennzeichens.

IN: String
OUT: Array.

Da brauchst Du keine Schleifen für.


... Ist auch nicht so ganz klar, was Du möchtest. Wie sieht denn so eine Zeile in der .txt-Datei aus?





Ach jetzt seh ich das erstmal. :huh: Sorry, aber mit file() ist das eine GANZ schlechte Idee. Mach das lieber über fopen/fscanf.

Dieser Beitrag wurde von RalphS bearbeitet: 29. August 2015 - 12:13

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
1

#3 Mitglied ist offline   PaulF 

  • Gruppe: Mitglieder
  • Beiträge: 9
  • Beigetreten: 15. Juli 15
  • Reputation: 0

geschrieben 29. August 2015 - 15:16

Hallo RalphS,
habe das von http://www.php-einfa...hp-dateien2.php (vorletzte)

die txt sehen so aus:

Name1|Name2
Name3|Name4
Name5|Name6

usw

Ich habe gesehen das am Anfang auf der Seite mit fopen gearbeitet wurde bei meinem Beispiel aber nicht,
daher dachte ich das dass schon so sein müsste.
0

#4 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 30. August 2015 - 06:36

file() ist die Billiglösung.

Was machst Du, wenn dem Script wer eine riieee~~~sige Datei reinfüttert? Und "riesig" kann schon 20MB oder so sein, je nach Webserverkonfiguration.

Gewöhn Dir das also gar nicht erst an. Dasselbe mit file_get_contents().

Was Du tun mußt wäre in etwa Folgendes:

- Datei aufmachen
- Zeile für Zeile lesen (sinngemäß: while !eof)
- Fragen, was für ein Format die einzelnen Zeilen haben.
- Das dann in fscanf füttern. Format wäre sowas wie "%s|%s", $name_a, $name_b (wobei ich grad anhand Deines "Name|Name" keine Assoziation zwischen den beiden Namen sehe.)
- Alternativ, wenn Du mit explode() arbeiten willst oder mußt, könntest Du hier auch sowas wie ($name_a, $name_b) = explode('|',$aktuelle_zeile) verwenden.
- Ergebnisse in irgendein Array stecken (denn bei jedem Durchlauf werden ja $name_a und $name_b überschrieben).
- Hinterher Datei schließen nicht vergessen :wink:
- Daran denken, daß man in Schleifen nur das Nötigste tun sollte und insbesondere VOR der Schleife die Datei aufmacht und NACH der Schleife wieder schließt und nicht andersherum. :)
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0