如何为每个输入单词添加符号并用初始格式回显? (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>
答
使用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;
将发布,如果我找到更优雅的解决方案。
你有太多未解决的问题,恕我直言。有没有解决? –