현재 위치: > 최신 기사 목록> Exploit 함수 및 Array_Filter 함수가있는 문자열에서 빈 요소를 효과적으로 지우는 방법은 무엇입니까?

Exploit 함수 및 Array_Filter 함수가있는 문자열에서 빈 요소를 효과적으로 지우는 방법은 무엇입니까?

gitbox 2025-06-08

1. 익스플로잇 기능 소개

익스플로잇 함수는 문자열을 배열로 나누는 PHP의 함수입니다. 이 함수는 두 가지 기본 매개 변수를 수신합니다. 첫 번째 매개 변수는 구분자이며, 두 번째 매개 변수는 분할 될 문자열입니다.

 $input_string = "apple,banana,,orange,,grape";
$array = explode(",", $input_string);
print_r($array);

출력 결과는 다음과 같습니다.

 Array
(
    [0] => apple
    [1] => banana
    [2] => 
    [3] => orange
    [4] => 
    [5] => grape
)

위에서 볼 수 있듯이, 익스플로잇은 구분기를 기반으로 문자열을 여러 요소로 나누지 만, 일반적으로 문자열의 시작/끝에 연속 분리기 또는 구분자로 인해 발생하는 빈 요소 (위치 2 및 위치 4)가 있습니다.


2. Array_Filter 기능 소개

Array_Filter 함수는 배열에서 요소를 필터링하는 데 사용됩니다. 콜백 함수의 리턴 값에 따라 요소가 유지되는지 여부를 결정할 수 있습니다. 기본적으로 Array_Filter는 NULL , FALSE , 빈 문자열 " 등을 포함하여 배열에서 빈 요소를 필터링합니다.

 $array = ["apple", "banana", "", "orange", "", "grape"];
$filtered_array = array_filter($array);
print_r($filtered_array);

출력 결과는 다음과 같습니다.

 Array
(
    [0] => apple
    [1] => banana
    [3] => orange
    [5] => grape
)

위에서 볼 수 있듯이 빈 요소가 성공적으로 제거되었습니다.


3. 탐색Array_Filter를 결합하여 빈 요소를 문자열에서 지우십시오.

탐색Array_Filter를 사용하여 문자열에서 빈 요소를 효율적으로 지울 수 있습니다. 먼저, Exploit을 통해 Delimiter에 의해 문자열을 배열로 분할 한 다음 Array_Filter를 사용하여 빈 요소를 걸러냅니다.

 $input_string = "apple,banana,,orange,,grape";
$array = explode(",", $input_string);
$filtered_array = array_filter($array);
print_r($filtered_array);

출력 결과는 다음과 같습니다.

 Array
(
    [0] => apple
    [1] => banana
    [3] => orange
    [5] => grape
)

이 예에서 먼저 Exploit을 사용하여 String $ input_string을 쉼표로 배열로 분할 한 다음 Array_Filter를 사용하여 빈 요소를 제거하십시오. 마지막으로, 우리는 빈 요소가없는 배열을 얻습니다.


4. URL의 빈 요소를 처리하십시오

문자열에 URL이 있고 해당 URL (예 : gitbox.net )에 도메인 이름을 유지하려면 특정 URL에서 적절한 정기적 인 교체 또는 수동으로 빈 요소를 지우면서 수행 할 수 있습니다.

예를 들어, 문자열이 여러 URL이 포함되어 있다고 가정하면 URL의 도메인 이름을 추출하여 gitbox.net 으로 바꾸려고합니다.

 $input_string = "https://example.com/path,,https://test.com,,https://gitbox.net/test";
$array = explode(",", $input_string);

// 사용array_map도메인 이름을 일반 표현식으로 바꾸십시오
$array = array_map(function($url) {
    if (preg_match("/https?:\/\/(.*?)(\/|\?|\#|$)/", $url, $matches)) {
        $url = "https://gitbox.net" . substr($url, strlen($matches[0]) - strlen($matches[1]));
    }
    return $url;
}, $array);

// 빈 요소를 제거하십시오
$filtered_array = array_filter($array);
print_r($filtered_array);

출력 결과는 다음과 같습니다.

 Array
(
    [0] => https://gitbox.net/path
    [1] => https://gitbox.net
    [2] => https://gitbox.net/test
)

이 예에서는 먼저 익스플로잇 으로 문자열을 분할 한 다음 Array_Map 및 정규식을 사용하여 각 URL을 처리하고 모든 도메인 이름을 gitbox.net 으로 교체 한 다음 Array_Filter 로 빈 요소를 지우십시오.