【问题标题】:Can't remove whitespaces from textarea无法从 textarea 中删除空格
【发布时间】:2023-03-18 04:01:01
【问题描述】:

我有两个文件。第一个文件是表格,第二个文件显示结果。

第一个文件:

<form action="show.php" method=post>
<textarea name="test" cols=40 rows=6>
</textarea>
<input type=submit value="submit">
</form>

第二个文件:

<?php
$text = trim($_POST['test']);
$textAr = explode("\n", $text);

for ($i=0; $i<sizeof($textAr); $i++)
{
    $link = str_replace(" ", "", $textAr[$i]);
    echo $link."---<br>";
}
?>

例如当我输入表格时

one
two
three

结果是:

one ---
two ---
three---

在字符串的末尾:一和二有我无法删除的空格。有人可以帮我解决这个问题吗?

感谢我使用了 $link = str_replace("\r", "", $textAr[$i]) 现在一切正常

【问题讨论】:

  • 可能是由于文本区域中的回车。尝试从值中去除 \n 和 \r。

标签: php textarea removing-whitespace


【解决方案1】:

使用trim() 代替str_replace

【讨论】:

    【解决方案2】:

    您可以使用trim 函数而不是使用str_replace 来执行此操作。

    【讨论】:

      【解决方案3】:

      基本上,textarea 的换行符在 Internet Explorer 中是 \r\n,在所有其他浏览器(包括 Mac)中是 \n。 IE 从版本 9 开始也使用\n


      有很多方法可以修复您的代码。例如,您可以尝试preg_split()

      preg_split('/(?:\r\n|\n)/', $text);
      

      但是,我还没有测试过这个提案的性能。

      另外,非常重要的是,请务必在正则表达式中将\r\n 放在\n 之前!


      此外,trim()str_replace() 更适合(当然,如果您仍然需要它)。

      【讨论】:

        【解决方案4】:

        我知道已经晚了,但可能会帮助其他人。

        在需要文档缩进时使用它。

        $('document').ready(function()
        {
            $('textarea').each(function(){
                    $(this).val($(this).val().trim());
                }
            );
        });
        

        【讨论】:

          【解决方案5】:

          可能是非空格空格,如非换行符 (nbsp) 或换行符组合的某些部分?

          【讨论】:

            【解决方案6】:

            试试nl2br()函数,可以是回车或换行(\r\n、\n\r、\n和\r)。

            【讨论】:

            • 感谢我使用了 $link = str_replace("\r", "", $textAr[$i]),现在一切正常。
            猜你喜欢
            • 2015-11-09
            • 1970-01-01
            • 1970-01-01
            • 2021-05-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-10-12
            • 2015-09-22
            相关资源
            最近更新 更多