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

PHP 정규 표현식: HTML의 모든 이메일 링크를 일치시키는 방법

WBOY
WBOY원래의
2023-06-22 10:49:54894검색

웹페이지든 이메일이든 이메일 링크는 우리의 공통 요소 중 하나입니다. 웹 페이지에서 모든 이메일 링크를 한 번에 일치시키고 찾을 수 있습니다. 이 시점에서 PHP의 정규 표현식을 사용하면 이 목표를 편리하게 달성할 수 있습니다.

PHP는 HTML 양식 처리, 동적 웹 페이지 생성, 데이터베이스 상호 작용과 같은 작업에 사용할 수 있는 널리 사용되는 서버 스크립팅 언어입니다. PHP에는 문자열과 정규식을 쉽게 조작할 수 있는 내장 함수가 많이 있습니다. 그 중 preg_match_all() 함수는 텍스트에서 주어진 정규식과 일치하는 모든 하위 문자열을 일치시키는 데 사용됩니다.

다음으로 PHP의 preg_match_all() 함수를 사용하여 HTML의 모든 이메일 링크를 일치시키는 방법을 설명하겠습니다.

  1. 정규식 만들기

먼저 모든 이메일 링크와 일치하는 정규식을 만들어야 합니다. 여기서는 목표를 달성하기 위해 비교적 간단한 정규식을 사용하는 것을 고려할 수 있습니다. 예를 들어 다음 정규식을 사용하여 표준 이메일 링크 형식과 일치시킬 수 있습니다.

[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}

이 정규식은 문자나 숫자로 시작하고 그 뒤에 일부 선택적 문자(예: 점, 밑줄, 더하기 기호, 빼기 숫자)가 오는 것을 일치시킬 수 있습니다. 등), @ 기호와 이메일 도메인 이름이 이어집니다. 그 중 도메인 이름은 문자와 숫자로 구성되며 점으로 구분된 여러 도메인 이름 수준을 가질 수 있습니다. 마지막으로 이 정규식에서는 도메인의 최상위 도메인 이름이 두 개 이상의 대문자여야 합니다. 이 정규식을 PHP의 변수에 저장할 수 있습니다. 예를 들어:

$pattern = '/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}/';
  1. HTML 파일 콘텐츠 로드

다음으로 HTML 파일에서 콘텐츠를 읽고 이를 변수의 문자열에 저장해야 합니다. PHP에서는 file_get_contents() 함수를 사용하여 네트워크나 로컬 파일의 내용을 읽을 수 있습니다. 예를 들어 다음 코드를 사용하여 로컬 파일의 콘텐츠를 읽을 수 있습니다.

$html = file_get_contents('test.html');
  1. 모든 적합한 이메일 링크와 일치

이제 $pattern 변수에 정규식이 저장되어 있고 HTML 파일의 콘텐츠가 저장되어 있습니다. $html 변수에 있습니다. 다음으로, PHP의 preg_match_all() 함수를 사용하여 기준을 충족하는 모든 이메일 링크를 일치시킬 수 있습니다. 이 함수는 일치할 정규식, 일치할 텍스트, 일치 결과를 저장할 배열 등 세 가지 매개 변수를 전달해야 합니다.

여기서 다음 코드를 사용하여 목표를 달성할 수 있습니다.

$matches = array(); 
preg_match_all($pattern, $html, $matches);

이 코드에서는 정규식 일치 결과를 저장하기 위해 빈 배열 $matches를 만듭니다. 그런 다음 preg_match_all() 함수를 사용하여 모든 적합한 이메일 링크를 일치시키고 결과를 $matches 변수에 저장합니다.

  1. 일치하는 결과 출력

마지막으로 $matches 변수를 반복하여 일치하는 모든 이메일 링크를 출력할 수 있습니다. 예를 들어 다음 코드를 사용하여 일치 결과를 출력할 수 있습니다.

foreach ($matches[0] as $match) {
    echo $match . "<br/>";
}

이 코드에서는 $matches 변수의 첫 번째 요소(즉, 일치하는 모든 결과를 보유하는 배열)를 반복하고 각 항목을 추가합니다. match 결과가 화면에 출력됩니다.

전체 코드는 다음과 같습니다.

$pattern = '/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}/';
$html = file_get_contents('test.html');
$matches = array(); 
preg_match_all($pattern, $html, $matches);

foreach ($matches[0] as $match) {
    echo $match . "<br/>";
}

위 코드는 test.html이라는 파일의 모든 이메일 링크를 일치시키고 결과를 화면에 출력할 수 있습니다.

요약:

PHP에서 모든 이메일 링크를 일치시키려면 preg_match_all() 함수와 정규식을 사용할 수 있습니다. 먼저 표준 이메일 링크 형식과 일치하는 정규식을 만들어야 합니다. 그런 다음 file_get_contents() 함수를 사용하여 로컬 파일이나 네트워크 파일에서 HTML 콘텐츠를 읽고 해당 콘텐츠를 문자열 변수에 저장해야 합니다. 다음으로, preg_match_all() 함수를 사용하여 모든 적합한 이메일 링크를 일치시키고 결과를 배열에 저장할 수 있습니다. 마지막으로 배열의 각 일치 항목을 반복하여 화면에 인쇄할 수 있습니다.

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

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