PHP에서 출력 캐시 관리는 개발자가 페이지 출력 프로세스를 제어하고 최적화하는 데 도움이되는 매우 중요한 개념입니다. 출력 캐시를 사용하여 개발자는 프로그램의 출력을 브라우저로 직접 전송하는 대신 메모리에 저장할 수 있습니다. 이렇게하면 성능이 향상되고 서버 부담을 줄이고, 프로세스 오류 정보 등을 제공 할 수 있습니다. 일반적으로 사용되는 PHP 출력 캐시 기능에는 OB_START () , OB_END_FLUSH () , OB_LIST_HANDLERS () 등이 포함됩니다.
이 기사에서는 효과적인 출력 캐시 관리를 달성하기 위해 OB_LIST_HANDLERS 기능 및 OB_START를 사용하는 방법에 중점을 둘 것입니다.
OB_START () 는 출력 캐시를 시작하는 PHP의 함수입니다. 이 함수가 호출되면 모든 출력은 일시적으로 출력 버퍼에 저장되며 즉시 브라우저로 전송되지 않습니다. 이는 콘텐츠 수정, 출력을 보내기 전에 HTTP 헤더 추가와 같은 후속 처리에 대한 유연성을 제공합니다.
ob_start();
echo "Hello, world!";
위의 코드 예제에서 Echo 의 내용은 즉시 출력되지 않지만 캐시에 저장됩니다. ob_end_flush ()를 호출하여 캐시 된 컨텐츠를 브라우저에 출력 할 수 있습니다.
OB_LIST_HANDLERS ()는 현재 활성화 된 출력 버퍼 처리기 목록을 얻는 PHP의 또 다른 기능입니다. 이 기능을 통해 개발자는 모든 활성화 된 버퍼 관리자를보고 필요할 때 관리 및 디버그 할 수 있습니다.
ob_start();
ob_start('ob_gzhandler'); // 할 수 있게 하다gzip압축
$handlers = ob_list_handlers();
print_r($handlers);
OB_LIST_HANDLERS ()가 반환 한 컨텐츠는 현재 버퍼에서 사용하는 모든 핸들러 이름을 포함하는 배열입니다. 이 기능은 매우 유용하며 개발자가 GZIP 압축과 같은 특정 출력 핸들러가 활성화되어 있는지 확인하는 데 도움이됩니다.
OB_LIST_HANDLERS () 및 OB_START ()를 결합하면 프로그램에서 출력 캐시를 동적으로 제어하고 관리 할 수 있습니다. 예를 들어, 특정 작업을 수행 할 때 현재 캐시 핸들러 목록을보고 필요에 따라 처리기를 활성화 또는 비활성화 할 수 있습니다.
// 기본 출력 캐시를 시작하십시오
ob_start();
// 할 수 있게 하다gzip압축
ob_start('ob_gzhandler');
// 현재 캐시 핸들러 목록을 가져옵니다
$handlers = ob_list_handlers();
echo "현재 출력 캐시 처리기:\n";
print_r($handlers);
// 일부 내용을 출력하십시오
echo "이것은 캐시 된 콘텐츠입니다。";
// 출력을 완료하십시오
ob_end_flush();
이 예에서는 먼저 OB_START () 를 통해 기본 출력 캐시를 활성화 한 다음 OB_START ( 'OB_GZHANDLER') 를 통해 GZIP 압축을 활성화합니다. OB_LIST_HANDLERS ()를 호출하여 현재 사용 가능한 핸들러를 확인하여 인쇄 할 수 있습니다. 마지막으로 캐시 된 컨텐츠는 OB_END_FLUSH ()를 통해 브라우저에 출력됩니다.
OB_LIST_HANDLERS () 는 실제 애플리케이션에 유용 할뿐만 아니라 디버깅 도구로도 사용할 수 있습니다. 예를 들어, 출력이 예상대로 작동하지 않는 경우이 기능을 사용하여 예상치 못한 출력 버퍼 처리기 간섭을 확인할 수 있습니다.
ob_start();
ob_start('ob_gzhandler');
// 현재 캐시 핸들러를 가져옵니다
$handlers = ob_list_handlers();
if (in_array('ob_gzhandler', $handlers)) {
echo "gzip압축已할 수 있게 하다。\n";
} else {
echo "gzip압축未할 수 있게 하다。\n";
}
ob_end_flush();
위의 코드를 통해 GZIP 압축이 활성화되는지 여부를 감지하고 결과에 따라 이에 따라 처리 할 수 있습니다.
OB_START ()와 함께 OB_LIST_HANDLERS ()를 사용하면 출력을 디버깅하고 최적화 할 때 출력 캐시를 유연하게 관리하고 제어 할 수 있습니다. 이 두 가지의 조합은 개발자가 복잡한 페이지 출력에서 효율적인 캐시 관리를 달성하여 응용 프로그램 성능을 향상시키는 데 도움이 될 수 있습니다.
OB_START ()을 호출 한 후 모든 출력은 OB_END_FLUSH () 또는 OB_END_CLEAN ()이 호출 될 때까지 캐시됩니다.
현재 활성화 된 모든 출력 버퍼 핸들러는 OB_LIST_HANDLERS () 를 통해 볼 수 있습니다.
일부 복잡한 애플리케이션에서 GZIP 압축 활성화, 컨텐츠 교체 등과 같은 여러 캐시 핸들러를 결합하여보다 고급 출력 최적화를 달성 할 수 있습니다.
이 기사를 통해 출력 캐시 관리에 OB_LIST_HANDLERS () 및 OB_START ()를 사용하는 방법을 더 잘 이해할 수 있기를 바랍니다.