Я хочу генерировать все текущие доступные шрифты потрясающие иконки динамически в моем PHP-коде, чтобы пользователь мог выбрать его. Нужно ли жестко кодировать все значки в массиве или базе данных? или есть какой-нибудь быстрый способ сделать это? например;
<?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>....
Является ли это возможным?
Я узнал это,
Каждый значок шрифта имеет уникальный Unicode.
например fa-adjust
Юникод это F042
, Вы можете увидеть это в консоли CSS как . Так что, если установить счетчик начинает F042
и зациклить и увеличить его в шестнадцатеричном виде. и отобразить это в HTML?
Я могу просто скопировать вставить это массив и начать использовать его. Но я хочу, чтобы это динамично.
Так как отличается только имя иконки, сохраните все имена иконок в некотором массиве и покажите так:
$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 который заботится обо всем списке значков шрифтов и графическом интерфейсе, и дает текстовое поле со значением в нем, поэтому, когда форма отправляется, мы получаем значение в post.
Вы можете использовать анализатор yaml и обработать файл icons.yml, предоставляемый репозиторием шрифтов awesome git:
<?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>';
}