2017-07-14 8 views
0

CSSから多次元配列を作成する助けが必要です。たとえば:php - CSSを多次元配列に分割する

$css = "body { font-weight:40px; color:#444; } #wrapper { width: 500px; }"; 

私はSplit CSS inside the {} to array of key/value pairsから、次のコードを持っていますが、これはセレクタが、それはこの種のに来るとき、私は専門家ではないよ

function BreakCSS($CSS) { 
$results = array(); 

foreach(explode(';', $CSS) AS $attr) 
    if (strlen(trim($attr)) > 0) // for missing semicolon on last element, which is legal 
    { 
     list($name, $value) = explode(':', $attr); 
     $results[trim($name)] = trim($value); 
    } 
return $results; 

}

をaswell行いません。コーディングの理想的には私が希望:!

array(
    'body' => array (
     array(
      'font-weight', 
      '40', 
      'px' 
     ), 
     array(
      'color', 
      '#444', 
      '' 
     ) 
    ) 
) 

をさらに、重要なのは最後に追加されているかどうかをチェックする方法はありますか?

ありがとうございます!

+0

次に、あなたが言っている投稿と同じことを尋ねる必要があります。なぜなら、すでに構築されたパーサを使用しないのですか? –

+0

あなたのコメントのために@MagnusErikssonに感謝します。パーサーがCSSコードを整理するのを見ることができますが、私が見ることができないことは、必要な出力ごとに多次元配列を作成できるところです。現在見ているのはhttps://github.com/sabberworm/PHP-CSS-Parser – deanhodges

+0

です。これはパーサーの1つです。私がグーグルで "phpでCSSを解析する"と私は複数のライブラリを見つけました。 –

答えて

0

UPDATE!私は誰かが元々上に追加したコードを修正した解決策を見つけました。 Break a CSS file into an array with PHP

これは100%完璧ではありませんが(パーサーの使用をお勧めします)、これは私のクイックテストまたは概念証明のためには今すぐ利用できます。