Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

[PHP] banale Frage die 2.

Servus,
wieder mal eine banale Frage:

Ich habe ein Formular mit einer Textfeld(textarea). So nun schicke ich dieses Formular ab und in der Verwertung möchte ich den Text weiterverarbeiten, aber leider werden keine Zeilenumbrüche angegeben und ein Array ist das Textfeld auch nicht, sodass man es Zeile für Zeile auslesen und dann die Umbrüche hinzufügen könnte.

Also wie bekomme ich da die Zeilenumbrüche hin. Ich glaube da gab es mal eine Funktion für.

Mal die Kurzversion:

<html>
<body>
<form action="..." method="POST >
<textarea colos="xx" rows="xx" name="TEXT"></textarea>
<input type="submit">
</form>
</html>
So nun wollte ich es wie folgt machen:
$text = nl2br($_POST['TEXT']);

Aber irgendwie will es nicht, die Lösung ist bestimmt einfach :)


Antworten zu [PHP] banale Frage die 2.:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hallo
http://www.schattenbaum.net/php/ereg.php?PHPSESSID=e74cfecdcb289b6d31e57518ff427706

dort ist das eigentlich alles perfekt erklärt
gruß
der_webi

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Mit nl2br() sollte es aber eigentlich funktionieren. Was hast du denn genau vor hinsichtlich Weiterverarbeitung?

greez 8)
JoSsiF

in eine Textdatei schreiben.

Mit dem Code von Schattenwelt hab ich das gleiche Problem, der Text wird einfach ohne Zeilenbrüche ausgegeben, ich glaub es liegt an dem textarea, kann das sein?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Merkwürdig. Könnte aber an der Codierung der Textdatei liegen, oder auch am Client.

Probiere mal ein paar Ersetzungen:

<?php
// nehmen wir an, in $text steht der übermittelte Inhalt der Textarea

define ("CRLF",chr(13).chr(10));
define ("CR",chr(13));
define ("LF",chr(10));
define ("RET",chr(127));

$text str_replace(CRLF,RET,$text);  // kommt vom Windows-Client
$text str_replace(CR,RET,$text);    // kommt vom MAC-Client
$text str_replace(LF,RET,$text);    // kommt vom Unix-Client

// schreiben ...
?>


nl2br() bringt in dem Fall übrigens nichts, ganz im Gegenteil. Da Umbrüche in HTML-Breaks umgewandelt werden, stehen die stattdessen in der Datei.

greez 8)
JoSsiF

Habs jetzt so , er schreib in die Textdatei aber nicht in eine Zeile, warum nicht?

<?php
#########################
##### Newssstem  ########
#########################

//##### FUNKTIONEN #####
function write_write($datei,$text,$modus)
{
$handle fopen($datei,$modus);
fputs($handle,$text);
fclose($handle);

}


