首页 > 解决方案 > php函数内爆换行的问题

问题描述

你好,所以我正在编写一个 php 代码,它允许我将 sql 查询的结果存储在一个 php 数组中,然后我使用函数 implode 将数组转换为一个字符串,我试图将表的每一行放在一个新的行,但是当我回显字符串时,我的所有结果都在同一行中。

$data=array();
$req=$bdd->prepare("SELECT * FROM tableciqual WHERE (CONVERT(`alim_nom` USING utf8)) LIKE  ?");
$req->execute(array("%$nom%"));
while($resultat=$req->fetch()){
    $data[] =$resultat['alim_nom'];
}
$d=implode("\r\n",$data);
echo $d;

标签: phpnewlineimplode

解决方案


您应该<br/>在函数内使用标记implode,而不是在网络浏览器的情况下使用行终止符。默认情况下,HTML/XML 等标记语言不处理行终止符。例如,

  • 换行'\n'
  • 回车'\r'
  • 下一行'\u0085'
  • 行分隔符'\u2028'
  • 段落分隔符'\u2029

未按应有的方式处理(默认情况下在 Web 浏览器中)。相反,浏览器将它们视为“空白”

如果你想使用它们,那么你可以

  • <pre>标签包装变量/输出,这将明确告诉浏览器也进行非 HTML 格式设置(如本例中的行终止符)。
  • 使用该nl2br()函数,它将行终止符转换为<br/>

理想情况下,您希望用换行<br/>标记替换行终止符。


推荐阅读