2016-03-24 07:16
浏览 119

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

I want to generate all current available font awesome icons dynamically in my php code, so user can select it. Do I need to hardcode all icons in an array or database? or is there any shortcut light weight way to do this? for example;

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

so I should get;

<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>....

is it possible?

I came to know that,

every font awesome icon has a unique unicode.

for example fa-adjust unicode is F042. you can see it in console css as . So what if set counter starts to F042 and loop and increment it in hex. and display this in html?

I can just copy paste this array and start using it. But I want it dynamic.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • dongtuo5611
    dongtuo5611 2016-04-01 07:36

    Yes, Problem solved, No need to create array. I've got free plugin Font Awesome Icon Picker which takes care of all font awesome icons list and GUI and it gives a textbox with value in it so when form submits, we gets the value in post.

    点赞 评论
  • duanjing4667
    duanjing4667 2016-03-24 07:32

    Since only the name of the icon is different so stored all the name of the icons into some array and show like this ..

    $icons = array('0' =>'adjust' ,'1'=>'anchor' );
    foreach ($icons as $key => $res) {
        echo  '<i class="fa-'.$res.'"></i>';
    点赞 评论
  • dsz7121
    dsz7121 2016-03-24 07:56

    Since your array looks something like this:

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

    You can do this in a foreach loop.

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

    The out put would look like:

    <i class="fa fa-glass"></i>
    <i class="fa fa-music"></i>
    点赞 评论
  • donglie9067
    donglie9067 2017-06-07 21:54

    You can use a yaml parser and process the icons.yml file provided by font awesome git repository:

    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'])) {
        echo '<i class="fa fa-'.$icon['id'].'"></i>';
    点赞 评论