使用PHP echo时,Font Awesome图标无法呈现?

时间:2015-06-18 23:32:09

标签: php html mysql font-awesome

我正在尝试设置一个菜单列表,该列表从mysql查询中提取数组并使用foreach来回显每个列表元素。

我正在使用 font awesome ,出于某种原因,当我将<i>元素放在回显线内时,图标不会呈现。同一页面上的其他图标渲染得很好。

我已经确认所有CSS文件都已正确包含在内。

以下是代码块,您可以看到我使用str_replace()生成一些图标名称,但回显中还有其他图标是静态的。

我把头发拉到这里。

$result = mysqli_query($con,"SELECT * FROM outageupdates ORDER BY timestamp");

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

   $time = strtotime($row[timestamp]);
   $time = date("H:i", $time);
   $icon = str_replace("Internal", "fa-user", $row[type]);
   $icon = str_replace("External", "fa-user-times", $row[type]);
   echo '<li><a href="outageupdates.php"><i class="fa ' . $icon . '"></i>' . $row[agentname] . ' - ' . $row[type] . '<small class="pull-right"><i class="fa fa-clock"></i>' . $time . '</small></a></li>';
}

1 个答案:

答案 0 :(得分:1)

如果$icon包含“外部”以外的任何内容,则您正在重新为$row['type']分配无效的图标类字符串。

$row['type'](并且不要忘记为数组键使用引号),包含“Internal”。之后

$icon = str_replace("Internal", "fa-user", $row['type']);

$icon“fa-user”。然后,在

之后
$icon = str_replace("External", "fa-user-times", $row['type']);

$icon“内部”

假设$row['type']可能只是“内部”“外部”,我会使用类似的内容

$icon = $row['type'] == 'Internal' ? 'fa-user' : 'fa-user-times';

或者,如果您有其他类型

,则可以使用switch语句
switch($row['type']) {
    case 'Internal':
        $icon = 'fa-user';
        break;
    case 'External':
        $icon = 'fa-user-times';
        break;
    case 'Admin':
        $icon = 'fa-cogs';
        break;
    default:
        $icon = 'fa-question-circle';
}