PHP 정규 표현식 작동: CSS 스타일 일치

王林
풀어 주다: 2023-06-22 18:38:01
원래의
922명이 탐색했습니다.

웹 개발에서 CSS 스타일 시트는 HTML 요소의 스타일을 편리하게 지정할 수 있는 필수적인 부분입니다. 그러나 때때로 큰 CSS 파일에서 특정 스타일을 추출해야 하는 경우 PHP의 정규식 기능을 사용하여 일치시킬 수 있습니다. 이 기사에서는 실제로 PHP 정규 표현식을 사용하여 CSS 스타일을 일치시키는 방법을 소개합니다.

먼저 CSS 스타일의 기본 구조를 살펴보겠습니다.

selector {
    property: value;
    property: value;
}
로그인 후 복사

기본 CSS 스타일은 선택기와 속성-값 쌍 세트로 구성됩니다. 선택기는 스타일을 적용해야 하는 HTML 요소를 지정하며 속성-값 쌍은 특정 스타일 설정입니다. CSS에서 속성과 값은 콜론 ":"으로 구분되며, 각 속성-값 쌍은 세미콜론 ";"으로 구분됩니다.

다음으로, PHP 정규식을 사용하여 CSS 스타일을 일치시키는 방법을 보여주는 예를 사용합니다.

다음 스타일을 포함하는 CSS 파일(style.css)이 있다고 가정합니다.

h1 {
    font-size: 24px;
    font-family: Arial, sans-serif;
    color: #333;
}

p {
    font-size: 16px;
    font-family: Helvetica, Arial, sans-serif;
    line-height: 1.4;
    color: #666;
}

.btn {
    display: inline-block;
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    font-size: 16px;
    font-weight: bold;
    text-transform: uppercase;
    background-color: #f00;
    color: #fff;
}
로그인 후 복사

이제 이 파일에서 모든 ".btn" 카테고리 스타일을 추출해야 합니다. PHP의 file_get_contents 함수를 사용하여 전체 파일 내용을 읽은 다음 preg_match_all 함수를 사용하여 일치시킬 수 있습니다.

// 读取样式文件内容
$css = file_get_contents('style.css');

// 匹配样式
$pattern = '/.btns*{([^}]+)}/';
preg_match_all($pattern, $css, $matches);

// 输出匹配结果
print_r($matches[0]);
로그인 후 복사

위 코드에서 먼저 file_get_contents 함수를 사용하여 스타일 파일의 내용을 읽고 해당 내용을 $css 변수에 저장합니다. 그런 다음 preg_match_all 함수를 사용하여 스타일을 일치시키고 생성된 정규식은 ".btns*{(1+)}"입니다.

  • ".btn"은 ".btn" 카테고리의 선택기와 일치합니다. ;
  • "s*"는 0개 이상의 공백 문자와 일치합니다.
  • "{(1+)}"는 중괄호 안의 속성-값 쌍 세트와 일치합니다. 여기서 "1+"는 오른쪽 중괄호 "}"를 제외한 모든 문자를 일치시키고, "()" 괄호를 추가하여 일치하는 결과를 $matches 배열에 저장합니다.

마지막으로 일치하는 결과를 출력합니다.

위 코드를 실행하면 결과는 다음과 같습니다.

Array
(
    [0] => .btn {
    display: inline-block;
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    font-size: 16px;
    font-weight: bold;
    text-transform: uppercase;
    background-color: #f00;
    color: #fff;
}
)
로그인 후 복사

결과에서 볼 수 있듯이 정규식은 ".btn" 카테고리의 스타일과 성공적으로 일치하고 전체 스타일 블록을 반환했습니다.

물론 속성-값 쌍을 추가로 추출할 수도 있습니다.

// 读取样式文件内容
$css = file_get_contents('style.css');

// 匹配样式
$pattern = '/.btns*{([^}]+)}/';
preg_match_all($pattern, $css, $matches);

// 提取属性-值对
$pattern = '/([a-z-]+)s*:s*([^;]+);/';
foreach ($matches[1] as $block) {
    preg_match_all($pattern, $block, $props);
    print_r($props);
}
로그인 후 복사

위 코드에서는 또 다른 정규식 "([a-z-]+)s:s(2+);"을 사용하여 속성-값 쌍을 일치시킵니다.

위 코드를 실행하면 결과는 다음과 같습니다.

Array
(
    [0] => Array
        (
            [0] => display: inline-block;
            [1] => padding: 10px 20px;
            [2] => border: none;
            [3] => border-radius: 4px;
            [4] => font-size: 16px;
            [5] => font-weight: bold;
            [6] => text-transform: uppercase;
            [7] => background-color: #f00;
            [8] => color: #fff;
        )

    [1] => Array
        (
            [0] => display
            [1] => padding
            [2] => border
            [3] => border-radius
            [4] => font-size
            [5] => font-weight
            [6] => text-transform
            [7] => background-color
            [8] => color
        )

    [2] => Array
        (
            [0] => inline-block
            [1] => 10px 20px
            [2] => none
            [3] => 4px
            [4] => 16px
            [5] => bold
            [6] => uppercase
            [7] => #f00
            [8] => #fff
        )

)
로그인 후 복사

결과에서 볼 수 있듯이 ".btn" 카테고리 스타일로 속성-값 쌍을 성공적으로 추출하고 결과를 $에 저장했습니다. props 배열의 첫 번째 및 두 번째 요소에 있는 속성 이름과 속성 값.

위의 예를 통해 우리는 PHP 정규식을 사용하여 CSS 스타일을 일치시키는 방법을 배웠습니다. 정규식을 구성하는 방법, 스타일 일치 및 속성 추출을 수행하는 방법에 대한 기본 기술은 모두 마스터했다고 믿습니다. 실제 개발에서는 다양한 스타일 처리 요구 사항을 충족하기 위해 필요에 따라 더 복잡한 일치 및 추출 작업을 수행할 수도 있습니다.


}

위 내용은 PHP 정규 표현식 작동: CSS 스타일 일치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!