【问题标题】:nl2br() deletes content between <br />nl2br() 删除 <br /> 之间的内容
【发布时间】:2015-05-22 09:39:39
【问题描述】:

我正在从 mssql 数据库中获取一个字符串到我的 .php 页面。

为了好看,我想用 &lt;br /&gt; 替换换行符 所以我尝试了以下方法(一次一个):

echo nl2br($data);
echo str_replace(chr(10), "<br />",str_replace(chr(13), "<br />", $data))
echo str_replace("\n", "<br />",str_replace("\r", "<br />", $data))

HTML 源代码看起来没问题:

blablalba<br />sdsddsfdfs<br />fds<br />dfsdfs<br />fdsdsf<br />:_k,ölmjlö<br />öä.löälöä#<br />

但 HTML 上的结果为空,Chrome 开发者工具显示如下:

<br><br><br><br><br><br><br>

我错过了什么?

echo $data 给了我正确的结果,但没有 &lt;br /&gt;'s

blablalba sdsddsfdfs fds dfsdfs fdsdsf :_k,ölmjlö öä.löälöä#

问候

【问题讨论】:

  • str_replace 不是多字节安全的,因此您不能将它与多字节编码字符串一起使用。
  • "\n" 等于 chr(10)"\r" 等于 chr(13) ...并且 nl2br() 替换它们。检查你$data 包含数据。
  • @CasimiretHippolyte 这只是一次尝试,我很绝望:o .$data 包含我在 HTML 源代码中看到的数据
  • echo $data 给你什么?当 chrome 开发者工具告诉你 &lt;br&gt;&lt;br&gt;&lt;br&gt;,那么你究竟是从哪里获取其他 HTML 源代码的?
  • 其他,尝试在 html 源代码中直接用 &lt;br&gt; 替换换行符是危险的,因为换行符可以在标签内。

标签: php sql-server newline


【解决方案1】:

使用自动换行...

当字符串达到特定长度时将其换行:

<?php
$str = "An example of a long word is: Supercalifragulistic";

echo wordwrap($str,15,"<br>\n");

?>

结果:

An example of a
long word is:
Supercalifragulistic

【讨论】:

  • 同样的行为,表格单元一直是空的
猜你喜欢
  • 1970-01-01
  • 2016-05-11
  • 1970-01-01
  • 2019-08-22
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多