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

Textdatei in UTF-8 erstellen

Aaron3219

Senior HTML'ler
Hey Forum,

eine kleine Frage noch.
Ich versuch mir gerade PHP beizubringen und würde gerne eine Textdatei mit fopen erstellen.
Das ist auch kein Problem, nur ist es zwingend notwendig, diese in utf-8 Codierung zu erstellen.
Ich habe nun wirklich viel gegoogelt aber nichts gefunden (oder vllt. den falschen Suchbegriff eingegeben ;)).

Außerdem müssen Umlaute auch in der PHP Datei angezeigt werden, da ich das Textfile auslese.

Danke schonmal
 
Zuletzt bearbeitet:
Werbung:
Gut Frage 1 hat sich erledigt. Das einzige ist jetzt noch, dass das PHP-File keine Umlaute z.B. anzeigt
 
Gut Frage 1 hat sich erledigt. Das einzige ist jetzt noch, dass das PHP-File keine Umlaute z.B. anzeigt

Dann musst du irgendwo anders ein Encoding Problem haben:
Bash:
php -r 'file_put_contents("test.txt", "äöüß"); echo file_get_contents("test.txt").PHP_EOL;' && rm test.txt
Läuft einwandfrei.
 
Werbung:
Ich schick mal eben ein bisschen Code:
PHP:
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
header('Content-Type: text/html; charset=utf-8');


error_reporting(E_ALL);
ini_set("display_errors", "off");
ini_set("display_startip_errors", "off");


$filename = "$vorname-$nachname.txt";

if (file_exists($filename)) {
    echo " ";
} else {
    echo "Es existiert keine Datei für '$vorname $nachname'";
}

$lines = file("$vorname-$nachname.txt");
In diesem Teil sucht er nach einer Datei namens $vorname-$nachname.txt.
Den Vor- und Nachnamen gibt man vorher in einem html-Form in einer anderen Datei ein.
Das funktioniert alles einwandfrei. Nur habe ich noch ein bisschen html-Code mit in dem PHP-File.
HTML:
<!DOCTYPE html>
<html>
    <head>
        <title>
            Export PHP to Word
        </title>
        <style>
            input {
                width: 169px;
            }
        </style>
        <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    </head>
    <body style="font-family: Calibri, Candara, Segoe, 'Segoe UI', Optima, Arial, sans-serif;">       
        <form autocomplete="on" name="Formular" method="post" action="create-erste-mahnung.php" style="width: 700px;">           
                       
            <a style="margin-top: 17px; width: 200px; text-align: left;">Straße: </a>           
            <input type="text" name="strasse value="<?php echo $lines[2]; ?>" checked>
                      
            <button type="submit" value="Download" class="button-formular" style="float: left;margin-top: 20px;">Speichern</button>
        </form>   
    </body>
</html>

Also er zeigt <?php echo $lines[2]; ?> ganz normal mit Umlaut an.
Nur dieses <a ...> Straße </a> zeigt er nicht an.
Das File ist auf utf-8 umgestellt. Außerdem habe ich durch den meta Tag auch utf-8 festgelegt.
Dann habe ich den kompletten html-Teil in ein .html-File kopiert und siehe da, es funktioniert mit den Umlauten.
 
Ich schick mal eben ein bisschen Code:
PHP:
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
header('Content-Type: text/html; charset=utf-8');


error_reporting(E_ALL);
ini_set("display_errors", "off");
ini_set("display_startip_errors", "off");


$filename = "$vorname-$nachname.txt";

if (file_exists($filename)) {
    echo " ";
} else {
    echo "Es existiert keine Datei für '$vorname $nachname'";
}

$lines = file("$vorname-$nachname.txt");
In diesem Teil sucht er nach einer Datei namens $vorname-$nachname.txt.
Den Vor- und Nachnamen gibt man vorher in einem html-Form in einer anderen Datei ein.
Das funktioniert alles einwandfrei. Nur habe ich noch ein bisschen html-Code mit in dem PHP-File.
HTML:
<!DOCTYPE html>
<html>
    <head>
        <title>
            Export PHP to Word
        </title>
        <style>
            input {
                width: 169px;
            }
        </style>
        <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    </head>
    <body style="font-family: Calibri, Candara, Segoe, 'Segoe UI', Optima, Arial, sans-serif;">    
        <form autocomplete="on" name="Formular" method="post" action="create-erste-mahnung.php" style="width: 700px;">        
                    
            <a style="margin-top: 17px; width: 200px; text-align: left;">Straße: </a>        
            <input type="text" name="strasse value="<?php echo $lines[2]; ?>" checked>
                   
            <button type="submit" value="Download" class="button-formular" style="float: left;margin-top: 20px;">Speichern</button>
        </form>
    </body>
</html>

Also er zeigt <?php echo $lines[2]; ?> ganz normal mit Umlaut an.
Nur dieses <a ...> Straße </a> zeigt er nicht an.
Das File ist auf utf-8 umgestellt. Außerdem habe ich durch den meta Tag auch utf-8 festgelegt.
Dann habe ich den kompletten html-Teil in ein .html-File kopiert und siehe da, es funktioniert mit den Umlauten.

Und wo ist jetzt das Problem? Mit welchem Programm öffnest du die Datei?
PHP:
name="strasse value="<?php echo $lines[2]; ?>"
Hier fehlt auf jeden Fall ein "

Die HTML5 Variante wäre übrigens so und sollte (muss?) das erste Element im <head> sein:
HTML:
<meta charset="utf-8">
 
Also zum öffnen und bearbeiten benutze ich NetBeans.
Das Problem ist, dass in ALLEN PHP-Files keine Umlaute angezeigt werden, wenn ich mit html-Code arbeite.
Beispiel:
<a>Straße XX: </a>
Output:
Stra�e XX:

Ach ja und den meta tag nach oben zu setzen hat leider auch nichts gebracht.

Edit: Hat sich erledigt. Hab es gelöst.
 
Werbung:
Zurück
Oben