PHP 일치 소스 교체

WBOY
풀어 주다: 2023-05-07 12:51:07
원래의
687명이 탐색했습니다.

웹사이트 개발을 하다 보면 페이지 코드의 특정 부분을 일괄적으로 교체해야 하는 상황이 자주 발생합니다. 예를 들어 페이지의 모든 이미지 주소(src)를 새 주소로 교체해야 하는 경우가 있습니다. 이때 PHP가 제공하는 강력한 정규식을 사용하여 이를 달성할 수 있습니다.

먼저 수정해야 할 HTML 코드를 가져와야 합니다. file_get_contents() 함수를 사용하여 파일에서 읽거나 URL에서 HTML 코드를 가져올 수 있습니다.

$html = file_get_contents('http://www.example.com/page.html');
로그인 후 복사

그런 다음 페이지의 모든 이미지 주소와 일치하는 정규식을 구성해야 합니다. HTML 페이지에서 모든 이미지 태그의 src 속성은 src="xxxxxx" 형식으로 나타납니다. 따라서 다음과 같이 모든 src 속성과 일치하는 정규식을 구성할 수 있습니다.

$pattern = '/src=[\'"]([^\'"]+)[\'"]/i';
로그인 후 복사

이 정규식에서 대괄호 []는 작은따옴표, 큰따옴표 및 이외의 문자를 포함하는 문자 집합을 나타내는 데 사용됩니다. 작은따옴표 - 큰따옴표와 큰따옴표 이외의 문자입니다. 더하기 기호 +는 이전 문자 집합을 한 번 이상 일치시키는 데 사용됩니다. src 속성의 값을 추출하는 데 사용되는 그룹화를 나타내려면 괄호()를 사용하십시오. /i 플래그는 대소문자를 구분하지 않음을 나타내는 데 사용됩니다.

다음으로 preg_replace_callback() 함수를 사용하여 교체 작업을 구현해야 합니다. 이 함수는 콜백 함수를 호출하여 일치하는 각 결과에 대해 대체 작업을 수행할 수 있습니다. 이 콜백 함수에서는 일치하는 src 속성의 값을 가져와 교체 작업을 수행할 수 있습니다.

$newHtml = preg_replace_callback($pattern, function($matches) {
    $oldSrc = $matches[1];
    $newSrc = getNewSrc($oldSrc);
    return 'src="' . $newSrc . '"';
}, $html);
로그인 후 복사

이 콜백 함수에서는 먼저 일치하는 src 속성 $oldSrc의 값을 가져온 다음 getNewSrc() 함수를 호출하여 새 이미지 주소 $newSrc를 가져와 src 속성에 할당하고 대체 문자열을 반환합니다. 후에.

교체 작업을 완료한 후 새 HTML 코드를 파일로 출력하거나 저장할 수 있습니다.

echo $newHtml;
file_put_contents('new.html', $newHtml);
로그인 후 복사

완전한 코드는 다음과 같습니다.

$html = file_get_contents('http://www.example.com/page.html');

$pattern = '/src=[\'"]([^\'"]+)[\'"]/i';

$newHtml = preg_replace_callback($pattern, function($matches) {
    $oldSrc = $matches[1];
    $newSrc = getNewSrc($oldSrc);
    return 'src="' . $newSrc . '"';
}, $html);

echo $newHtml;
file_put_contents('new.html', $newHtml);

function getNewSrc($oldSrc) {
    // do something to get the new src
    return $newSrc;
}
로그인 후 복사

PHP의 정규 표현식을 사용하면 페이지의 특정 부분을 일괄적으로 쉽게 교체할 수 있어 웹사이트 개발 및 유지 관리가 더욱 효율적이 됩니다.

위 내용은 PHP 일치 소스 교체의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