Maison  >  Article  >  interface Web  >  Comment extraire des classes contenant « postclass » d'un fichier CSS avec PHP ?

Comment extraire des classes contenant « postclass » d'un fichier CSS avec PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-13 15:42:02445parcourir

How to Extract Classes Containing

Parse a CSS File with PHP: Selectively Extract Classes with "postclass"

Question:

You seek a method to parse a CSS file in PHP and extract each class name containing "postclass" in its name. The desired output is an array of these class names.

Solution:

Using Regular Expressions:

The following PHP function accomplishes the task using regular expressions:

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]);
        if (strpos($selector, 'postclass') !== false) {
            $result[] = $selector;
        }
    }
    return $result;
}

Usage:

$css = parse('css/'.$user['blog'].'.php');
print_r($css); // Output: ["#content.postclass-subcontent", "#content2.postclass-subcontent2"]

This function parses the CSS file and stores the matching class names in the $result array. It then returns the array.

Using Ajax and jQuery:

An alternative approach uses Ajax and jQuery to fetch the CSS file and extract the required classes:

$(function () {
    $.get('main.css', function (data) {
        data = data.match(/(#[a-z0-9]*?\ .?postclass.*?)\s?\{/g);
        if (data) {
            $.each(data, function (index, value) {
                value = value.substring(0, value.length - 2);
                $(value.split(' .')[0]).wrapInner('<div class="' + value.split('.')[1] + '" />');
            });
        }
    });
});

This code fetches the CSS file, extracts the class names containing "postclass," and wraps matching elements with a DIV based on the CSS class.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn