如何为每个输入单词添加符号并用初始格式回显? (PHP)

问题描述:

我想要做的是通过textarea输入包含单词的字符串列表,并为这些字符串中的每个单词添加+。如何为每个输入单词添加符号并用初始格式回显? (PHP)

当我用''爆炸时,每行的第一个单词显然不会作为单独的项目添加。当我使用preg_split或2个循环时 - 格式化会丢失,并且我得到的只是一长串而不是几个字符串。 问题是 - 如何正确地将所有字符串拆分为单词,将符号添加到每个单词中,然后将它们组合起来并输出回用户而不会丢失格式(如换行符)?

由于我是新手,肯定应该有一些简单的方法来做到这一点,但我无法找到它。

<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

你有太多未解决的问题,恕我直言。有没有解决? –

使用str_ireplace。这可以用别的东西替换字符串中的文本。

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

您已经定义了以下一个“”,或跟随在“\ n”个新词的东西。只需使用str_ireplace将“”更改为“+”,将“\ n”更改为“\ n +”。我想你还需要删除最后的“+”,如果字符串的结尾也是“\ n”。

谢谢你的回应,Patrick。我能解决它印度的方式:

$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; 

将发布,如果我找到更优雅的解决方案。