【问题标题】:Character Replacement: Break-Lines字符替换:断线
【发布时间】:2011-09-21 13:53:07
【问题描述】:

我的应用程序中有几个区域有

我的一位用户注意到,如果您在消息中使用换行符(使用“shift+enter”),它会在尝试检索消息时破坏 Javascript。由于这只是尝试阅读消息时的问题,因此我应该能够在消息发送时替换它。

如何检测换行符并在提交时替换它?

str_replace(???,"/n",$string)

【问题讨论】:

  • 你的意思是str_replace("\n", ???, $string)?你想用什么替换换行符?

标签: php character-replacement


【解决方案1】:

正如您所发现的,javascript 无法处理中间字符串的换行符。也就是说,下面的输出会导致js报错……

<body onload="alert('te
st');">

您可以在虚线末尾添加反斜杠来修复此错误...

<body onload="alert('te \
st');">

正如 user765476 所说,您可以在文本上使用 PHP 的 nl2br 函数。但要补充的是,通常最好仅在您实际构建 html 输出时才这样做。一个原因是,如果您允许用户编辑他们已经提交的文本,他们将在文本框中的任何地方看到&lt;br&gt;,您将不得不设计另一个脚本来替换那些&lt;br&gt;

如果您真的想完全禁止用户提交换行符(以及任何可能的回车符),那么请使用类似这个基本 PHP 代码的代码将它们替换为单个空格...

str_replace(array("\r\n", "\r", "\n"), ' ', $message);

注意:搜索字符串的顺序很重要。第一遍替换所有"\r\n",第二遍替换所有剩余的"\r",第三遍替换所有剩余的"\n"编辑:我忘了"\r"在IE中被识别javascript,只是不适用于某些其他浏览器)。

【讨论】:

    【解决方案2】:

    也许this function 是你在找什么?它将换行符转换为&lt;br/&gt; 标签。

    【讨论】:

      猜你喜欢
      • 2021-01-11
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-25
      相关资源
      最近更新 更多