정규식을 사용하여 HTML 제목을 일치시키는 것은 PHP에서 일반적인 작업입니다. 웹 페이지의 제목은 일반적으로 페이지의 일반적인 내용을 표시하는 데 사용되어 사용자가 더 쉽게 이해하고 탐색할 수 있도록 합니다. 어떤 경우에는 후속 처리를 위해 HTML에서 모든 제목을 추출해야 합니다.
이 글에서는 PHP 정규식을 사용하여 HTML의 모든 제목을 빠르고 효과적으로 추출하는 방법을 소개합니다.
1. HTML 제목 분류
HTML 페이지에는 다음과 같은 태그를 사용하여 정의할 수 있는 다양한 유형의 제목이 있습니다.
2. PHP 정규식
정규식은 텍스트 문자열을 효과적으로 처리할 수 있는 강력한 검색 및 바꾸기 도구입니다. PHP에서는 preg_match(), preg_match_all(), preg_replace() 및 기타 함수를 사용하여 정규식 일치를 구현할 수 있습니다.
다음은 일반적으로 사용되는 정규식 구문입니다.
<!DOCTYPE html> <html> <head> <title>HTML 标题示例</title> </head> <body> <h1>这是一级标题</h1> <h2>这是二级标题</h2> <h3>这是三级标题</h3> <h4>这是四级标题</h4> <h5>这是五级标题</h5> <h6>这是六级标题</h6> </body> </html>
/<h[1-6]>(.*?)</h[1-6을 사용할 수 있습니다. ] >/
, 모든 제목을 추출하려면: $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() 함수와 정규식 < code>/< h[1-6]>(.*?)/, h1 ~ h6 제목과 일치합니다. 정규 표현식의
/<h[1-6]>(.*?)</h[1-6]>/
는 h1 ~ h6 태그 내부를 일치시키는 것을 의미합니다. 문자열. 여기서 (.*?)
는 탐욕스럽지 않은 패턴을 나타내며 가능한 적은 수의 문자와 일치합니다. /<h[1-6]>(.*?)</h[1-6]>/
,来提取其中所有的标题:
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() 函数和正则表达式 /<h[1-6]>(.*?)</h[1-6]>/
,来匹配其中的 h1 ~ h6 标题。
正则表达式中的 /<h[1-6]>(.*?)</h[1-6]>/
,表示匹配 h1 ~ h6 标签内部的字符串,其中 (.*?)
表示非贪婪模式,匹配尽量少的字符。
输出结果如下:
<!DOCTYPE html> <html> <head> <title>HTML 标题示例</title> </head> <body> <h1>这是一级标题</h1> <p>段落内容</p> <h2>这是二级标题</h2> <p>段落内容</p> </body> </html>
可以看到,我们成功匹配了 HTML 页面中所有的 h1 ~ h6 标题。
接下来,我们来看如何匹配 title 标签中的网页标题。假设我们有以下的 HTML 代码:
$html = file_get_contents('example.html'); preg_match('/<title>(.*?)</title>/', $html, $matches); echo $matches[1];
我们可以使用 preg_match() 函数和正则表达式 /<title>(.*?)</title>/
,来提取其中的网页标题:
HTML 标题示例
上述代码中,我们使用 file_get_contents() 函数读取 HTML 文件内容,然后使用 preg_match() 函数和正则表达式 /<title>(.*?)</title>/
,来匹配其中的 title 标签。
正则表达式中的 /<title>(.*?)</title>/
,表示匹配 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 页面的网页标题。
最后,我们来看如何匹配 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() 函数和正则表达式 /<metas+([^>]+s)*names*=s*(['"]?)keywords([^>]+s)*>/
,来提取其中的关键词元数据:
Array ( [0] => <meta name="keywords" content="HTML,标题,元数据"> )
上述代码中,我们使用 file_get_contents() 函数读取 HTML 文件内容,然后使用 preg_match_all() 函数和正则表达式 /<metas+([^>]+s)*names*=s*(['"]?)keywords([^>]+s)*>/
,来匹配其中的关键词元数据。
正则表达式中的 /<metas+([^>]+s)*names*=s*(['"]?)keywords([^>]+s)*>/
rrreee
보시다시피 HTML 페이지의 h1~h6 제목을 모두 성공적으로 일치시켰습니다.다음으로 제목 태그에서 웹 페이지 제목을 일치시키는 방법을 살펴보겠습니다. 다음과 같은 HTML 코드가 있다고 가정합니다:
rrreee🎜preg_match() 함수와 정규식/<title>을 사용하여 이를 추출할 수 있습니다. 웹 페이지 제목: 🎜rrreee🎜위 코드에서는 file_get_contents() 함수를 사용하여 HTML 파일 내용을 읽은 다음 preg_match() 함수와 정규식 <code>/<title>(.*?)을 사용합니다. </title> /
제목 태그와 일치시킵니다. 정규 표현식의 🎜🎜/<title>(.*?)</title>/
는 제목 태그 내부의 문자열과 일치한다는 의미입니다. 여기서 (.*?)는 탐욕스럽지 않은 모드를 나타내며 가능한 적은 수의 문자와 일치합니다. 🎜🎜출력 결과는 다음과 같습니다. 🎜rrreee🎜보시다시피 HTML 페이지의 웹 페이지 제목을 성공적으로 일치시켰습니다. 🎜<ol start="3">🎜메타태그🎜🎜🎜마지막으로 메타태그에서 메타데이터를 일치시키는 방법을 살펴보겠습니다. 다음 HTML 코드가 있다고 가정합니다: 🎜rrreee🎜preg_match_all() 함수와 정규식 <code>/<metas+([^>]+s)*names*=s*(['"]를 사용할 수 있습니다. ? )키워드 ([^>]+s)*>/
, 키워드 메타데이터를 추출하려면: 🎜rrreee🎜위 코드에서는 file_get_contents() 함수를 사용하여 HTML 파일 콘텐츠를 읽습니다. 그런 다음 preg_match_all() 함수와 정규 표현식 /<metas+([^>]+s)*names*=s*(['"]?)keywords ([^>]+s)를 사용하세요. * >/
, 키워드 메타데이터와 일치합니다. 🎜🎜/<metas+([^>]+s)*names*=s*(['"]?)키워드 ([^>]+s)*> 정규식 / code>는 이름 속성이 키워드인 메타 태그 내부의 문자열을 일치시키는 것을 의미합니다. 🎜🎜출력 결과는 다음과 같습니다. 🎜rrreee🎜HTML 페이지에서 키워드 메타데이터를 성공적으로 일치시킨 것을 확인할 수 있습니다. 🎜🎜4. 이 기사에서는 PHP 정규 표현식을 사용하여 HTML 페이지의 다양한 유형의 제목을 일치시키는 방법을 소개합니다. preg_match(), preg_match_all(), preg_replace() 및 기타 함수를 정규 표현식의 구문 및 규칙과 결합하여 HTML의 관련 정보를 제공합니다. 후속 처리 및 분석을 위해 코드를 쉽게 추출할 수 있습니다 🎜
위 내용은 PHP 정규 표현식: HTML의 모든 제목을 일치시키는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!