dtuy84033
dtuy84033
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;

<?php
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:

    <?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>';
    }
    
    点赞 评论

相关推荐