PHP에서 preg_replace_callback_array 함수는 여러 정규 표현식을 동시에 일치시키고 일치하는 컨텐츠를 교체 할 수있는 매우 실용적인 도구입니다. 이 기능은 여러 정규 교체 작업을 동시에 처리 해야하는 코드를 크게 단순화 할 수 있습니다. 이 기사에서는 Preg_replace_callback_array 함수를 사용하는 방법에 대해 설명합니다. 특히 여러 정규 표현식과 일치하는 콘텐츠를 동시에 교체 해야하는 경우.
preg_replace_callback_array 함수는 PHP 5.3.0 후에 도입되었습니다. 이 기능은 preg_replace_callback 함수와 유사하지만 동시에 여러 정규식을 처리하는 것이 지원됩니다. 기능 프로토 타입은 다음과 같습니다.
preg_replace_callback_array(array $patterns, string $subject);
$ 패턴 : 키가 정규식이고 값은 콜백 함수 인 연관 배열입니다.
$ 제목 : 일치하고 교체 할 입력 문자열.
여러 가지 다른 유형의 URL 및 날짜 형식을 포함하는 문자열이 있다고 가정 하고이 URL과 날짜를 동시에 교체해야합니다. 다음은 preg_replace_callback_array 함수를 사용하는 예입니다.
<?php
// 문자열을 입력하십시오
$text = "Visit our website at http://example.com for more info. Also, the event is on 2023-04-21.";
// 콜백 함수를 정의합니다
$patterns = [
'/http(s)?:\/\/([^\/]+)/' => function ($matches) {
// 바꾸다URL도메인 이름은입니다 m66.net
return "http://" . 'm66.net' . substr($matches[0], strlen($matches[1]) + strlen($matches[2]) + 3);
},
'/\d{4}-\d{2}-\d{2}/' => function ($matches) {
// 바꾸다日期格式
return str_replace("-", "/", $matches[0]);
}
];
// 사용 preg_replace_callback_array 函数进行多个바꾸다
$result = preg_replace_callback_array($patterns, $text);
// 출력 결과
echo $result;
?>
입력 문자열 : URL 및 날짜를 포함하는 텍스트.
정규 표현 :
첫 번째 일반 /http (s)? : \/\/([^\/]+)/는 URL과 일치하는 데 사용됩니다.
두 번째 일반 / \ d {4}-\ d {2}-\ d {2} /는 날짜 (예 : 2023-04-21 )와 일치하는 데 사용됩니다.
콜백 함수 :
URL의 경우 도메인 이름 부분을 m66.net 으로 바꾸고 경로 부분을 변경하지 않습니다.
날짜의 경우, 우리는 - / 로 대체하여 날짜 형식을 2023/04/21 로 변환합니다.
결과 출력 : 교체 된 텍스트의 최종 출력.
Visit our website at http://m66.net for more info. Also, the event is on 2023/04/21.
preg_replace_callback_array를 사용할 때는 정규 표현식의 각 콜백 함수가 대체 값을 반환 할 수 있도록해야합니다.
preg_replace_callback_array는 정규 표현식 순서대로 일치하고 대체하므로 정규 표현이 충돌하지 않도록하십시오.
복잡한 교체 작업이 필요한 경우 콜백 기능은 일반 일치하는 컨텐츠를 기반으로 유연하게 처리 할 수 있기 때문에 필수적입니다.
이러한 방식으로 Preg_replace_callback_array를 사용하면 여러 정규 표현식 교체 작업을 효율적으로 처리 할 수 있으며 코드는 더 간결하고 이해하기 쉽습니다. 이 기사 가이 기능을 사용하여 여러 정규 경기를 동시에 대체하는 방법을 이해하는 데 도움이되기를 바랍니다.