>  기사  >  백엔드 개발  >  PHP 페이지 캐시 ob 시리즈 기능 소개

PHP 페이지 캐시 ob 시리즈 기능 소개

高洛峰
高洛峰원래의
2016-12-01 14:45:001584검색

PHP 페이지 캐싱은 ob_start(), ob_end_flush(), ob_get_contents() 등 ob 계열의 함수를 주로 사용합니다.

다음은 인코딩 부분입니다.

1. 초기화 기능, 일반적으로 페이지 캐시 경로, 캐시 파일 이름 지정 형식 등을 설정하며 개인 취향에 따라 사용자 정의할 수 있습니다. 여기서 사용되는 식별ID는 암호화된 $_SERVER[REQUEST_URI] 파라미터입니다. 이 함수의 마지막에는 if 판단이 있습니다. 캐시 기간이 지나지 않았으면 캐시 파일을 로드하고, 그렇지 않으면 소스 파일을 로드합니다.

코드 복사 코드는 다음과 같습니다:
function page_init()
{
$url = $_SERVER['REQUEST_URI'];//Sub-url, 이 매개변수는 일반적으로 고유합니다.
$pageid = md5($url);
$dir = str_replace('/','_',substr($_SERVER['SCRIPT_NAME'],1,-4))
// exp_index
if(!file_exists($pd = PAGE_PATH.$dir.'/'))@mkdir($pd,0777) 또는 die("$pd 디렉토리 생성 실패")와 같은 디렉토리 명명 방법
//cache/page/exp_index/
define('PAGE_FILE',$pd.$pageid.'.html')
  //cache/page/exp_index/cc8ef22b405566745ed21305dd248f0e.html
$contents = file_get_contents( PAGE_FILE);//읽기

if($contents && substr($contents, 13, 10) > time() )//page_cache에 추가된 사용자 정의 헤더에 해당 () 함수
{
echo substr($contents, 27);
exit(0)
}
return true; 2. 페이지 캐싱 기능, 여기에 트릭이 사용됩니다. 캐시 파일의 내용에 헤더 정보(만료 시간)를 추가하므로 매번 헤더의 만료 시간을 현재 시간과 비교하기만 하면 됩니다. page_init() 함수) 캐시가 만료되었는지 확인할 수 있습니다.
코드 복사
function page_cache($ttl = 0)
{
$ttl = $ttl ? $ttl : PAGE_TTL;//캐시 시간, 기본 3600초
$contents = ob_get_contents();//캐시에서 콘텐츠 가져오기
$contents = "n".$contents; 🎜> //사용자 정의 헤더 추가: 만료 시간 = 생성 시간 + 캐시 시간
file_put_contents(PAGE_FILE, $contents); //캐시 파일에 쓰기
ob_end_flush() //캐시 해제
}

3. 함수 사용법, 이 두 함수는 순차적 실행 순서가 있다는 점에 유의하시고, ob_start()를 잊지 마세요.
코드 복사 코드는 다음과 같습니다.
page_init() ;//페이지 캐시 초기화
ob_start();//캐싱 켜기

...//코드 세그먼트

page_cache(60);//보통 마지막 줄

?>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.