//##### VARS #####
$message $_POST[&#39;message&#39;];
$titel  = $_POST[&#39;titel&#39;];
$source  $_POST[&#39;source&#39;];
//Sonstiges
$t1 chr(10);
include("formular.php");

//#### EINTRAG #####

if($_POST[&#39;send&#39;] == "send")
{
$message $message."\n";
write_write("datei.txt",$message,"a");
// ## Einträge überprüfen
if(!empty($message) and !empty($titel))
// Alle Felder ausgefüllt
{
$message str_replace($t1,&#39;<br>&#39;,$message);
}
else
// Ein Feld leer;
{
if(empty($message))
{
echo "<font color=&#39;red&#39;><li>Bitte einen Ttitel eintragen</li></font>";
}
if(empty($titel))
{
echo "<font color=&#39;red&#39;><li>Bitte eine Nachricht eintragen</li></font>";
}
}
// ## Einträge eintragen
$message $message."\n";
write_write("datei.txt",$message,"a");

}

?>


Ist natürlich noch lange nicht fertig. Erstmal in die TXT Datei schreiben ;D
« Letzte Änderung: 01.12.06, 00:04:56 von ludden »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Habs jetzt so , er schreib in die Textdatei aber nicht in eine Zeile, warum nicht?

Wo liegt denn jetzt das Problem? Ich denke, er soll die Umbrüche mit machen. Wenn er das jetzt tut, ist doch ok. Oder warum soll er auf einmal in eine Zeile schreiben  ???

Ich möchte, dass er alles in eine Zeile(in der Textdatei) schreibt und dann da, wo im Text die Umbrüche sind ein <br> einfügt, damit ich das ganze mit explode() auslesen kann. das ist mein Problem. So hab ich jetzt zwar die <br> drinn, aber schreibt den Text nichtmehr in eine Zeile sondern nimmt nach jedem <br> in der TXT Datei eine neue Zeile.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Also doch Breaks - du verwirrst einen ja! ;)

Dein Code ergibt stellenweise nicht allzu viel Sinn. Du schreibst mehrfach in die Textdatei - warum?

Aber tatsächlich ist nl2br() hier nicht das richtige, da es zwar HTML-Breaks einfügt, aber die ursprünglichen Umbrüche nicht zuverlässig entfernt.

So hier geht's aber:

<?php
if ($_REQUEST[&#39;sent&#39;])
{
$fp fopen(&#39;mytextfile.txt&#39;, &#39;w&#39;);

$text $_REQUEST[&#39;mytext&#39;];

// replacements

define ("CRLF",chr(13).chr(10));
define ("CR",chr(13));
define ("LF",chr(10));

define ("RET",&#39;<br>&#39;);


$text str_replace(CRLF,RET,$text);  // kommt vom Windows-Client
  
$text str_replace(CR,RET,$text);    // kommt vom MAC-Client
  
$text str_replace(LF,RET,$text);    // kommt vom Unix-Client
  


fwrite($fp$text);
fclose($fp);
}
?>


greez 8)
JoSsiF

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ach so, beinahe hätte ich es vergessen: Die Reihenfolge der Ersetzungen in dem Code da oben ist wichtig, also am besten mal nicht verändern - nur so als Hinweis ;)


Dein Code ergibt stellenweise nicht allzu viel Sinn. Du schreibst mehrfach in die Textdatei - warum?


Ist noch ein überbleibsel, wollte gestern Abend noch schnell posten und habs vergessen wegzumachen

Ich flipp noch aus:

1) mit dem von dir gepostetem Codeschnipsel wird nichtmal etwas in die TXT Datei geschrieben, da läuft also auch etwas schief
2) Wenn ich das Forumular abschicke wird der Text unterhalb des Formulars gepostet, obwohl nirgendwo ein echo steht  :o

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
1) mit dem von dir gepostetem Codeschnipsel wird nichtmal etwas in die TXT Datei geschrieben, da läuft also auch etwas schief

Da läuft nichts schief. Das Skript ist jedoch nicht an deinen geposteten Code angepasst, ich hab das mal eben schnell zusammengeschrieben.
Es ist auch lediglich der Teil, der die Konvertierungen und den Eintrag vornimmt. Dachte, den Rest kannst du selber anpassen ;)

greez 8)
JoSsiF

na, ich habs schon angepasst, geht trozdem nicht :(

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Kannste nochmal den Code posten?

<?php
if ($_POST[&#39;send&#39;] == "send")
{
$fp fopen(&#39;datei.txt&#39;, &#39;w&#39;);

$text $_POST[&#39;message&#39;];

// replacements

define ("CRLF",chr(13).chr(10));
define ("CR",chr(13));
define ("LF",chr(10));

define ("RET",&#39;<br>&#39;);


$text str_replace(CRLF,RET,$text);  // kommt vom Windows-Client
   
$text str_replace(CR,RET,$text);    // kommt vom MAC-Client
   
$text str_replace(LF,RET,$text);    // kommt vom Unix-Client
  

fwrite($fp$text);
fclose($fp);
}
?>

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Wenn's mit dem Formular übereinstimmt, müsste es funktionieren. Ich poste dir mal mein komplettes Skript samt Formular:

<form action="<?php echo $_SERVER[&#39;PHP_SELF&#39;] ?>" method="POST">
<textarea name="mytext"></textarea><br />
<input type="hidden" name="sent" value="1">
<input type="submit">
</form>
<?php
if ($_REQUEST[&#39;sent&#39;])
{
$fp fopen(&#39;mytextfile.txt&#39;, &#39;w&#39;);

$text $_REQUEST[&#39;mytext&#39;];

// replacements

define ("CRLF",chr(13).chr(10));
define ("CR",chr(13));
define ("LF",chr(10));

define ("RET",&#39;<br>&#39;);


$text str_replace(CRLF,RET,$text);  // kommt vom Windows-Client
  
$text str_replace(CR,RET,$text);    // kommt vom MAC-Client
  
$text str_replace(LF,RET,$text);    // kommt vom Unix-Client
  


fwrite($fp$text);
fclose($fp);
}
?>


« Flash-ein ProblemvServer/Linux/Teamspeak »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Hypertext
Hypertext ( zu Deutsch: Übertext) ein ein von dem Informatiker Theodore L. Nelson in den sechziger Jahren geprägter Begriff für Text, der dreidimensional g...

Textur
Unter einer Textur versteht man eine Oberflächenstrukur, die ein bestimmtes Material simuliert, wie Holz, Tapete oder Metall. Bei der 3D-Computeranimation bezeichnet...

Malware
Mit Malware bezeichnet man allgemein Schadprogramme, die dazu entwickelt worden schädliche Funktionen auf Computern auszuführen. Das Wort setzt sich zusammen au...