오디오 산업이 발전함에 따라 점점 더 많은 웹사이트와 애플리케이션에서 오디오 링크의 자동 식별 및 삽입을 지원해야 합니다. 개발자의 구현 과정에서는 정규식을 사용하여 오디오 링크를 일치시키는 것이 일반적인 방법입니다. 이 기사에서는 PHP 정규식에서 오디오 링크를 일치시키고 주요 정보를 추출하는 방법을 소개합니다.
오디오 링크를 일치시키기 전에 오디오 링크 구조를 이해해야 합니다. 일반적으로 오디오 링크에는 다음 부분이 포함됩니다.
예를 들어 일반적인 오디오 링크는 다음과 같습니다.
http://www.example.com:8080/music/album01/song01.mp3
오디오 링크의 구조를 이해하면 정규식을 사용하여 오디오 링크를 일치시킬 수 있습니다. HTML 페이지에서 모든 오디오 링크를 추출한다고 가정하면 다음 정규식을 작성할 수 있습니다.
$pattern = '/<a[^>]+href=["|']?([^"'s]+.mp3)["|']?[^>]*>(.*)</a>/iU';
이 정규식은 먼저 href 속성 값에서 .mp3으로 끝나는 문자열과 일치합니다. 여기에서는 다중 링크의 일부 일치를 피하기 위해 비탐욕 모드(U)가 사용되었습니다.
정규식을 사용하여 오디오 링크를 일치시킨 후 프로토콜, 도메인 이름, 경로, 파일 이름 등과 같은 주요 정보도 추출해야 합니다. 이 단계를 수행하려면 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() 함수를 사용해야 합니다.
경우에 따라 링크의 경로와 파일 이름이 URL로 인코딩될 수 있습니다. PHP에서 urldecode() 함수를 사용하여 디코딩할 수 있습니다.
예를 들어 다음 코드를 사용하여 링크의 경로와 파일 이름을 디코딩할 수 있습니다.
$path = urldecode($path); $filename = urldecode($filename);
마지막으로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!