방문 횟수가 많으면 데이터베이스에 많은 부담을 주므로 자주 변경되지 않는 콘텐츠에 대해서는 PHP 데이터 캐시를 잘 수행하는 것이 매우 필요합니다. 간단한 PHP "파일 캐시" 클래스를 만들었습니다. 모두에게 도움이 됩니다.
아이디어는 다음과 같습니다.
일반 변수의 경우 PHP 언어 형식으로 변경하여 파일에 작성하면 됩니다.
배열형 변수의 경우 이 파일을 로드하는 것과 같습니다. , 배열을 PHP 언어로 배열을 정의하는 문자열로 변환하고 파일에 씁니다. 단지 포함하는 것은 캐시를 로드하는 것과 같습니다.
캐시 파일의 생성 시간과 시간을 얻어 캐시 시간을 제어합니다. 현재 시간을 비교하여 업데이트 시간이 아니면 캐시를 직접 읽어 업데이트 시간이면 데이터베이스에 쿼리하고 데이터를 반환한 후 캐시를 업데이트합니다. (아직 구현되지 않음)
다음은 내 php-kcache 클래스(php_kcache_class.php)입니다.
참고: 캐시 문자열인 경우 이스케이프 문자에 ''를 하나 더 추가하세요. , "n" "\n"으로 씁니다.
코드 복사 코드는 다음과 같습니다.
/*
//php-kcache class v_0.1
//저자: kangzj
//이메일: kangzj@mail.bnu.edu.cn
//블로그 : http://kangzj.net.ru
//저자는 이 프로그램에 버그가 없다고 보장하지 않으며, 이 프로그램을 사용하면서 발생하는 문제에 대해서는 책임을 지지 않습니다
//.
*/
class php_kcache {
//상대 또는 절대 디렉터리, 끝에 '/'를 추가하지 마세요.
var $cache_dir = './cache'
var $cache_extension = '.cache .php';
function set_cache($name, $value){
$pre = "< ?n//캐시 생성 날짜: ".date('Y-m-d H:i:s') ."n ";
if(!is_array($value)){
$value = $value;
$str = "$$name = '$value';"; {
$str = "$$name = ". $this->arrayeval($value) ';' $str . $end; . '/' . $name . $this->cache_extension;
if($fp = @fopen($cache_file, 'wb')) {
cache_file
종료('다음에 쓸 수 없습니다. 캐시 파일을 확인하세요. ');
return false ($array, $level = 0) {
for($i = 0; $i < = $level; $i ) {
$space .= "t";
$evaluate = "Arrayn$space(n ";
$comma = $space;
if(is_array($array)) {
foreach($array as $key => $val) {
$key = is_string($key ) ? '''.addcslashes($key, ''\').''' : $key
$val = !is_array($val) && (!preg_match("/^-?[1-9 ]d*$/", $val) || strlen($val) > 12) ''' .addcslashes($val, ''\').''' : $val;
if(is_array ($val)) {
"$comma$ 키 => $val"; $ space)";
return $evaluate;
}
}
가장 간단한 호출 방법:
코드 복사
코드는 다음과 같습니다.
include './php_kcache_class.php';
$pc = new php_kcache;
$a = array('a', 'b', 'c'); ->set_cache('a', addlashes($a))