>  기사  >  백엔드 개발  >  PHP 정규 표현식: HTML의 모든 제목을 일치시키는 방법

PHP 정규 표현식: HTML의 모든 제목을 일치시키는 방법

WBOY
WBOY원래의
2023-06-22 22:14:521151검색

정규식을 사용하여 HTML 제목을 일치시키는 것은 PHP에서 일반적인 작업입니다. 웹 페이지의 제목은 일반적으로 페이지의 일반적인 내용을 표시하는 데 사용되어 사용자가 더 쉽게 이해하고 탐색할 수 있도록 합니다. 어떤 경우에는 후속 처리를 위해 HTML에서 모든 제목을 추출해야 합니다.

이 글에서는 PHP 정규식을 사용하여 HTML의 모든 제목을 빠르고 효과적으로 추출하는 방법을 소개합니다.

1. HTML 제목 분류

HTML 페이지에는 다음과 같은 태그를 사용하여 정의할 수 있는 다양한 유형의 제목이 있습니다.

  1. h1 ~ h6 태그: 제목의 수준을 나타내는 데 사용됩니다.
  2. title 태그: head 태그에 있는 웹페이지의 제목을 정의하는 데 사용됩니다.
  3. meta 태그: 웹페이지의 메타데이터를 정의하는 데 사용되며 검색 엔진 최적화에 자주 사용됩니다.

2. PHP 정규식

정규식은 텍스트 문자열을 효과적으로 처리할 수 있는 강력한 검색 및 바꾸기 도구입니다. PHP에서는 preg_match(), preg_match_all(), preg_replace() 및 기타 함수를 사용하여 정규식 일치를 구현할 수 있습니다.

다음은 일반적으로 사용되는 정규식 구문입니다.

  1. d: 숫자 문자 일치,
  2. w: 영숫자 문자, 밑줄 일치,
  3. s: 공백 문자 일치,
  4. ^: 문자열의 시작 부분 일치;
  5. $: 문자열의 끝과 일치합니다.
  6. *: 이전 문자 중 하나 이상과 일치합니다.
  7. ?: 0개 또는 1개의 이전 문자와 일치합니다. 문자 집합
  8. (): 후속 작업을 위한 표현식을 그룹화합니다.
  9. 3. HTML에서 모든 제목 일치
  10. 아래에서는 PHP 정규식을 사용하여 HTML 페이지에서 다양한 유형의 제목을 일치시키는 방법을 소개합니다.

h1 ~ h6 태그

    먼저 h1 ~ h6 태그에서 제목을 일치시키는 방법을 살펴보겠습니다. 다음과 같은 HTML 코드가 있다고 가정해 보겠습니다.
  1. <!DOCTYPE html>
    <html>
    <head>
        <title>HTML 标题示例</title>
    </head>
    <body>
        <h1>这是一级标题</h1>
        <h2>这是二级标题</h2>
        <h3>这是三级标题</h3>
        <h4>这是四级标题</h4>
        <h5>这是五级标题</h5>
        <h6>这是六级标题</h6>
    </body>
    </html>
  2. preg_match_all() 함수와 정규식 /a89f0e6cefb655e6af53ab7f92340e0c(.*?)4022bee5e723b26dbc2d387ea6229c00/, 모든 제목을 추출하려면:
$html = file_get_contents('example.html');
preg_match_all('/<h[1-6]>(.*?)</h[1-6]>/', $html, $matches);
print_r($matches[0]);

위 코드에서는 file_get_contents() 함수를 사용하여 HTML 파일 내용을 읽은 다음 preg_match_all() 함수와 정규식 /d23154679ab2aa0540ff7988d340eb34(.*?)8d709ee326a72fb29c36fdf04fb62c17/, h1 ~ h6 제목과 일치합니다. 정규 표현식의

