.txt-Dateien einlesen aus dem Web

cardician

Mitglied
Hallo!

Ich lese eine Text-Datei zeilenweise in einen Array ein, und zwar so:

$eingabedatei="datei.txt";

if(file_exists($eingabedatei))
{
$auslesen=fopen($eingabedatei, "r");
while ($line = fgets($auslesen, 10000))
{
$word[]=$line;
}
fclose($auslesen);
}

Das klappt auch. Aber wenn ich jetzt die Quelle so angebe:
$eingabedatei="http://www.blablablubber.datei.txt";
[Hier steht natürlich der Pfad, wo die Textdatei tatsächlich liegt]
, dann funktioniert das nicht mehr. Geht das grundsätzlich nicht, oder muss ich beim Auslesen aus http-Pfaden andere mir unbekannte Befehle verwenden?

Danke und ciao
Denis
 
Hallo!

Warum machst du es dir denn so kompliziert?!
Das geht doch viel einfacher:

PHP:
$eingabedatei="datei.txt";

if(file_exists($eingabedatei))
    $word = file($eingabedatei);

Mit Hilfe der Funktion file() wird automatisch eine Datei (kann zum Beispiel auch eine HTML-Datei sein) in ein Array eingelesen.
Jede Zeile in der ursprünglichen Datei ist dann ein Array-Element.
Also genauso, wie bei deinem Script.
Das funktioniert auch mit anderen Domains.

Übrigens:
Für Internetverbindungen gibt es die Funktion fsockopen() (und, für die jenigen, die immer noch ein wenig Senf mehr wollen auch noch die Funktion pfsockopen() für persistente Verbindungen).
 
Hallo!

Danke für die Antwort, dieser Befehl ist wirklich viel praktischer... Habe ich nicht gekannt, als ich mir mein Zeilenauslese-Monster gebastelt habe... :-)

Aber: Wenn ich als Quelle den http-Pfad angebe, funktioniert es immer noch nicht. Kann das irgendetwas mit dem "safe mode" zu tun haben?!

Ciao
Denis
 
Du solltest schon wissen, was die Funktionen machen, die Du verwendest! Ein Blick in die Funktionsreferenz hätte Dir veraten, dass die Funktion file_exists() nicht für entfernte Dateien funktioniert, sondern nur für Dateien, die im gleichen Filesystem liegen.

Die Funktion file() gibt FALSE zurück, wenn sie die entfernte Datei nicht einlesen konnte. Achte darauf, dass "allow_url_fopen" aktiviert ist, da Du sonst ohnehin nicht auf entfernte Dateien zugreifen kannst!

snuu
 
Zuletzt bearbeitet:
Ja, es lag an dem file_exists(), jetzt geht es!
Ich hatte die Funktion in so einem dicken PHP4-Buch ["Grundlagen und Profiwissen"] sogar nachgeschlagen, aber da ist das nicht so klar, dass die Datei im gleichen Filesystem liegen muss?!
[allw_url_fopen ist bei mir ON]

Vielen Dank jedenfalls!

Denis
 
Zurück