【问题标题】:insert newline character into string in php as a delimiter在php中的字符串中插入换行符作为分隔符
【发布时间】:2013-02-23 06:00:37
【问题描述】:

我在前端有一个表单,其中有两个由隐藏输入分隔的文本区域,如下所示:

<textarea name="top">
blah 
blah 
</textarea>
<input type="hidden" name="foo" value="some string" />
<textarea name="bottom"> 
blah 
blah 
</textarea>

当我在服务器端获得此表单时,我想在隐藏输入之前和之后连接一个换行符,如下所示:

$text = $_Post['top'] . "\n" . $_Post['foo'] . "\n" . $_Post['bottom']; 

为了在我的程序中使用该换行符作为分隔符,以便稍后在我的程序中爆炸:

$arrayOfTextSplitByNewlines = explode("\n", $text); 

我的问题是我添加到字符串中的换行符没有被explode识别为换行符,而是被视为字符串文字。我尝试过单引号、双引号、转义换行符等,但由于某种原因,它们只是字符串。关于我做错了什么的任何见解?

【问题讨论】:

  • 为什么不使用不同的分隔符?有点像 ||
  • 如果文本区域包含换行符怎么办?
  • 不能用逗号吗?
  • 您编写的代码应该可以工作,换行符应该可以识别。你确定你没有使用单引号? \n 只翻译成双引号中的换行符。
  • 但是你为什么要这样做呢?为什么不直接创建一个数组$text = array($_POST['top'], $_POST['foo'], $_POST['bottom']);

标签: php html newline concatenation


【解决方案1】:

内爆!感谢@barmar 给了我将它作为数组发送的想法。由于上述原因,我不想这样做,但我能够从字符串构建一个数组:

$textArray = array($_POST['top'], $_POST['foo'], $_POST['bottom']); 

然后用换行符作为分隔符将其内爆。

$text = implode("\n", $textArray); 

在整个代码的其他地方,其他一切都按预期工作。不知道为什么它在没有内爆的情况下无法正常工作,所以如果你有任何见解,我会全神贯注。再次感谢@barmar

【讨论】:

    猜你喜欢
    • 2021-11-04
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 2013-05-23
    • 1970-01-01
    • 2011-12-17
    • 2019-07-01
    相关资源
    最近更新 更多