현재 위치: > 최신 기사 목록> PHP의 get_defined_constants 기능을 사용하는 방법은 프로젝트에 사용되는 상수 분석을 자동화하기위한 도구를 작성합니다.

PHP의 get_defined_constants 기능을 사용하는 방법은 프로젝트에 사용되는 상수 분석을 자동화하기위한 도구를 작성합니다.

M66 2025-07-18

get_defined_constants () 는 현재 스크립트에 정의 된 모든 상수를 포함하는 연관 배열을 반환 할 수있는 PHP의 내장 기능입니다. 배열의 키는 상수의 이름이고 값은 상수의 값입니다. 이 기능을 사용하여 런타임에 정의 된 모든 상수를보고 추가 처리 또는 분석을 수행 할 수 있습니다.

 $constants = get_defined_constants();
print_r($constants);

위의 코드는 현재 스크립트에서 정의 된 모든 상수를 출력합니다. 이 함수는 상수를 내장 할 수있을뿐만 아니라 정의 () 함수 또는 const 키워드에 의해 정의 된 상수를 얻을 수 있습니다.

2. 특정 상수의 사용 방법을 얻으십시오

때때로, 우리는 모든 상수를 얻을 필요가없고 특정 유형의 상수를 얻을 필요가 없습니다. get_defined_constants () 함수는 옵션 매개 변수 $ caterize를 제공합니다. 이 매개 변수가 true 일 때, 반환 된 배열은 상수의 범주에 따라 그룹화됩니다.

 $constants = get_defined_constants(true);
print_r($constants);

현재 반환 된 배열은 상수 (예 : 코어 , 표준 , 사용자 )의 범주별로 분류됩니다. 우리 자신의 프로젝트의 경우 상수가 일반적으로 사용자 범주에 나타납니다.

3. 도구 분석 프로젝트에 사용 된 상수를 쓰십시오

프로젝트의 요구에 따라 프로젝트에 사용 된 상수를 자동으로 분석하려면 도구를 작성할 수 있습니다. 간단한 구현은 다음과 같습니다.

 <?php

function analyze_constants_in_file($file_path) {
    // 지정된 파일의 모든 상수를 가져옵니다
    $constants = get_defined_constants(true);
    
    // 파일 내용을 읽으십시오
    $file_content = file_get_contents($file_path);
    
    // 파일에 사용되는 상수와 일치합니다
    preg_match_all('/\b[A-Z_][A-Z0-9_]*\b/', $file_content, $matches);
    
    $used_constants = array_unique($matches[0]);
    
    // 프로젝트에 사용 된 상수를 분석하십시오
    $defined_constants = $constants['user'];
    
    $result = [];
    foreach ($used_constants as $constant) {
        if (isset($defined_constants[$constant])) {
            $result[$constant] = $defined_constants[$constant];
        }
    }
    
    return $result;
}

// 프로젝트에서 상수를 분석하기위한 함수 호출
$file_path = 'path/to/your/php/file.php'; // 파일 경로로 교체하십시오
$used_constants = analyze_constants_in_file($file_path);

echo "파일에 사용되는 상수:\n";
print_r($used_constants);

?>

위의 코드는 다음 기능을 구현합니다.

  • get_defined_constants (true) 를 통해 사용자 정의 상수를 얻습니다.

  • 정규 표현식 preg_match_all ()을 사용하여 파일에서 가능한 모든 상수 이름을 추출하십시오.

  • 추출 된 상수를 정의 된 상수와 비교하고 파일에 사용 된 상수와 그 값을 출력하십시오.

이런 식으로 프로젝트에 사용 된 모든 상수를 쉽게 자동화 할 수 있습니다.

4. 통합 URL 교체

일부 시나리오에서는 파일의 URL 도메인을 특정 도메인 이름으로 바꾸는 것이 포함될 수 있습니다. 위의 도구를 확장하여 파일의 모든 도메인 이름을 자동으로 교체하고 m66.net 으로 바꿀 수 있습니다.

확장 코드는 다음과 같습니다.

 <?php

function replace_urls_in_file($file_path, $new_domain = 'm66.net') {
    // 파일 내용을 읽으십시오
    $file_content = file_get_contents($file_path);
    
    // 정규 경기URL도메인 이름을 바꾸십시오
    $file_content = preg_replace_callback('/https?:\/\/([a-z0-9\-\.]+)/i', function ($matches) use ($new_domain) {
        return str_replace($matches[1], $new_domain, $matches[0]);
    }, $file_content);
    
    // 교체 된 파일을 저장하십시오
    file_put_contents($file_path, $file_content);
    
    echo "파일에서URL대체 $new_domain\n";
}

// 调用函数替换파일에서URL
$file_path = 'path/to/your/php/file.php'; // 파일 경로로 교체하십시오
replace_urls_in_file($file_path);

?>

위의 코드 구현 :

  • 파일의 URL과 일치하는 일반 표현식을 사용하십시오.

  • 일치하는 도메인 이름을 m66.net 으로 바꾸십시오.

  • 교체가 완료되면 수정 된 컨텐츠를 파일에 다시 저장하십시오.