/a89f0e6cefb655e6af53ab7f92340e0c(.*?)8d709ee326a72fb29c36fdf04fb62c17/는 h1 ~ h6 태그 내부를 일치시키는 것을 의미합니다. 문자열. 여기서 (.*?)는 탐욕스럽지 않은 패턴을 나타내며 가능한 적은 수의 문자와 일치합니다. /a89f0e6cefb655e6af53ab7f92340e0c(.*?)8d709ee326a72fb29c36fdf04fb62c17/,来提取其中所有的标题:

Array
(
    [0] => <h1>这是一级标题</h1>
    [1] => <h2>这是二级标题</h2>
    [2] => <h3>这是三级标题</h3>
    [3] => <h4>这是四级标题</h4>
    [4] => <h5>这是五级标题</h5>
    [5] => <h6>这是六级标题</h6>
)

上述代码中,我们使用 file_get_contents() 函数读取 HTML 文件内容,然后使用 preg_match_all() 函数和正则表达式 /a89f0e6cefb655e6af53ab7f92340e0c(.*?)8d709ee326a72fb29c36fdf04fb62c17/,来匹配其中的 h1 ~ h6 标题。

正则表达式中的 /a89f0e6cefb655e6af53ab7f92340e0c(.*?)8d709ee326a72fb29c36fdf04fb62c17/,表示匹配 h1 ~ h6 标签内部的字符串,其中 (.*?) 表示非贪婪模式,匹配尽量少的字符。

输出结果如下:

<!DOCTYPE html>
<html>
<head>
    <title>HTML 标题示例</title>
</head>
<body>
    <h1>这是一级标题</h1>
    <p>段落内容</p>
    <h2>这是二级标题</h2>
    <p>段落内容</p>
</body>
</html>

可以看到,我们成功匹配了 HTML 页面中所有的 h1 ~ h6 标题。

  1. title 标签

接下来,我们来看如何匹配 title 标签中的网页标题。假设我们有以下的 HTML 代码:

$html = file_get_contents('example.html');
preg_match('/<title>(.*?)</title>/', $html, $matches);
echo $matches[1];

我们可以使用 preg_match() 函数和正则表达式 /b2386ffb911b14667cb8f0f91ea547a7(.*?)6e916e0f7d1e588d4f442bf645aedb2f/,来提取其中的网页标题:

HTML 标题示例

上述代码中,我们使用 file_get_contents() 函数读取 HTML 文件内容,然后使用 preg_match() 函数和正则表达式 /b2386ffb911b14667cb8f0f91ea547a7(.*?)6e916e0f7d1e588d4f442bf645aedb2f/,来匹配其中的 title 标签。

正则表达式中的 /b2386ffb911b14667cb8f0f91ea547a7(.*?)6e916e0f7d1e588d4f442bf645aedb2f/,表示匹配 title 标签内部的字符串,其中 (.*?) 表示非贪婪模式,匹配尽量少的字符。

输出结果如下:

<!DOCTYPE html>
<html>
<head>
    <title>HTML 标题示例</title>
    <meta charset="utf-8">
    <meta name="keywords" content="HTML,标题,元数据">
    <meta name="description" content="HTML 标题示例 - 一个简单的 HTML 页面,包含多种类型的标题和元数据。">
</head>
<body>
    <h1>这是一级标题</h1>
    <p>段落内容</p>
    <h2>这是二级标题</h2>
    <p>段落内容</p>
</body>
</html>

可以看到,我们成功匹配了 HTML 页面的网页标题。

  1. meta 标签

最后,我们来看如何匹配 meta 标签中的元数据。假设我们有以下的 HTML 代码:

