PHP で特定の CSS クラスを抽出するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-15 09:24:02
オリジナル
731 人が閲覧しました

How to Extract Specific CSS Classes with PHP?

選択的なクラス抽出のための PHP による CSS の解析

この記事では、CSS ファイルを解析して特定のクラスを抽出するという課題に取り組むことを目的としています。事前定義された文字列を含むクラス名。私たちは、このタスクを効果的に達成する PHP のソリューションを探しています。

問題ステートメント:

CSS ファイルを解析し、「postclass」を含むすべてのクラス名を特定したいと考えています。彼らの名前。必要な出力は、以下に示すように、これらのクラス名の配列です。

arrayentry1:
#content.postclass-subcontent
arrayentry2:
#content2.postclass-subcontent2
ログイン後にコピー

正規表現のアプローチ:

CSS を解析する一般的なアプローチの 1 つは、正規表現を利用することです。 。ただし、この特定の要件では、正規表現が最適なオプションではない可能性があります。提供されているサンプル CSS には複雑な構造を持つ複数のセレクターが含まれているため、正規表現だけを使用して目的のクラス名を正確に抽出するのは困難です。

PHP ベースのソリューション:

代わり正規表現のみに依存するのではなく、解析プロセスを簡素化する PHP ベースのソリューションを紹介します。

function parse($file){
    $css = file_get_contents($file);
    preg_match_all( '/(?ims)([a-z0-9\s\.\:#_\-@,]+)\{([^\}]*)\}/', $css, $arr);
    $result = array();
    foreach ($arr[0] as $i => $x){
        $selector = trim($arr[1][$i]);
        $rules = explode(';', trim($arr[2][$i]));
        $rules_arr = array();
        foreach ($rules as $strRule){
            if (!empty($strRule)){
                $rule = explode(":", $strRule);
                $rules_arr[trim($rule[0])] = trim($rule[1]);
            }
        }

        $selectors = explode(',', trim($selector));
        foreach ($selectors as $strSel){
            $result[$strSel] = $rules_arr;
        }
    }
    return $result;
}
ログイン後にコピー

使用法:

このソリューションを利用するには、 CSS ファイルの内容を変数に取り込みます。次に、ファイルの内容を引数として parse() 関数を呼び出します。この関数は、必要なクラス名をキーとして、そのルールを値として含む配列を返します。例:

$css = parse('css/'.$user['blog'].'.php');
$css['#selector']['color'];
ログイン後にコピー

このアプローチにより、CSS ファイルのより動的で的を絞った解析が可能になり、さまざまな解析要件に柔軟に対応できます。

以上がPHP で特定の CSS クラスを抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート