>백엔드 개발 >PHP 튜토리얼 >PHP 정규 표현식: HTML의 모든 드롭다운 메뉴를 일치시키는 방법

PHP 정규 표현식: HTML의 모든 드롭다운 메뉴를 일치시키는 방법

PHPz
PHPz원래의
2023-06-23 09:40:431301검색

웹 개발에서는 드롭다운 메뉴가 일반적인 제어 유형입니다. 어떤 경우에는 크롤러나 데이터 스크래핑의 경우처럼 HTML의 모든 드롭다운 메뉴 요소를 PHP 정규 표현식과 일치시켜야 합니다. 이 기사에서는 PHP 정규 표현식을 사용하여 HTML의 모든 드롭다운 메뉴를 일치시키는 방법을 보여줍니다.

  1. 먼저 드롭다운 메뉴 컨트롤의 HTML 구조를 이해해야 합니다. 드롭다운 메뉴는 일반적으로 선택 태그와 여러 개의 옵션 태그로 구성됩니다. 예를 들어, 간단한 드롭다운 메뉴의 HTML 구조는 다음과 같습니다:
<select>
  <option value="1">选项1</option>
  <option value="2">选项2</option>
  <option value="3">选项3</option>
</select>
  1. 다음으로, PHP의 정규식 함수 preg_match_all()을 사용하여 모든 드롭다운 메뉴 요소를 일치시킬 수 있습니다. 이 함수의 구문은 다음과 같습니다.
preg_match_all(pattern, subject, matches);

여기서 패턴은 정규식을 나타내고, 주제는 검색할 문자열이며, 일치 항목은 일치하는 결과의 배열입니다.

  1. 드롭다운 메뉴 컨트롤의 경우 다음 정규식을 사용하여 HTML 구조와 일치시킬 수 있습니다.
/<select[^>]*>(.*?)</select>/s

이 정규식은 옵션 태그를 포함하여 모든 선택 태그와 일치할 수 있습니다. 그 중 는 단어 경계를 나타내고, 1은 ">" 이외의 0개 이상의 문자를 나타내고, (.?)는 non-greedy 모드의 모든 문자를 나타내며, s는 "."을 포함하여 일치시키는 것을 나타냅니다. 를 포함한 모든 문자.

다음은 전체 샘플 코드입니다.

$html = '
         ';

preg_match_all('/<select[^>]*>(.*?)</select>/s', $html, $matches);

print_r($matches);

위 코드를 실행하고 다음 결과를 출력합니다.

Array
(
    [0] => Array
        (
            [0] => <select>
            <option value="1">选项1</option>
            <option value="2">选项2</option>
            <option value="3">选项3</option>
         </select>
            [1] => <select>
            <option value="4">选项4</option>
            <option value="5">选项5</option>
            <option value="6">选项6</option>
         </select>
        )

    [1] => Array
        (
            [0] => 
            <option value="1">选项1</option>
            <option value="2">选项2</option>
            <option value="3">选项3</option>
         )
            [1] => 
            <option value="4">选项4</option>
            <option value="5">选项5</option>
            <option value="6">选项6</option>
         )
        )

)

결과 배열에는 두 드롭다운 메뉴의 HTML 코드에 해당하는 두 요소가 포함되어 있습니다. 페이지에 더 많은 드롭다운 메뉴가 있는 경우 해당 메뉴도 일치되어 결과 배열에 저장됩니다.

  1. 실제 응용 프로그램에서는 드롭다운 메뉴에 있는 각 옵션의 값과 텍스트를 추출하기 위해 정규식을 사용해야 할 수도 있습니다. 예를 들어, 다음 코드는 결과 배열에서 모든 옵션을 추출할 수 있습니다.
foreach ($matches[1] as $select) {
    preg_match_all('/<option value="(.*?)">(.*?)</option>/s', $select, $options);
    print_r($options);
}

출력은 다음과 같습니다.

Array
(
    [0] => Array
        (
            [0] => <option value="1">选项1</option>
            [1] => <option value="2">选项2</option>
            [2] => <option value="3">选项3</option>
        )

    [1] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [2] => Array
        (
            [0] => 选项1
            [1] => 选项2
            [2] => 选项3
        )

)

위 정규 표현식의 "(.*?)"는 옵션은 각각 . 옵션의 스타일이나 ID와 같은 다른 속성을 추출해야 하는 경우 정규식에 해당 패턴을 추가할 수도 있습니다.


  1. >

위 내용은 PHP 정규 표현식: HTML의 모든 드롭다운 메뉴를 일치시키는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.