2017-11-17 1 views
-1

Was ich versuche zu tun ist, eine Liste von Strings, die Wörter enthalten, über Textarea einzugeben und + zu jedem Wort innerhalb dieser Strings hinzuzufügen.Wie fügt man jedem Wort der Eingabe ein Symbol hinzu und gibt bei der anfänglichen Formatierung ein Echo zurück? (PHP)

Wenn ich explodiere mit '' wird das erste Wort jeder Zeile offensichtlich nicht als separates Element hinzugefügt. Wenn ich preg_split oder 2 Loops verwende, geht die Formatierung verloren und es wird nur eine lange Zeile statt mehrerer Strings ausgegeben. Frage ist - wie man alle Zeichenketten richtig in Wörter aufteilt, Symbol jedem hinzufügt und sie dann zurück kombiniert und zurück zu Benutzer ausgibt, ohne Formatierung zu verlieren (wie Newlines)?

Da ich Neuling bin, sollte es sicherlich eine einfache Möglichkeit geben, das zu tun, aber ich konnte es nicht finden.

<div class="row"> 
    <div class="col-lg-6"> 
     <form class="form-group" action="" method="post" > 
       <textarea class="form-control" id="exampleFormControlTextarea1" rows="3" name="un"></textarea> 

       <input class="btn btn-primary" type="submit" value="submit" name="submit" /> 
      </form> 
    </div> 
    </div> 
     <div class="col-lg-6 offset-lg-1"> 
       <?php 
        $counter = 0; 
         if (isset($_POST['un'])) { 
           $input = nl2br($_POST["un"]); 
           $rows = explode("\n", $input); 
           $words = array(); 
           foreach($rows as $row) { 
            $temp = explode(" ", $row); 
            foreach($temp as $word) 
             echo "+" . $word; 
           } 

          } 

       ?> 
     </div> 
+0

Sie haben zu viele offene Fragen, IMHO. Sind irgendwelche nicht gelöst worden? –

Antwort

0

Verwenden Sie str_ireplace. Dies kann Text in einer Zeichenfolge durch etwas anderes ersetzen.

http://php.net/manual/en/function.str-ireplace.php

Sie haben ein neues Wort als etwas im Anschluss an eine „“ oder nach einem „\ n“ definiert. Verwenden Sie einfach str_ireplace, um "" in "+" und "\ n" in "\ n +" zu ändern. Ich nehme an, Sie müssen auch das letzte "+" entfernen, wenn das Ende der Zeichenfolge auch "\ n" ist.

0

Vielen Dank für Ihre Antwort, Patrick. Ich konnte es indianisch lösen:

$input =$_POST["un"]; 
         $textToStore = nl2br(htmlentities($input, ENT_QUOTES, 'UTF-8')); 
         $arrayWords = str_replace(" ", " +", $textToStore); 
         $arrayWords = "+" . $arrayWords; 
         $arrayWords = str_replace("\n", "\n+", $arrayWords); 
         echo $arrayWords; 

Wird posten, wenn ich elegantere Lösung finde.

Verwandte Themen