Forum: PC-Programmierung PHP - Inhalt von Textdateien: Warum funktioniert dies nicht?


von Thomas S. (solt)


Lesenswert?

Warum kann der folgende php-Quelltext
1
<?php
2
$filename = "Test2.txt";
3
$handle = fopen($filename, "r");
4
$Inhalt = trim(file_get_contents( $filename));
5
fclose($handle);
6
echo $Inhalt;
7
?>

nicht den Inhalt der folgenden Textdatei "Test2.txt" anzeigen

 <node id=@3886170127@ visible=@true@ version=@3@ changeset=@138637132@ 
timestamp=@2023-07-17T19:49:04Z@ user=@bufredi55@ uid=@19021816@ 
lat=@50.1662321@ lon=@10.1017258@/>
 <node id=@3903366035@ visible=@true@ version=@2@ changeset=@43481505@ 
timestamp=@2016-11-08T08:31:39Z@ user=@geodreieck4711@ uid=@479256@ 
lat=@50.1667447@ lon=@10.0947630@/>
 <node id=@3933816027@ visible=@true@ version=@1@ changeset=@36444804@ 
timestamp=@2016-01-08T13:27:55Z@ user=@Jaeger52@ uid=@435545@ 
lat=@50.3546375@ lon=@10.2321218@>
  <tag k=@communication:bos@ v=@no@/>
  <tag k=@communication:gsm-r@ v=@no@/>
  <tag k=@communication:microwave@ v=@no@/>
  <tag k=@communication:mobile_phone@ v=@yes@/>
  <tag k=@man_made@ v=@mast@/>
  <tag k=@tower:type@ v=@communication@/>
 </node>

Bei anderen Textdateien funktioniert das doch auch! Warum kann es diese 
Datei nicht in einen String einlesen? Ist mein php kaputt?
von Frank D. (Firma: LAPD) (frank_s634)


Lesenswert?

Was willst du denn mit dem handle, das brauchst du überhaupt nicht.
: Bearbeitet durch User
von Sheeva P. (sheevaplug)


Lesenswert?

Thomas S. schrieb:
> nicht den Inhalt der folgenden Textdatei "Test2.txt" anzeigen
>
>  <node id=@3886170127@ visible=@true@ version=@3@ changeset=@138637132@
> timestamp=@2023-07-17T19:49:04Z@ user=@bufredi55@ uid=@19021816@
> lat=@50.1662321@ lon=@10.1017258@/>

Situs wi html, isse tabernit. "Seitenquelltext anzeigen"...
von Thomas S. (solt)


Lesenswert?

Das Handle ist nicht das Problem. Ich habe den Text der Datei 
"test2.txt" mit dem Notepad aus der Datei in den Thread kopiert. Zeigt 
Notepad nicht Textdateien so an, was drin steht? Müßte nicht mein 
php-Programm den Inhalt einer Textdatei so anzeigen, wie es der Notepad 
macht?
: Bearbeitet durch User
von Frank D. (Firma: LAPD) (frank_s634)


Lesenswert?

Thomas S. schrieb:
> Das Handle ist nicht das Problem.
Der Rest aber auch nicht, bei mir funzt es (commandline)

Nutzt du ob_* ? Dann vielleicht ein ob_flush() vergessen,...
von Εrnst B. (ernst)


Lesenswert?

Ändere
> echo $Inhalt;
zu
> echo htmlspecialchars($Inhalt);

wenn du

Thomas S. schrieb:
> den Inhalt [...] anzeigen
willst.

was du implementiert hattest war nicht "Inhalt anzeigen", sondern 
"Inhalt in Webseite inkludieren".
von Hmmm (hmmm)


Lesenswert?

Thomas S. schrieb:
> Bei anderen Textdateien funktioniert das doch auch! Warum kann es diese
> Datei nicht in einen String einlesen? Ist mein php kaputt?

Dein Browser will das als HTML parsen und zeigt deshalb nichts Lesbares 
an.

Abhilfe: header("Content-Type: text/plain");
von Thomas S. (solt)


Lesenswert?

Funktioniert! Aber auch bei allen Texten?
von Hmmm (hmmm)


Lesenswert?

Thomas S. schrieb:
> Funktioniert! Aber auch bei allen Texten?

Wenn das nicht nur ASCII ist, immer explizit den verwendeten Zeichensatz 
mitliefern, also z.B.:

header("Content-Type: text/plain; charset=utf-8");
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.