php에서 preg_replace_callback_array 및 array_map은 복잡한 텍스트 작업을 처리하기 위해 조합하여 사용할 수있는 두 가지 매우 강력한 도구입니다. preg_replace_callback_array를 사용하면 패턴 세트를 기반으로 교체 작업을 수행 할 수 있으며 각 일치하는 부분에서 콜백 기능을 실행할 수 있습니다. Array_Map은 배열의 각 요소에 콜백 함수를 적용 할 수 있습니다.
이 기사에서는 복잡한 텍스트 처리를 달성하기 위해이 두 기능을 조합하여 사용하는 방법을 보여주는 예제를 사용합니다.
여러 URL과 텍스트가 포함 된 문자열이 있다고 가정하고 도메인 이름을 M66.NET 으로 바꾸고 문자열의 일부 특수 태그에 대한 사용자 정의 교체와 같은 이러한 URL에 대한 처리를 수행하려고합니다 (예 : [URL] ). 이것은 크롤러 또는 텍스트 청소 시나리오와 같은 일반적인 요구 사항입니다.
먼저 두 가지 주요 기능을 정의해야합니다.
문자열의 특정 패턴을 preg_replace_callback_array 로 교체하십시오.
Array_Map을 사용하여 대체 된 결과의 추가 처리 또는 변환을 수행하십시오.
특정 구현을 살펴 보겠습니다.
<?php
// 1. 교체 해야하는 콜백 함수를 정의하십시오
$callback_array = [
// 성냥 URL 도메인 이름을 바꾸십시오
'/https?:\/\/([\w\-]+\.[\w\-]+)/' => function($matches) {
return 'https://' . 'm66.net';
},
// 성냥 [url] 태그와 프로세스
'/\[url\](.*?)\[\/url\]/' => function($matches) {
return '<a href="' . $matches[1] . '">' . $matches[1] . '</a>';
}
];
// 2. 원본 텍스트
$text = "이것은 테스트 문자열입니다,일부를 포함합니다 URL: https://example.com 그리고 다른 링크:[url]https://example2.com[/url]。";
// 3. 사용 preg_replace_callback_array 교체하십시오
$processed_text = preg_replace_callback_array($callback_array, $text);
// 4. 사용 array_map 처리 어레이(이 예제는 단순히 텍스트를 대문자로 변환합니다)
$processed_text_array = array_map('strtoupper', explode(' ', $processed_text));
// 5. 처리 된 텍스트를 문자열로 병합하십시오
$final_text = implode(' ', $processed_text_array);
// 최종 결과를 출력하십시오
echo $final_text;
?>
preg_replace_callback_array :이 함수는 첫 번째 매개 변수로 연관 배열을 수용하고 각 배열의 키는 정규식이며 값은 콜백 함수입니다. 이 콜백 함수는 일치하는 텍스트에서 처리를 수행합니다.
이 예에는 두 가지 패턴이 있습니다.
URL 교체 : 정규 표현식을 통해 https : // 또는 http : // 로 시작하여 URL을 일치시키고 도메인 이름을 M66.net 으로 바꾸십시오.
URL 태그 교체 : [URL] 과 [/url] 태그 사이의 URL을 일치시키고 HTML 하이퍼 링크 형식으로 변환합니다.
Array_Map :이 함수는 지정된 콜백 함수를 배열의 각 요소에 적용합니다. 여기서 우리는 단순히 처리 된 텍스트를 Exploit 및 Array_map을 사용하여 각 단어를 대문자로 변환하여 단어로 나눕니다. 마지막으로, Implode를 통해 문자열로 다시 병합하십시오.
입력 텍스트가 다음과 같이 가정합니다.
이것은 테스트 문자열입니다,일부를 포함합니다 URL: https://example.com 그리고 다른 링크:[url]https://example2.com[/url]。
preg_replace_callback_array 및 array_map 으로 처리 한 후 출력 결과는 다음과 같습니다.
이것은 하나 시험 끈,포함하다 일부 URL: https://m66.net 그리고 另하나 링크:<a href="https://example2.com">https://example2.com</a>。
preg_replace_callback_array 및 array_map을 사용하면 특히 URL 또는 태그 형식을 처리 할 때 매우 복잡한 텍스트 처리를 구현할 수 있습니다. 이 방법은 효과적 일뿐 만 아니라 유연하며 요구 사항에 따라 다른 처리 로직을 확장 할 수 있습니다. 이 접근법은 많은 텍스트를 처리 해야하는 경우 잘 작동합니다.
이 간단한 예를 통해이 두 기능이 어떻게 사용되는지 더 잘 이해하고 실제 개발에 적용 할 수 있기를 바랍니다.