如何在php for循环中生成动态字体真棒图标

How to generate dynamic font awesome icon in php for loop

我想在我的 php 代码中动态生成所有当前可用的超赞字体图标,以便用户可以 select 它。我是否需要对数组或数据库中的所有图标进行硬编码?还是有任何快捷的轻量级方法来做到这一点?例如;

<?php
foreach($fonticons as $icon){ // $fonticons is an abstract array, It have nothing
    echo '<i class="fa '.$icon.'"></i>';
}
?>

所以我应该得到;

<i class="fa fa-adjust"></i>
<i class="fa fa-anchor"></i>
<i class="fa fa-archive"></i>
<i class="fa fa-area-chart"></i>
<i class="fa fa-arrows"></i>
<i class="fa fa-hand"></i>....

可能吗?

我才知道,

every font awesome icon has a unique unicode.

例如 fa-adjust unicode 是 F042。你可以在控制台 css 中看到它为 。那么如果设置计数器开始 F042 并循环并以十六进制递增它呢?并在 html?

中显示

我可以复制粘贴这个 array 并开始使用它。但我希望它是动态的。

因为只有图标的名称不同,所以将所有图标的名称存储到某个数组中并像这样显示..

$icons = array('0' =>'adjust' ,'1'=>'anchor' );

foreach ($icons as $key => $res) {
    echo  '<i class="fa-'.$res.'"></i>';

}

因为你的数组看起来像这样:

$font_awesome_icons_array = array( ‘fa-glass’ => ‘\f000’, ‘fa-music’ => ‘\f001’, ‘fa-search’ => ‘\f002’, ....

您可以在 foreach 循环中执行此操作。

forech($font_awesome_icons_array as $key=>$value){
 echo '<i class="fa '.$key.'"></i>';
}

输出看起来像:

<i class="fa fa-glass"></i>
<i class="fa fa-music"></i>

是,问题已解决,无需创建数组。我有免费的插件 Font Awesome Icon Picker,它负责处理所有很棒的字体图标列表和 GUI,它提供了一个包含值的文本框,因此当表单提交时,我们在 post.[=11 中获取值=]

您可以使用 yaml 解析器并处理 font awesome git 存储库提供的 icons.yml 文件:

<?php
use Symfony\Component\Yaml\Yaml;

$yaml = Yaml::parse(file_get_contents('FONT_AWESOME_PATH/src/icons.yml'));
$icons = $yaml['icons'];

foreach($icons as $icon) {
    if(empty($icon['unicode'])) {
        continue;
    }
    echo '<i class="fa fa-'.$icon['id'].'"></i>';
}