2017-04-07 7 views
0

私はグーグルのCSSのフレームワークmaterialize本当にいいです使用しています。フォントの素晴らしさとUnicodeの文字マテリアライズ

このフレームワークはulに動的に変更する独自の選択要素を持っています。

私はまたfontawesomeアイコンのCSSのフレームワークを使用していますし、私の考えは

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

を次のように選択して、アイコンを置くことですが、私は書く場合には、一方のアイコンは表示されません:&#xf07e;を代わりに<i>タグの正しく表示されます(実際の車のアイコンではありません)。

私の質問は:私はデータベースからアイコンを動的に埋めます。アイコンクラス(fa-carなど)からPHP/javascript経由でユニコード文字を取得する方法はありますか?私はここに私の独自の方法でこれを解決した

おかげで、よろしく

+0

関連記事はこちらです:http://stackoverflow.com/questions/31549631/programmatically-get-fontawesome-unicode-value-by-nameこれは、window.getComputedStyle関数を使用することを示唆しています –

答えて

0

は私の問題がある可能性があります人のための答えです:

まず第一に、私はこれを使って配列にbreakcssする方法を見つけ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");

・ホープ、このことができます!

関連する問題