>백엔드 개발 >PHP 튜토리얼 >PHP 정규 표현식 작동: 오디오 링크 일치

PHP 정규 표현식 작동: 오디오 링크 일치

WBOY
WBOY원래의
2023-06-22 21:47:081219검색

오디오 산업이 발전함에 따라 점점 더 많은 웹사이트와 애플리케이션에서 오디오 링크의 자동 식별 및 삽입을 지원해야 합니다. 개발자의 구현 과정에서는 정규식을 사용하여 오디오 링크를 일치시키는 것이 일반적인 방법입니다. 이 기사에서는 PHP 정규식에서 오디오 링크를 일치시키고 주요 정보를 추출하는 방법을 소개합니다.

  1. 오디오 링크 구조 분석

오디오 링크를 일치시키기 전에 오디오 링크 구조를 이해해야 합니다. 일반적으로 오디오 링크에는 다음 부분이 포함됩니다.

  • 프로토콜: http, https, ftp 등.
  • 도메인 이름 또는 IP 주소: 오디오 리소스가 위치한 서버의 도메인 이름 또는 IP 주소를 나타냅니다.
  • 포트 번호: 오디오 리소스에 액세스하는 데 사용되는 포트 번호를 나타냅니다.
  • Path: 서버의 오디오 리소스 경로를 나타냅니다.
  • 파일 이름: 오디오 파일의 이름을 나타냅니다.
  • 확장자: 오디오 파일의 확장자를 말하며, 일반적인 확장자에는 mp3, wav, ogg 등이 포함됩니다.

예를 들어 일반적인 오디오 링크는 다음과 같습니다.

http://www.example.com:8080/music/album01/song01.mp3
  1. 정규식을 사용하여 오디오 링크 일치

오디오 링크의 구조를 이해하면 정규식을 사용하여 오디오 링크를 일치시킬 수 있습니다. HTML 페이지에서 모든 오디오 링크를 추출한다고 가정하면 다음 정규식을 작성할 수 있습니다.

$pattern = '/<a[^>]+href=["|']?([^"'s]+.mp3)["|']?[^>]*>(.*)</a>/iU';

이 정규식은 먼저 href 속성 값에서 .mp3으로 끝나는 문자열과 일치합니다. 여기에서는 다중 링크의 일부 일치를 피하기 위해 비탐욕 모드(U)가 사용되었습니다.

  1. 오디오 링크의 주요 정보 추출

정규식을 사용하여 오디오 링크를 일치시킨 후 프로토콜, 도메인 이름, 경로, 파일 이름 등과 같은 주요 정보도 추출해야 합니다. 이 단계를 수행하려면 PHP의 내장 함수를 사용할 수 있습니다.

예를 들어,parse_url() 함수를 사용하여 링크의 프로토콜, 도메인 이름, 경로 및 파일 이름을 추출할 수 있습니다.

$url = 'http://www.example.com:8080/music/album01/song01.mp3';
$parse = parse_url($url);
$scheme = $parse['scheme']; // 返回"http"
$host = $parse['host']; // 返回"www.example.com"
$port = $parse['port']; // 返回"8080"
$path = $parse['path']; // 返回"/music/album01/song01.mp3"
$filename = basename($path); // 返回"song01.mp3"

parse_url() 함수는 파일 이름을 직접 추출할 수 없다는 점에 유의해야 합니다. 추출하려면 basename() 함수를 사용해야 합니다.

  1. URI 인코딩 디코딩

경우에 따라 링크의 경로와 파일 이름이 URL로 인코딩될 수 있습니다. PHP에서 urldecode() 함수를 사용하여 디코딩할 수 있습니다.

예를 들어 다음 코드를 사용하여 링크의 경로와 파일 이름을 디코딩할 수 있습니다.

$path = urldecode($path);
$filename = urldecode($filename);
  1. 전체 코드 예제

마지막으로 HTML 페이지에서 추출하고 모든 오디오 링크의 핵심 정보:

$html = '......';
$pattern = '/<a[^>]+href=["|']?([^"'s]+.mp3)["|']?[^>]*>(.*)</a>/iU';
preg_match_all($pattern, $html, $matches);
$urls = $matches[1];
foreach ($urls as $url) {
    $parse = parse_url($url);
    $scheme = $parse['scheme'];
    $host = $parse['host'];
    $port = $parse['port'];
    $path = $parse['path'];
    $filename = basename($path);
    $path = urldecode($path);
    $filename = urldecode($filename);
    echo "协议:$scheme
"; echo "域名:$host
"; echo "端口号:$port
"; echo "路径:$path
"; echo "文件名:$filename

"; }

위의 코드 예에서 볼 수 있듯이 정규식을 사용하여 오디오 링크를 일치시키고 핵심 정보를 추출하는 것은 어렵지 않습니다. 개발자는 정규식과 PHP 내장 함수만 결합하면 됩니다. 이 기능을 달성하기 위해.

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

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