$html = file_get_contents('example.html');
preg_match_all('/<metas+([^>]+s)*names*=s*(['"]?)keywords([^>]+s)*>/', $html, $matches);
print_r($matches[0]);

我们可以使用 preg_match_all() 函数和正则表达式 /009e73b024cea1a72b88379c80490b1c]+s)*names*=s*(['"]?)keywords([^>]+s)*>/,来提取其中的关键词元数据:

Array
(
    [0] => <meta name="keywords" content="HTML,标题,元数据">
)

上述代码中,我们使用 file_get_contents() 函数读取 HTML 文件内容,然后使用 preg_match_all() 函数和正则表达式 /009e73b024cea1a72b88379c80490b1c]+s)*names*=s*(['"]?)keywords([^>]+s)*>/,来匹配其中的关键词元数据。

正则表达式中的 /009e73b024cea1a72b88379c80490b1c]+s)*names*=s*(['"]?)keywords([^>]+s)*>/

출력 결과는 다음과 같습니다.

rrreee

보시다시피 HTML 페이지의 h1~h6 제목을 모두 성공적으로 일치시켰습니다.

    제목 태그

    다음으로 제목 태그에서 웹 페이지 제목을 일치시키는 방법을 살펴보겠습니다. 다음과 같은 HTML 코드가 있다고 가정합니다:

    rrreee🎜preg_match() 함수와 정규식 /<title>을 사용하여 이를 추출할 수 있습니다. 웹 페이지 제목: 🎜rrreee🎜위 코드에서는 file_get_contents() 함수를 사용하여 HTML 파일 내용을 읽은 다음 preg_match() 함수와 정규식 <code>/b2386ffb911b14667cb8f0f91ea547a7(.*?)을 사용합니다. 6e916e0f7d1e588d4f442bf645aedb2f / 제목 태그와 일치시킵니다. 정규 표현식의 🎜🎜/b2386ffb911b14667cb8f0f91ea547a7(.*?)6e916e0f7d1e588d4f442bf645aedb2f/는 제목 태그 내부의 문자열과 일치한다는 의미입니다. 여기서 (.*?)는 탐욕스럽지 않은 모드를 나타내며 가능한 적은 수의 문자와 일치합니다. 🎜🎜출력 결과는 다음과 같습니다. 🎜rrreee🎜보시다시피 HTML 페이지의 웹 페이지 제목을 성공적으로 일치시켰습니다. 🎜<ol start="3">🎜메타태그🎜🎜🎜마지막으로 메타태그에서 메타데이터를 일치시키는 방법을 살펴보겠습니다. 다음 HTML 코드가 있다고 가정합니다: 🎜rrreee🎜preg_match_all() 함수와 정규식 <code>/009e73b024cea1a72b88379c80490b1c]+s)*names*=s*(['"]를 사용할 수 있습니다. ? )키워드 ([^>]+s)*>/, 키워드 메타데이터를 추출하려면: 🎜rrreee🎜위 코드에서는 file_get_contents() 함수를 사용하여 HTML 파일 콘텐츠를 읽습니다. 그런 다음 preg_match_all() 함수와 정규 표현식 /009e73b024cea1a72b88379c80490b1c]+s)*names*=s*(['"]?)keywords ([^>]+s)를 사용하세요. * >/, 키워드 메타데이터와 일치합니다. 🎜🎜/009e73b024cea1a72b88379c80490b1c]+s)*names*=s*(['"]?)키워드 ([^>]+s)*> 정규식 / code>는 이름 속성이 키워드인 메타 태그 내부의 문자열을 일치시키는 것을 의미합니다. 🎜🎜출력 결과는 다음과 같습니다. 🎜rrreee🎜HTML 페이지에서 키워드 메타데이터를 성공적으로 일치시킨 것을 확인할 수 있습니다. 🎜🎜4. 이 기사에서는 PHP 정규 표현식을 사용하여 HTML 페이지의 다양한 유형의 제목을 일치시키는 방법을 소개합니다. preg_match(), preg_match_all(), preg_replace() 및 기타 함수를 정규 표현식의 구문 및 규칙과 결합하여 HTML의 관련 정보를 제공합니다. 후속 처리 및 분석을 위해 코드를 쉽게 추출할 수 있습니다 🎜

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

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