.txt file parsen und umlaute in html wandeln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • .txt file parsen und umlaute in html wandeln

    hallo
    ich habe ein blödes problem, was sicher für erfahrenere php-scripter leicht zu lösen ist. ich möchte aus einer .txt datei einen text auslesen und umlaute in html umwandeln. dazu möchte ich die funktion htmlentities verwenden. das funktioniert auch so lange ich den text wie folgt in eine variable packe:

    $text = "äääÖÖÖüüü";

    leider klappt das nicht, wenn der text aus einem textfile in eine variable geschrieben werden soll.

    was mach ich falsch??


    <?

    $path = "./txt/test.txt";
    $mod = "r";

    // text file enthält äs and ös


    $fp = fopen($path, $mod);

    $text = fpassthru($fp);

    // das gleich problem mit $text = readfile($path);

    echo htmlentities($text);

    ?>

    vielen dank im voraus für jedem hinweis

  • #2
    readfile() Liest den Inhalt einer Datei und gibt ihn am Standardoutput (Browser) aus.
    passthru() Führt ein externes Programm aus und zeigt dessen Ausgabe an, wie readfile am Standardoutput

    $text = fpassthru($file); // in $text steht der Returncode, nicht der Inhalt des File
    $text = readfile($file); // in $text steht der Returncode, nicht der Inhalt des File

    Wenn Dui in Deinem Skript das
    echo htmlentities($text);
    eliminierst wirst Du sehen, daß am Browser trotzdem der Inhalt angezeigt wied, weil readfile() bzw. passthru() ihre Ausgabe auf den Standardoutput ausgeben.

    Deshalb ist das File mit den normalen PHP-Filesystem Funktionen zu lesen
    Code:
    <? 
    $file = "test.txt"; 
    
    @$fp = fopen($file,"r"); 
    if (!$fp) {
    	print "File $file doesn't exist<br>\n";
    } else {
    	while (!feof($fp)) { 
    		$text .= fgets($fp, 4096); 
    	}
    }
    @fclose($fp);
    echo htmlentities($text); 
    ?>

    Kommentar


    • #3
      oder du kannst auch fread() zum Einlesen benutzen:
      Code:
      $file = "test.txt"; 
      
      @$fp = fopen($file,"rb"); 
      if (!$fp) {
      	print "File $file doesn't exist<br>\n";
      } else {
      	$text = fread ($fp, filesize ($file));
      }
      @fclose($fp);
      echo htmlentities($text);
      Hinweis: bei fread() mußt du beachten, daß beim fopen() der File mit "b" also binär geöffnet wird -> sonst klappts unter Windows nicht. Falls aber Linux oder so, kannst auch weglassen. Mehr unter http://www.php.net/manual/de/function.fread.php

      Kommentar

      Lädt...
      X