Antworten auf deine Fragen:
Neues Thema erstellen

wie zeilenumbruch aus Textarea entfernen (php)

sumpfbarbe

Nicht mehr ganz neu hier

Hallo,
fang grad mal mit php lernen an.
Wenn ich in einem textarea ein enter eingebe wird der mit abgespeichert.
Aber ein Zeilenumbruch ist doch auch das Trennungsmerkmal zwischen einzelnen Beiträgen.
Beim googeln kam ich jetzt auf str_replace.
($text= str_replace("/n", "", $text); ?
Ich weiß jetzt aber net genau was ich damit anfangen soll.
Das hab ich bisher:
forumfunktionen.php
PHP:
<?php
     function beitrag_ausgeben ($beitrag)  {
         
              print $beitrag ["text"];
              print "<br>Autor: ";
              print $beitrag ["autor"];
              print "<hr>";
            
     }

                            
     function beitrag_hinzufuegen () {
              global $text, $autor;
              $texte = file ("beitraege.txt");
              $neuer_text = $text;
        
              $letzter_textindex = count ($texte)-2;
              if (trim($texte[$letzter_textindex]) !=$neuer_text) {
                 $datei = fopen ("beitraege.txt", "a");
                 fputs ($datei, "\n$neuer_text\n"); 
                 fputs ($datei, "$autor");
                 fclose ($datei);
                 }
              }
              
              function formular_anzeigen () { 
                 ?>    
                       
                       <form action="forum.php" method="POST">
                             Text:  
                             <textarea name="text" cols="50" rows="10" > 
                               </textarea> 
                             Autor: <input type="text" size=20 name="autor">
                             <p><input type="submit" value="Abschicken" />
                             </form>
                            
                             <?php 
                              }
                             ?>
und forum php:
PHP:
<?php
     include ("forumfunktionen.php");
     if (isset ($text)) beitrag_hinzufuegen();

     include ("beitraege.php");
?>
<html>
      <head>
            <title> Forum</title>
      </head></html>
      <body>
            <h1> Willkomen beim Forum </h1>
            <b>Sagen Sie uns Ihre Meinung!</b><p/>
            <?php
            if (!isset ($gesperrt))
                formular_anzeigen()
            ?>
            <hr>
            <?php
                 for ($i=0; $i < count ($beitrag); $i++) {
                 beitrag_ausgeben ($beitrag[$i]);
                
                 }
                 ?>
            </body>
      </html>
Hänge da voll fest:(

Danke vorab für konstruktive Tipps
 

M3g4Star

Nicht mehr ganz neu hier

AW: wie zeilenumbruch aus Textarea entfernen (php)

Einfach den Text aus der Area durch die Funktion nl2br jagen. Dann werden deine "Enter" auch in Umbrüche bei der Ausgabe umgewandelt.

Was du damit meinst weiß ich leider nicht.
Aber ein Zeilenumbruch ist doch auch das Trennungsmerkmal zwischen einzelnen Beiträgen.

Versuchst du ein Forum zu bauen? Also "Anfänger" ist ein Forum ein ziemlich harter Brocken. Dann nutze evtl die Open Source Foren die du im Netz so findest.
Greets M3g4
 

sumpfbarbe

Nicht mehr ganz neu hier

AW: wie zeilenumbruch aus Textarea entfernen (php)

danke für die schnelle antwort.
ich suche noch die lösung mittels der str_replace

grüße
 

sokie

Mod | Web

AW: wie zeilenumbruch aus Textarea entfernen (php)

Das entfernen der Umbrüche müsste dann in der funktion beitrag_ausgeben() passieren:
PHP:
function beitrag_ausgeben ($beitrag)  {
         
              $text = str_replace("\n","",$beitrag ["text"]);
              print $text;
              print "<br>Autor: ";
              print $beitrag ["autor"];
              print "<hr>";
            
     }
günstiger wäre sicherlich wie schon in der ersten Antwort geschrieben, die Umbrüche gleich durch ein <br /> ersetzen zu lassen ( nl2br() )
 

TimeePic

Nicht mehr ganz neu hier

AW: wie zeilenumbruch aus Textarea entfernen (php)

nl2br() arbeitet schneller, wie eine selbstgeschriebene funktion mittels str_replace !
 

sumpfbarbe

Nicht mehr ganz neu hier

AW: wie zeilenumbruch aus Textarea entfernen (php)

Hallo,

danke an Euch für die Hilfe. Werde beides mal ausprobieren.
Konstruktive schnelle Antworten ohne "sprüche" -> Top!!!
Das macht -meines erachtens- u.a. ein Top-Forum aus.

Grüße und weiter so es gibt noch viel zu lehren und lernen...
 

sumpfbarbe

Nicht mehr ganz neu hier

AW: wie zeilenumbruch aus Textarea entfernen (php)

Hallo,
@sokie: Hab das mal so probiert, aber irgendwie klappt das nicht

PHP:
   function beitrag_ausgeben ($beitrag)  {
          
              $text = str_replace("\n","",$beitrag ["text"]);
              print $beitrag ["text"];
              print " Autor: ";
              print $beitrag ["autor"];
              print "<hr>";
ich hab mal nen screenshot gemacht wie das rauskommt:


Die ersten 3 Beiträge sind aus einer Datei ausgelesen. Den 4. Beitrag hab ich in das Formular eingegeben
(text Hallo
welt
Autor ich) . Dieser sollte aber genauso erscheinen wie die vorherigen.
Wie würde es den mit der anderen Lösung n... funktionieren?

Grüße und Dank vorab
 

M3g4Star

Nicht mehr ganz neu hier

AW: wie zeilenumbruch aus Textarea entfernen (php)

Ich glaube du verstehst selbst nicht ganz was du machen willst oder zumindest kannst du es nicht gut erklären.

Willst du es so ??? schrieb:
TEXT
TEXT
TEXT
TEXT
Autor: Blablub

oder so ??? schrieb:
TEXT TEXT TEXT TEXT Autor: Blablub


1. Du ersetzt alle Umbrüche und nutzt dann aber die Variable nicht. Wenn du Sie nicht ausgibst passiert auch nix mit dem Text.
PHP:
$text = str_replace("\n","",$beitrag ["text"]); 
print $beitrag ["text"];  // HIER muss auch $text hin sonst passiert gar nix
print " Autor: ";
print $beitrag ["autor"];
print "<hr>";
2. Was genau soll denn passieren? wenn du die Zeilenumbrüche die im Formular eingetragen werden umsetzen willst nimm nl2br

PHP:
echo nl2br($beitrag ["text"]);
3.
 

sumpfbarbe

Nicht mehr ganz neu hier

AW: wie zeilenumbruch aus Textarea entfernen (php)

Ich glaube du verstehst selbst nicht ganz was du machen willst oder zumindest kannst du es nicht gut erklären.

Hallo,
erstmal versteh ich was ich möchte.
Wenn Du es nicht verstanden hast hab ich es wohl nicht so toll erklärt.




1. Du ersetzt alle Umbrüche und nutzt dann aber die Variable nicht. Wenn du Sie nicht ausgibst passiert auch nix mit dem Text.
PHP:
$text = str_replace("\n","",$beitrag ["text"]); 
print $beitrag ["text"];  // HIER muss auch $text hin sonst passiert gar nix
Sorry war die falsche Datei. Da steht print $text

print " Autor: ";
print $beitrag ["autor"];
print "<hr>";
2. Was genau soll denn passieren? wenn du die Zeilenumbrüche die im Formular eingetragen werden umsetzen willst nimm nl2br

PHP:
echo nl2br($beitrag ["text"]);
3.
Ich möchte das der User es so in Textarea eingeben kann
Blabla (dann Entertaste)
blabla

im Feld Autor steht z.B. Thomas
aber ausgegeben soll es alles in einer Zeile wie schon in dem screenshot zu sehen ist ( die ersten 3 Beiträge)
Blablablabla Autor: Thomas
Die Ausgabe kommt dann aber so:

Ich hoffe es ist so jetzt verständlich rübergekommen.

Danke für die Mühen vorab und Grüße
 
Zuletzt bearbeitet:

M3g4Star

Nicht mehr ganz neu hier

AW: wie zeilenumbruch aus Textarea entfernen (php)

Servus. Ja dann war der Ansatz schon mal richtig. Nur das das dort 2 Mal ausgegeben wird hat eher was mit deinem File zu tun. Du müsstest natürlich bei "hinzufügen" die Umbrüche filtern / ersetzen ... dort würde ich mir eine andere Variante für die Beiträge überlegen. Als seperator bietet sich immer "|" oder "###" oder ähnliches an.

also dort einfach die Umbrüche raus filtern:
PHP:
  fputs ($datei, "\n$neuer_text\n");


btw:
 
AW: wie zeilenumbruch aus Textarea entfernen (php)

also um alle umbrüche rauszunemen kannste mit str_replace net viel machen
da du das ganze durch ne rekursive schleife laufen lassen musst.

schau dir mal preg_replace an :)

preg_replace( "umbruchtag / lnbr <br> usw", "");

wenn du nur das vorgegebene <br> in der textarea raushaben willst also das was ohne eingabe schon drin ist setze einfach das </textarea> in die gleichezeile und ohne leerzeichen an das <textarea> tag.

textarea ist so schlau das es den html / php zeilenumbruch in sich implementiert und interpetiert und diesen auch einsetzt.

grüße pumble
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.611
Beiträge
1.538.341
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben