猿问

为什么 PHP 会为我的表代码生成乱码 HTML?

我创建了一个热图函数,我将使用它来使用 PHP 7.2 填充 html 表格的单元格。


这是我的功能:


function bg($latency) {

    if ($latency ==0) {echo '#11FFFF';} 

    elseif ($latency <30) {echo '#22FFFF';} 

    elseif ($latency <60) {echo '#33FFFF';} 

    elseif ($latency <90) {echo '#44FFFF';} 

    elseif ($latency <120) {echo '#55FFFF';} 

    elseif ($latency <150) {echo '#66FFFF';} 

    elseif ($latency <180) {echo '#77FFFF';} 

    elseif ($latency <210) {echo '#88FFFF';} 

    elseif ($latency <240) {echo '#99FFFF';} 

    elseif ($latency <270) {echo '#AAFFFF';} 

    elseif ($latency <300) {echo '#BBFFFF';} 

    elseif ($latency >=300) {echo '#CCB27F';} 

}

我使用简单的 select 语句从 MySQL 表中提取值,然后尝试使用以下代码片段构建表:


while($row = mysqli_fetch_assoc($result)) {

    echo '<tr><td>'.$row['origin'].'</td><td bgcolor='.bg($row['lt01']).'>'.$row['lt01'].'</td></tr>';

}

但由于某种原因,输出出现乱码,函数输出出现在 HTML 源代码之前:


#11FFFF<tr><td>LT01</td><td bgcolor=>0</td></tr>

#22FFFF<tr><td>LT02</td><td bgcolor=>11</td></tr>

#44FFFF<tr><td>LT03</td><td bgcolor=>62</td></tr>

#44FFFF<tr><td>LT04</td><td bgcolor=>74</td></tr>

#99FFFF<tr><td>LT05</td><td bgcolor=>214</td></tr>

我一生都无法弄清楚这一点。


至尊宝的传说
浏览 68回答 1
1回答

大话西游666

这是因为您的bg函数将颜色代码回显到屏幕,而不是返回它以供其他 PHP 代码使用。return更改要使用的函数echo,它将按预期工作。function bg($latency) {     if ($latency == 0)     {return '#11FFFF';}      elseif ($latency < 30)   {return '#22FFFF';}      elseif ($latency < 60)   {return '#33FFFF';}      elseif ($latency < 90)   {return '#44FFFF';}      elseif ($latency < 120)  {return '#55FFFF';}      elseif ($latency < 150)  {return '#66FFFF';}      elseif ($latency < 180)  {return '#77FFFF';}      elseif ($latency < 210)  {return '#88FFFF';}      elseif ($latency < 240)  {return '#99FFFF';}      elseif ($latency < 270)  {return '#AAFFFF';}      elseif ($latency < 300)  {return '#BBFFFF';}      elseif ($latency >= 300) {return '#CCB27F';}  }echo当您想立即在屏幕上显示内容时使用。由于 PHP 解析器的工作方式,函数echo中的bg会在echo调用该函数的 之前运行,因为父级echo尚未完成。这就是return发挥作用的地方。它不是立即将内容打印到屏幕上,而是将其传递回任何调用的函数,以便以您希望的任何方式使用。
随时随地看视频慕课网APP

相关分类

Html5
我要回答