【问题标题】:problem with php function implode newlinephp函数内爆换行的问题
【发布时间】:2020-09-21 12:01:45
【问题描述】:

你好,所以我正在编写一个 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;

【问题讨论】:

  • 您是否用<pre></pre> 标签包围了输出,或者将输出放在浏览器会尊重换行符的地方?
  • implode("<br>",$data); ?
  • 当我在网页上回显我的结果时,使用
    的解决方案有效,但我试图在 dialogflow 上回显结果并且响应包含
    而不是将每个结果放入新的行。

标签: php newline implode


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    相关资源
    最近更新 更多