【问题标题】:PHP Textarea appendPHP 文本区域追加
【发布时间】:2010-12-03 03:07:56
【问题描述】:

好吧,假设我有一个 textarea,我输入了那个 textarea

Hello my name is
Frank and I like
to eat apples.

然后当我点击提交按钮时,我得到:

[Hello my name is]
[Frank and I like]
[to eat apples.]

看看每一行是如何在开头和结尾加上括号的?

有没有办法在 PHP 中甚至可以做到这一点?

【问题讨论】:

  • 你是说你想要那种行为吗?
  • 我在问是否可以拆分文本区域中的每一行并附加它。

标签: php html css


【解决方案1】:

是的:

$output = '['.str_replace("\n", "]\n[", $input).']';

我不确定 textarea 是发送 \n 还是 \r\n。如果是后者,只需将上面的\n更改为\r\n即可。

【讨论】:

    【解决方案2】:

    最简单(也是最快)的方法是通过字符串替换。假设一个“消息”文本区域:

    $text = isset($_POST['message']) ? $_POST['message'] : '';
    $text = str_replace("\n\r", "\n", $text);
    $text = str_replace("\r", "\n", $text);
    $text = "[" . str_replace("\n", "]\n[", $text) . "]";
    echo $text;
    

    【讨论】:

      【解决方案3】:

      如果要保留间距,则必须使用正则表达式:

      $_POST['textarea'] = '['.preg_replace('!((?:\n|\r)+)!', "]$1[", trim($_POST['textarea'])).']';
      

      【讨论】:

      • 我的建议(总是)是将原始输入数据转换为已知格式,也许将其称为您的应用程序的标准。然后,您可以根据输出要求重新格式化它。
      • 不太清楚该评论是什么意思?我刚刚添加了一种方法,可以在文本行之间保留多个换行符,而不是在空白行上留下 []。我很确定无论哪种情况,输出都不是“已知格式”!我同意,如果只需要这些,str_replace 会快得多。
      • 我的意思是软件应该具有数据完整性,包括换行结构。不是说 preg 不是一个好主意,而只是解释数据清理方法的原因。
      猜你喜欢
      • 1970-01-01
      • 2018-03-17
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多