• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Rauslesen einer txt datei

kuscho

Mitglied
Ich schaff es einfach nicht den text einer txt datei rauszulesen

PHP:
<?php
echo "<font color='#414141'>"
;$defaultdatei = "test-wo.txt"; //Standarddatei wenn kein Termin
$datum = date("d_m_y", time());
$anzeigendatei = "".$datum.".txt"; //Endung evtl. auch .html ich hab wo die "" sind "meine_news_" gelöscht
if(file_exists($anzeigendatei)){@readfile($anzeigendatei);}else{@readfile($defaultdatei);}
?>

www.loghos.org/info/monate/ in dem Ordener sind die .txt dateien mit den namen z.b. 02.07.12

Danke!
 
Zuletzt bearbeitet:
Das Syntax-Highlighting im Forum zeigt ein Kommentierungsproblem. Könnte aber auch an den fehlenden Zeilenumbrüchen liegen.
 
Jetzt kann mans lesen. Und da sehe ich, dass Du jegliche Ausgabe unterdrückst.

Falsch:
PHP:
//Endung evtl. auch .html ich hab wo die "" sind "meine_news_" gelöscht
if(file_exists($anzeigendatei)){@readfile($anzeigendatei);}else{@readfile($defaultdatei);}

Richtig:
PHP:
//Endung evtl. auch .html ich hab wo die "" sind "meine_news_" gelöscht
if(file_exists($anzeigendatei)){echo readfile($anzeigendatei);}else{echo readfile($defaultdatei);}

Besser:
PHP:
//Endung evtl. auch .html ich hab wo die "" sind "meine_news_" gelöscht
if(file_exists($anzeigendatei)){echo file_get_contents($anzeigendatei);}else{echo file_get_contents($defaultdatei);}
 
Dieser php-script kann nur txt datein lesen die im selben verzeichnis sind lesen, jedoch will ich das nicht

er sollte es von einem unterverzeichnis lesen können z.b /info/monate/
 
Dann gib das Verzeichnis doch an.

PHP:
echo file_get_contents("info/monate/".$anzeigendatei);

Wobei Du hierbei noch relative und absolute Pfade berücksichtigen müsstest. Ein Pfad mit / am Anfang wäre ein absoluter Pfad und in der Form wie Du ihn eben genannt hast


daher falsch.
 
Ich habs mal so probiert funktioniert nicht.
PHP:
<?php
echo "<font color='#414141'>";
echo file_get_contents("http://www.loghos.org/info/monate/".$anzeigendatei);  
$datum = date("d_m_y", time());
$anzeigendatei = "".$datum.".txt"; //Endung evtl. auch .html ich hab wo die "" sind "meine_news_" gelöscht
if(file_exists($anzeigendatei)){@readfile($anzeigendatei);}else{@readfile($defaultdatei);} 
?>
 
Du kannst $anzeigendatei natürlich erst verwenden nachdem Du die Variable gesetzt hast ... eigentlich anstelle von diesen readfile-Angaben.
 
Kleiner Tipp:

Versuche doch mal die Funktionen zu verstehen was die überhaupt machen. Blind rüber kopieren der Funktionen hilft dir nicht.

Außerdem hast du das von threadi falsch übernommen, lese bitte genau. Wenn du dir alles nur überfliegst wirst du es niemals verstehen. Programmieren ist nicht einfach "Funktionen auswendig lernen und man kann es", da steck viel mehr dahinter. Solange du es nicht VERSTEHST und dir darüber die LOGIK selbst zusammen bauen, brauchst du gar nicht erst weiter machen.

Mir kommt es so vor als warst du mal Auftraggeber der immer nur Studenten/Praktikanten für lau gesucht hast, weil es ja so einfach ist für jemanden der es kann, niemanden gefunden hast und jetzt mal selbst "auf die schnelle programmieren lernen willst um günstig davon zu kommen".

Wenn das stimmt, dann mach bitte genau mit der selben Einstellungen so weiter.. fall KRÄFTIG auf die Schnauze und ZAHL für die ARBEIT und den ZEITAUFWAND den Ansprechenden Preis!

Falls nicht hier mal eine kleine Logik Versuchs Beispielreihe ( Neogolismus rulez ):

PHP:
if( file_exists( $anzeigendedatei ) )

Jeder der auch nur etwas Englisch kann und etwas Logisches Denken besitzt, sollte sich zusammen reimen können, was die Zeile macht.

WENN ( Die_Datei_Existiert( {DieDatei} ) )

Kleiner Zusatz: die Funktion "if" checkt nur, ob der Inhalt "true" ist, wenn ja, fahre fort, ansonsten ignoriere die Zeilen in der Klammer.. das heißt die Funktion "file_exists" muss Logischerweise den Wert "true" oder etwas anderes ausgeben. Und das tut Sie auch. Wenn die Datei gefunden wurde, wird "true" ausgegeben. Du kannst dir das auch speichern:

PHP:
$existier_die_datei = file_exists( $datei );

echo $existiert_die_datei; 

// oder falls da mal "Array" oder "Object" oder etwas steht womit du nicht gerechnet hast:

echo '<pre>';
var_dump( $existiert_die_datei );
echo '</pre>';

Das wichtige ist nur "var_dump", der Rest formatiert das nur etwas Schöner womit man die Ausgabe besser sehen kann.

Und ich erwarte jetzt, dass du das testest mit allem was du hast. Einfach nur weil du es kannst. Davon kommt der Lerneffekt: Learning by doing. Und besser lernt man mit TryAndError, also jede Möglichkeit versuchen, bestimmte Fehler ausschließen und näher zum Ergebnis kommen.

Beispiel:
PHP:
echo 'Test 1: <br />';

echo 'Test 1.1: <br />'

echo 'Test 2: <br />';

echo 'Test 3: <br />';

Hier wird ein Fehler kommen, weil in der zweiten Ausgabe-Zeile ein Semikolon fehlt, jedoch steht in der Fehlermeldung nicht immer die genaue Zeile da, da manchmal durch einen Folgefehler die Zeile nicht bekannt ist. Da ist Debugging ein wichtiger Prozess. Es muss nicht Perfektes Debugging wie im Buch der 1001 DIN Formate. Es reicht folgendes Beispiel:

PHP:
echo 'Test 1: <br />';

echo 'Test 1.1: <br />'

echo 'Test 2: <br />';

echo 'Test 3: <br />';

echo ::

Die Fehlermeldung sollte die selbe sein.. also liegt der Fehler weiter vorher!

PHP:
echo 'Test 1: <br />';

echo 'Test 1.1: <br />'

echo 'Test 2: <br />';

echo ::

echo 'Test 3: <br />';

Gleicher Fehler.. neuer Versuch!

PHP:
echo 'Test 1: <br />';

echo 'Test 1.1: <br />'

echo ::

echo 'Test 2: <br />';

echo 'Test 3: <br />';

hmm.. selber Fehler.. viel bleibt nicht mehr Übrig!

PHP:
echo 'Test 1: <br />';

echo ::

echo 'Test 1.1: <br />'

echo 'Test 2: <br />';

echo 'Test 3: <br />';

AHA! Andere Fehlermeldung! Anscheinend liegt der Fehler nach der Zeile "echo ::" aber immer noch vor "echo Test 2", also kann es nur "Test 1.1" sein!

Dies war nur eine kleine Demonstration, bei kleineres Sachen findet man den Fehler selbst wenn man einfach mal kurz rüber guckt, aber wenn es mal 10.000 Code Zeilen in einer von 1000 Dateien ist.. dann viel spaß beim Suchen! Da muss man halt rumprobieren und erstmal gucken: WAS ist der Fehler überhaupt? Danach WO steckt der Fehler? Als letztes: WIE behebe ich diesen Fehler?

Mit dem finden des Fehlers ist meistens über 50% der Arbeit schon getan, selten entsteht mehr Arbeit dahinter.. und wenn mehr Arbeit dahinter steckt, hat man wohl vorher etwas schlampig gearbeitet!

Kommen wir zurück zum Datei Auslesen.

Ich Google nach "PHP Datei auslesen" und stoße auf folgende URL:

PHP: file_get_contents - Manual

Einfachstes Beispiel:
PHP:
<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

Und was macht die Funktion? Steht auch da:

"file_get_contentsLiest die gesamte Datei in einen String"

Die Funktion gibt nicht "true" aus, sondern den Inhalt der Datei die gelesen werden soll.

[C:/MeinProjekt/Daten/Textdokumente/test.txt]
Code:
Hallo wie gehts? Test test..

PHP:
$file = 'test.txt';
echo file_get_contents( 'Daten/Textdokumente/'.$file );

Die Ausgabe wäre in dem Fall: "Hallo wie gehts? Test test.."

Du kannst dir die Ausgabe auch in einer Variable speichern und zu einem späteren Zeitpunkt ausgeben lassen.. sogar mehrmals!

PHP:
Zeile 1: $file = 'test.txt';
Zeile 2: $inhalt = file_get_contents( 'Daten/Textdokumente/'.$file ); 
..
..
Zeile 50102: echo $inhalt; // Hier kommt wieder "Hallo wie gehts? Test test.." raus
..
..
Zeile 801302: echo $inhalt; // erneut die selbe Ausgabe


Wie erwähnt, verstehe auch was du codest, ansonsten kommst du nicht weit!

Und falls du einfach mal nicht weiter kommst und Verständnis fragen hast.. dann poste bitte ein GENAUES Problem.. mit genauer Fehlermeldung.

"Mein PC geht nicht". Cool.. es hat auch keine Beine..
"Ja ich meine es funktioniert nicht.". Cool.. Ist es eventuell nicht am Strom angeschlossen?
"Doch, sonst würde es ja nicht an gehen.. -.-". Cool.. hieß es nicht, dein Computer funktioniert nicht?
"JA MAN! Es schickt halt keine Emails!!! -.- Boa..". Cool.. woran erkennst du das?
"Woran soll ich es denn erkennen.. es geht einfach nicht.". Cool.. es hat auch keine Beine, wie erwähnt!
"BOA Ja da kommt ein Fehler! Was ein Support ej -.-". Cool.. Die Fehlermeldung sieht Interessant aus.
"Du kannst mein Bildschirm sehen? Wow.. ok und weiter?!". Cool.. nein kann ich nicht, darauf wollte ich dich nur aufmerksam machen.
"Boa sag doch gleich! Fehlermeldung: Sie haben kein Betreff angegeben, sicher senden?". Cool.. Warum sagst du das nicht gleich? P.S. Kannst du lesen?
"Ich dachte das wäre klar -.- Wie Lesen!? Meinst du das es keine Beine hat?!". Cool.. nein ich meine "Sie haben kein Betreff angegeben.."
"Ohh.. ja so einfach.. dafür bräuchte ich ja nicht mal ein Support.. dafür zahl ich nix!". Cool..
 
Zuletzt bearbeitet:
Zurück
Oben