【问题标题】:PHP: \n \r \t won't work on double qoutesPHP: \n \r \t 对双引号不起作用
【发布时间】:2015-05-25 12:34:51
【问题描述】:

在 MAMP PRO 上使用 PHP 5.6.2 并尝试回显此字符串:

echo " \" \n \r \t \\ \$ ";

我得到的输出是:

" \ $

所以转义序列如 \n \t \r 被忽略。我不知道 php.ini 是否有问题,因为它之前一直运行良好。

如果有人能帮我解决这个问题,我将不胜感激。

【问题讨论】:

  • 在终端中执行此操作,一切正常。如果您使用的是 MAMP,可能是这些字符在浏览器中的表示。
  • 您使用什么工具来查看输出?浏览器只会为所有空白字符显示一个空格,除非您在 <pre> 或类似名称中使用它们。

标签: php string escaping echo double-quotes


【解决方案1】:

在浏览器中

echo "<pre> \" \n \r \t \\ \$ </pre>";

在终端

echo " \" \n \r \t \\ \$ ";

HTML 元素(或 HTML 预格式化文本)表示预格式化文本。此元素中的文本通常以不成比例的字体显示,与文件中的布局完全相同。此元素内的空格显示为已键入。

【讨论】:

  • 谢谢,这是我的错,因为浏览器只为所有空格(换行符、制表符、返回)输出一个空格,除非你使用
【解决方案2】:

echo 语句使用单引号,\t 或 \n 使用双引号。

类似的东西:

echo 'Your text' . "\t" .
     'Your text' . "\n" .
     'Your text at next line';

【讨论】:

    【解决方案3】:

    在终端执行脚本时尝试PHP_EOL 常量。对于网络浏览器,应使用&lt;br /&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多