Font Awesome和Unicode Characters Materialise

时间:2017-04-07 05:03:28

标签: javascript php unicode font-awesome materialize

我正在使用google的css框架实现,这非常好。

此框架有自己的select元素,动态更改为ul。

我也在使用fontawesome图标css框架,我的想法是在select中添加一个图标,如下所示

<select name="note[type]">
   <option value="1"><i class="fa fa-car"></i>Car</option>
</select>

但是如果我写的话,它不会显示图标:&#xf07e;而不是正确显示的<i>标签(请注意,这不是汽车图标的实际代码)。

所以我的问题是:我从数据库中动态填充图标,有没有一种方法可以从图标类如fa-car通过php / javascript获得unicode字符?

谢谢和问候

1 个答案:

答案 0 :(得分:0)

我已经以自己的方式解决了这个问题,对于那些可能遇到我问题的人来说,答案是:

首先在StackOverflow上我找到了如何使用这个函数断开数组:

private function BreakCSS($css)
{

    $results = array();

    preg_match_all('/(.+?)\s?\{\s?(.+?)\s?\}/', $css, $matches);
    foreach($matches[0] AS $i=>$original)
        foreach(explode(';', $matches[2][$i]) AS $attr)
            if (strlen(trim($attr)) > 0) // for missing semicolon on last element, which is legal
            {
                list($name, $value) = explode(':', $attr);
                $results[$matches[1][$i]][trim($name)] = trim($value);
            }
    return $results;
}

我使用file_get_contents加载了所有fontawesome代码并将其传递给BreakCss。

全部如下:

public function GetIcon($icon)
{
    $icon = $icon.":before";
    $fa = file_get_contents(A_CSS.DIRECTORY_SEPARATOR."font-awesome.min.css");
    $arr = $this->BreakCSS($fa);
    $char = "";
    foreach($arr as $selector=>$style)
    {
        if (strpos($selector, $icon))
        {
            $char = str_replace("\\", "&#x", str_replace("\"", "", $style['content'])).";";
        }
    }
    return $char;
}

用法GetIcon("fa-car");

希望这有帮助!