text datei im utf8 format schreiben
alexandra
- php
über folgendes formular schreibe ich eine txt datei.
------------------------------
<?
if ($button) {
// Hier wird das File geschrieben
$fp = fopen('news.txt', 'w');
$antwort = $antwort."\n";
fputs($fp, $antwort, strlen($antwort));
fclose($fp);
// Die Ausgabe der Datei
$fp = fopen('news.txt', 'r');
fpassthru($fp);
}
else {
echo '<form name="daten_edit" action="'.$PHP_SELF.'" method="post">
<textarea name="antwort" cols="60" rows="20"></textarea>
<input type="submit" name="button" value="Abschicken">
</form>';
}
?>
----------------
kann ich die datei im utf 8 format speichern? (utf8_encode();)
wenn ja - wo muss das denn hin?
hi,
kann ich die datei im utf 8 format speichern? (utf8_encode();)
sofern du das für sinnvoll hältst - die lösung scheinst du doch schon zu kennen?
wenn ja - wo muss das denn hin?
es muss passieren, bevor du den text in die datei schreibst.
(sag bitte nicht, dass du diese stelle wirklich nicht findest ...?)
gruss,
wahsaga
oh mann - so viel ironie. ;)
aber wo muss das denn hin?
Hallo Alexandra,
<?
if ($button) { # ist $button vorhanden und > 0 ?
// Hier wird das File geschrieben
$fp = fopen('news.txt', 'w'); # Datei zum Schreiben öffnen
$antwort = $antwort."\n"; # an Parameter antwort einen
# Zeilenumbruch amhängen
## hier ?
fputs($fp, $antwort, strlen($antwort)); # Zeile wegschreiben
fclose($fp); # Datei schließen// Die Ausgabe der Datei
$fp = fopen('news.txt', 'r');
fpassthru($fp);
fclose($fp); # bitte auch wieder schließen
# readfile('news.txt');
## allerdings sind beide Varianten falsch, denn der Inhalt
## der Datei muss VOR der Ausgabe erst für den Browser auf-
## bereitet werden. Also:
$fp = fopen('news.txt', 'r');
$data = fread($fp,filesize('news.txt'));
fclose($fp); # bitte auch wieder schließen
### hier müsste dan die utf8-Dekodierung stattfinden...
$data = htmlentities($data);
echo $data;
}
##»» else { ## man kann auf jeden fall die Textarea anzeigen
## genauso wie im SelfForum bei der Threadanzeige
echo '<form name="daten_edit" action="'.$PHP_SELF.'" method="post">
<textarea name="antwort" cols="60" rows="20">$data</textarea>
<input type="submit" name="button" value="Abschicken">
</form>';
}
?>
Mit diesem Script kannst Du nur eine einzige Textarea speichern.
Wenn es mehrere werden sollen, müsstest Du die Zeilenumbrüche in
der Textarea besonders behandeln, damit die Speicherung als Zeile
in der Datei nicht zerstört wird.
Grüße
Tom