【问题标题】:How to use nl2br with php session variables如何将 nl2br 与 php 会话变量一起使用
【发布时间】:2014-05-11 07:03:31
【问题描述】:

我正在尝试在我的 php 脚本中创建换行符。我有使用会话的变量,我不知道如何用它们创建换行符。我尝试了以下(以及不同的组合)以及谷歌搜索以尝试找到完全没有运气的解决方案。

 <?php

session_start();

$_SESSION['firstname'] = $_POST['firstname'];
$_SESSION['lastname'] = $_POST['lastname'];

echo nl2br("First Name : $_SESSION['firstname']\n\r");
echo nl2br("Last Name : $_SESSION['lastname']\n\r");
?>

我正在从前一页的表单中获取变量。如果我只是像这样回显变量,

<?php

session_start();

$_SESSION['firstname'] = $_POST['firstname'];
$_SESSION['lastname'] = $_POST['lastname'];

echo $_SESSION['firstname'];
echo $_SESSION['lastname'];
?>

它工作得很好。我很难找出如何在 php 中将 nl2br 的语法(我之前也成功使用过)与会话变量一起使用。

非常感谢任何帮助。谢谢!

-安东尼

更新:下面通过 Marc B 回答。当会话变量在双引号中时,必须删除单引号。

<?php

session_start();

$_SESSION['firstname'] = $_POST['firstname'];
$_SESSION['lastname'] = $_POST['lastname'];

echo nl2br("First Name : $_SESSION[firstname]\n\r");
echo nl2br("Last Name : $_SESSION[lastname]\n\r");
?>

【问题讨论】:

  • 查看unexpected T_ENCAPSED_AND_WHITESPACE this reference question 部分以获取有关如何正确引用它的建议。您的问题并非特定于 nl2br(),而只是具有复杂变量的双引号字符串的一般行为。
  • 另外,作为回车、换行组合的换行符是\r\n,而不是\n\r,就像你拥有的那样。

标签: php variables session session-variables nl2br


【解决方案1】:
echo nl2br("First Name" . $_SESSION['firstname'] . "\r\n");
echo nl2br("First Name" . $_SESSION['lastname'] . "\r\n");

或者你可以试试吗?

echo "First Name".$_SESSION['firstname']."<br />";
echo "Last Name".$_SESSION['lastname']."<br />";

【讨论】:

    【解决方案2】:

    nl2brstr_replace("\n", "&lt;br /&gt;", $text) 的翻版。如果您的字符串没有 ANY 换行符,则无需替换任何内容,并且您基本上得到了昂贵的 print/echo

    您还有 PHP 语法错误。您不能在双引号字符串中使用带引号的数组键:

    echo "$array[key]"; // ok
    echo "$array['key']"; // wrong
    echo "{$array['key']}"; // ok - extended syntax.
    

    【讨论】:

    • nl2br 比这有点更花哨:它不替换,而是添加
      ,并且它检测到多个 \n 换行符
    猜你喜欢
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2010-10-27
    • 2013-11-10
    • 2015-09-30
    相关资源
    最近更新 更多