Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » php - arbeiten mit txt-dateien - eine grundsatzfrage Antworten
php - arbeiten mit txt-dateien - eine grundsatzfrage

Aardvark
Pixelschubser


Beiträge: 1


Hallo,
ich habe eine für mich wichtige Grundsatzfrage:
wenn man mit
$fopen=fopen("blabla.txt");
foreach($fopen as $zeile) {
echo $zeile;}
arbeitet, ist das Element $zeile selber ein Array oder nicht?
innerhalb von einem script hatte ich zwei fälle:
1.: bei echo $zeile; kam "Array" raus (ein Zeichen dafür, dass es ein Array ist). Man musste den Inhalt also mit "foreach($fopen as $zeile) {$zeile_neu=$zeile[0]; echo $zeile_neu;}" formatieren.
2.: bei "foreach($fopen as $zeile){$zeile_neu=$zeile[0] echo $zeile_neu;}" kam anstatt von "1105595072&&81.173.183.52" (Inhalt der Zeile) nur "1" raus.

wo ist des Rätsels Lösung?

  Profil   E-Mail   Editieren   Zitieren

mouselfescher
Pixelschubser


Beiträge: 5


fopen öffnet doch nur die Datei, der Inhalt muss über fread erst gelesen werden - oder liege ich da falsch?!

So stehts im PHP Manual:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10:
<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
  $contents .= fread($handle, 8192);
}
fclose($handle);
?> 


Ansonsten würde ich dir empfehlen gleich mit file(), bzw. bei PHP5 mit file_get_contents() zu arbeiten.

  Profil   E-Mail   Website   Editieren   Zitieren

a-man
Mausakrobat


Beiträge: 157


ich kenn mich mit dem oeffnen von dateien nicht aus, aber ich glaube, da ist dein fehler.
fopen wuerd ich nicht als variable benutzen, weil es ein gescheutzter name ist (von der funktion)

aber $zeile sollte eigentlich ein string (also kein array) sein

probier mal das (ich bin zu faul den server zu starten):
$MeinArray[] = "adsfasdf";
$MeinArray[] = "adsdasdfafasdf";
$MeinArray[] = "adsfasdfasfasfasdfasdf";
$MeinArray[] = "adsasdfasdfaasdfasdfasdffasdf";
$MeinArray[] = "asdfasdfasdfasdfasdfasdfasdfasdfas";

foreach($MeinArray as $zeile) echo "$MeinArray<br />";

dann wirst es sehen..


edit:
mouselfescher war schneller
und hat die richtige loesung..

---
Debian ruult...
KDE ruult...
Opera ruult...

Diese Nachricht wurde geändert von: a-man
  Profil   Website   Editieren   Zitieren

HoRnominatoR
Mausakrobat


Beiträge: 165


file_get_contents (PHP 4 >= 4.3.0, PHP 5)

---
get OPERA for free

  Profil   E-Mail   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


bzw. einfach file() wenn man die Datei in einem Array haben will.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

HoRnominatoR
Mausakrobat


Beiträge: 165


oder wenn man file_get_contents fuer PHP >= 3 emulieren moechte

$file_get_contents = impode('', file('filename'));

---
get OPERA for free

  Profil   E-Mail   Website   Editieren   Zitieren
 

Antworten
Nach oben