Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Leerzeichen oder Zeilenumbrüche aus textarea entfernen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Leerzeichen oder Zeilenumbrüche aus textarea entfernen

    hallo,

    mein problem ist: ich habe eine "textarea", wo ich texte eingebe, um zu überprüfen, ob diese Wörter schon in der DB vorhanden sind. diese gibt er nachher untereinander aus die vorhandenen und nicht vorhandenen wörter.

    er gibt mir aber immer min. ein leeres zeichen aus, obwohl nichts im "textarea" drinnen steht.

    hier mein code:
    PHP-Code:
    $text preg_replace('/(\r\n|\r|\n)/s',' '$text_eingabe);
    $zeichen_abschneiden str_replace($zeichen,' ',$text);
    $text_zeilenumbruch explode(' ',$zeichen_abschneiden); 
    $text_eingabe ist der text, der im "textarea" steht

    vielen dank im voraus

  • #2
    er gibt mir aber immer min, ein leeres zeichen aus, obwohl nichts im "textarea" drinnen steht.
    Was ist los?
    [URL]http://hallophp.de[/URL]

    Kommentar


    • #3
      SO ist das nunmal bei explode.
      [COLOR="#F5F5FF"]--[/COLOR]
      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
      [COLOR="#F5F5FF"]
      --[/COLOR]

      Kommentar


      • #4
        was steht in $zeichen?
        wie wärs mitm str_replace nach Explode?
        MfG
        ~Capfly

        Kommentar


        • #5
          Er redet vom leeren String ('').

          explode erzeugt immer mindestens ein ARray-Element.
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar


          • #6
            @ capfly:

            $zeichen = array();
            $zeichen[] = '. ';
            $zeichen[] = ', ';
            $zeichen[] = ':';
            $zeichen[] = ';';
            $zeichen[] = '?';
            $zeichen[] = '!';
            $zeichen[] = '- ';
            $zeichen[] = '^';
            $zeichen[] = '°';
            $zeichen[] = '+';
            $zeichen[] = '*';
            $zeichen[] = '/';
            $zeichen[] = ' (';
            $zeichen[] = ') ';
            $zeichen[] = ' [';
            $zeichen[] = '] ';
            $zeichen[] = '%';
            $zeichen[] = '"';
            $zeichen[] = '=';
            $zeichen[] = '„';
            $zeichen[] = '“.';
            $zeichen[] = '“ ';
            $zeichen[] = ' – ';

            @ Asipak:

            er sagt, das im textarea was drin steht, obwohl es leer ist.

            Kommentar


            • #7
              Du ersetzt es ja letztenendes mit einem Leerzeichen
              MfG
              ~Capfly

              Kommentar


              • #8
                Kann es sein, dass das schliessende textarea element nicht direkt hinter dem öffnenden steht?
                Probier mal sowas
                Code:
                <textarea ....></textarea>
                Zitat von Capfly Beitrag anzeigen
                Du ersetzt es ja letztenendes mit einem Leerzeichen
                Das kommt auch noch erschwerend hinzu
                "My software never has bugs, it just develops random features."
                "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                Kommentar


                • #9
                  Ich sehe das Problem nicht.

                  PHP-Code:
                  explode(' ' ''); // array(string(0) => '') 
                  Das ist nunmal so. Wenn Du das Verhalten nicht willst, musst Du vorher den Wert überprüfen!
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar


                  • #10
                    meinst du jetzt bei $zeichnen_abschneiden? wenn ich da das leerzeichen wegmache, macht er ja die punkte weg und schreibt die wörter aneinander. das soll ja auch nicht.

                    Kommentar


                    • #11
                      Ich kapier' immer noch nix
                      [URL]http://hallophp.de[/URL]

                      Kommentar


                      • #12
                        Wenn Du jetzt nicht mal konkret wirst, mache ich hier dicht. So ein Geschwafel!
                        [COLOR="#F5F5FF"]--[/COLOR]
                        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                        [COLOR="#F5F5FF"]
                        --[/COLOR]

                        Kommentar


                        • #13
                          also:
                          ich gebe einen Text in die Textarea ein, und lass dann überprüfen, ob die Wörter schon in der DB vorkommen. Wenn die vorkommen, erscheinen diese ganz unten. Die noch nicht drin stehen, werden untereinander ausgeführt zu einzelnen Formularen. Man kann dann für das entsprechende Wort ein Attribut auswählen und in der DB speichern.
                          wie bekomme ich die leerzeichen etc. weg?
                          PHP-Code:
                          // Texteingabe
                          echo 
                          '<u><b>Neuen Text eingeben:</b></u><br>
                          <form name="texteingabe" action="" method="post">
                          <textarea name="text" cols="50" rows="10">'
                          .$_POST['text'].'</textarea><br>
                          <input type="submit" name="speichern" value="Text überprüfen">
                          </form>'
                          ;
                          $text_eingabe $_POST['text'];

                          // dann kommen die ganzen zeichen
                          $zeichen = array();
                          $zeichen[] = '. ';
                          $zeichen[] = ', ';
                          $zeichen[] = ':';
                          $zeichen[] = ';';

                          // wenn textarea leer ist, dann nichts, sonst zeichen, zeilenumbrüche usw. entfernen
                          if($_POST['text'] == '')
                          {
                          /* keine Aktion */ }
                          else
                          {
                              
                          $text preg_replace("/(\r\n|\r|\n)/s",' '$text_eingabe);
                              
                          $zeichen_abschneiden str_replace($zeichen,' ',$text);
                              
                          $text_zeilenumbruch explode(' ',$zeichen_abschneiden);
                          }

                          for(
                          $x=0;$x<count($text_zeilenumbruch);$x++)
                          {
                          // Schauen ob das Wort in der Datenbank schon vorhanden ist
                              
                          $abfrage_wort_pruefen "SELECT id, schlagwort
                                                      FROM global_schlagworte
                                                      WHERE schlagwort = '"
                          .$text_zeilenumbruch[$x]."'
                                                      GROUP BY schlagwort LIMIT 1"
                          ;
                              
                          $wort_pruefen mysql_query($abfrage_wort_pruefen);

                              
                          // Überprüfen, ob Zahlen im Text vorkommen
                              
                          $zahl_vorhanden "/^[0-9]+([a-z]|-([0-9]+|[a-zA-ZäöüÄÖÜ]+)|(.|,|:)[0-9]+|)$/";
                              
                              if(
                          preg_match($zahl_vorhanden$text_zeilenumbruch[$x]) OR preg_match("/^\d{1,2}\.\d{1,2}\.\d{(2|4)}$/",  $text_zeilenumbruch[$x]) OR preg_match("/^\d{1,2}\.\d{1,2}\.-\d{1,2}\.\d{1,2}\.\d{(2|4)}$/"$text_zeilenumbruch[$x]))
                              {
                                  
                          $nicht_angezeigt[] = $text_zeilenumbruch[$x];
                              }
                              else
                              {
                                  
                          // Wenn das Wort nicht vorhanden ist, dann wird ein Formularteil zur Ausgabe hinzugefügt, damit der Benutzer das Wort zuweisen kann
                                  
                          if(mysql_num_rows($wort_pruefen) == 0)
                                  {
                                      
                          $str_ausgabe_neues_wort .= '
                                      <form name="schlagworte_'
                          .$x.'" action="" method="post">
                                      <input type="hidden" name="eingabe" value="1">
                                      <input type="hidden" name="benutzer_id" value="14729">
                                      <input type="hidden" name="schlagwort" value="'
                          .$text_zeilenumbruch[$x].'">
                                      <input type="hidden" name="text" value="'
                          .$_POST['text'].'">
                                      <tr>
                                          <td>'
                          .$text_zeilenumbruch[$x].'</td>

                          Kommentar


                          • #14
                            wie bekomme ich die leerzeichen etc. weg?
                            Welche? Zu welchem Zeitpunkt?
                            [COLOR="#F5F5FF"]--[/COLOR]
                            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                            [COLOR="#F5F5FF"]
                            --[/COLOR]

                            Kommentar


                            • #15
                              nach dem ich auf den button "text überprüfen" klicke, geht der das alles durch und macht dann die ausgabe. und bei der ausgabe mit den wörtern, die vorgeschlagen werden, also noch nicht in der DB stehen, sind zwischen den Wörtern leere zellen dabei.

                              Kommentar

                              Lädt...
                              X