Was macht file_get_contents genau?
Helmut
- php
0 wahsaga0 Der Martin
0 dedlfix
Hallo zusammen,
ich bekomme von einem Script diverse Dateien (Text, HTML, PHP) übergeben, die ich
1. nach bestimmten Informationen durchsuchen soll
2. diese Informationen dann formatiert ausgeben
Die Auswertung selber soll mit Javascript erfolgen. Ich möchte beispielsweise mit
var parsed_content= "<? file_get_contents('datei1.html') ?>"; .....
die jeweils übergebene Datei in eine Javascript Variable schreiben und dann diverse reguläre Ausdrücke darauf ansetzen.
Nur drei Sachen sind mir nicht klar.
1. Bekomme ich in der Javascript Variable kein Problem, wenn die von file_get_contents eingelesene Datei diverse Anführungszeichen enthält, z.B. ..Dr. Müller sagte in seinem Vortrag: "Bla..." ? oder kümmert sich file_get_contents automatisch darum.
2. Bekomme ich beim Einlesen einer PHP Datei mit file_get_contents immer den Quellcode oder das geparste Ergebnis?
3. Ist file_get_contents Eurer Meinung nach überhaupt die richtige Wahl?
Danke und viele Grüße
Helmut
hi,
- Bekomme ich in der Javascript Variable kein Problem, wenn die von file_get_contents eingelesene Datei diverse Anführungszeichen enthält, z.B. ..Dr. Müller sagte in seinem Vortrag: "Bla..." ?
Natürlich bekommst du da ein Problem. Und mit Zeilenumbrüchen natürlich ebenfalls.
oder kümmert sich file_get_contents automatisch darum.
Warum sollte es?
- Bekomme ich beim Einlesen einer PHP Datei mit file_get_contents immer den Quellcode oder das geparste Ergebnis?
Das kommt logischerweise darauf an, ob du über das lokale Dateisystem des Servers, oder über HTTP zugreifst.
- Ist file_get_contents Eurer Meinung nach überhaupt die richtige Wahl?
Jein.
Ganz alleine sicher nicht.
Auf das "Entschärfen" von Sonderzeichen wirst du kaum verzichten können.
Wie das aussehen könnte - überlege zunächst mal selber.
gruß,
wahsaga
Hallo Helmut,
Die Auswertung selber soll mit Javascript erfolgen.
hmm, hast du dir das gut überlegt? Wenn du sowieso schon PHP einsetzt, warum setzt du dann noch auf Javascript, von dem du nie genau wissen kannst, ob es beim Client überhaupt ausgeführt wird?
var parsed_content= "<? file_get_contents('datei1.html') ?>";
Da der Aufruf von file_get_contents() keine Ausgabe erzeugt, würde diese Zeile beim Client als
var parsed_content= "";
ankommen. Vorausgesetzt, in der PHP-Konfiguration deines Servers ist short_open_tags aktiviert. Was ich damit sagen will:
Erstens solltest du die PHP-Blöcke defensiv, also sicherheitshalber, nicht mit der Kurzform "<?" einleiten, sondern mit "<?php".
Zweitens fehlt in der obigen Zeile irgendeine Anweisung, die auch eine Ausgabe macht.
Drittens fehlt das abschließende Semikolon der PHP-Anweisung.
Fassen wir das zusammen, erhalten wir
var parsed_content= "<?php echo file_get_contents('datei1.html'); ?>";
- Bekomme ich in der Javascript Variable kein Problem, wenn die von file_get_contents eingelesene Datei diverse Anführungszeichen enthält, z.B. ..Dr. Müller sagte in seinem Vortrag: "Bla..." ?
Doch, auch bei einigen Steuerzeichen würdest du Probleme bekommen, darauf hat wahsaga ja auch schon hingewiesen. Du wirst also den gelesenen String in PHP noch irgendwie behandeln müssen, um diese Stolperfallen auszuschließen (maskieren, kritische Zeichen löschen, alles in base64 codieren, etc.) und diese Umcodierung dann, falls nötig, im JS-Teil wieder rückgängig machen.
- Bekomme ich beim Einlesen einer PHP Datei mit file_get_contents immer den Quellcode oder das geparste Ergebnis?
Siehe wahsaga.
- Ist file_get_contents Eurer Meinung nach überhaupt die richtige Wahl?
Zumindest als Teil der Lösung, ja. Aber nicht allein.
Schönen Abend noch,
Martin
echo $begrüßung;
Drittens fehlt das abschließende Semikolon der PHP-Anweisung.
echo "$verabschiedung $name";
Hallo,
Drittens fehlt das abschließende Semikolon der PHP-Anweisung.
Nein.
oh. Danke, die Ausnahme kannte ich noch nicht. Dann relativiere ich meine Aussage:
Drittens vermisse ich das abschließende Semikolon der PHP-Anweisung, das ich dort gewöhnt bin.
So long,
Martin