使用ob_start缓冲输出做简单缓存
PHP ob_start()函数是一个功能强大的函数,可以帮助我们处理许多问题。
Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用header() 或setcookie(), 发送的文件头信息产生影响,只对那些类似于echo() 和PHP 代码的数据块有作用。
所有对header()函数有了解的人都知道,这个函数会发送一段文件头给浏览器,但是如果在使用这个函数之前已经有了任何输出(包括空输出,比如空格,回车和换行)就会提示出错。如果我们去掉第一行的ob_start(),再执行此程序,我们会发现得到了一条错误提示:"Header had all ready send by"!但是加上ob_start,就不会提示出错,原因是当打开了缓冲区,echo后面的字符不会输出到浏览器,而是保留在服务器,直到你使用flush或者ob_end_flush才会输出,所以并不会有任何文件头输出的错误!
下面介绍下如何使用ob_start做简单缓存。
<?php $time1 = microtime(true); for($i = 0;$i < 9999;$i++) { //echo $i.'<br />'; } echo "<br />"; $time2 = microtime(true); echo $time2 -$time1; // 输出 0.0010678768158 ?>
没做缓存的时候,运行时间为 0.0010678768158。
1. 简单缓存
<?php $time1 = microtime(true); $cache_file = "file.txt"; if(file_exists($cache_file)) { $info = file_get_contents($cache_file); echo $info; $time2 = microtime(true); echo $time2 -$time1; exit(); } ob_start(); for($i = 0;$i < 9999;$i++) { //echo $i; } echo "<br />"; $info = ob_get_contents(); file_put_contents($cache_file ,$info); $time2 = microtime(true); echo $time2 -$time1; // 输出 0.00075888633728 ?>
没做缓存耗时 0.001秒,做了简单缓存则为 0.0007秒,缓存后速度稍有提升。
2. 进一步缓存
在前面缓存的基础上进一行加深。大家都知道,js文件不仅不耗费服务器的资源,同时会被下载到客户端,秩序下载一次,之后就不消耗带宽了,缺点就是不可以被搜索引擎抓到包,但是对于办公系统来说,是一个非常好的选择。
<?php $time1 = microtime(true); function htmltojs($str) { $re=''; $str=str_replace('\','\\',$str); $str=str_replace("'","'",$str); $str=str_replace('"','"',$str); $str=str_replace('t','',$str); $str= split("rn",$str); //已分割成数组 for($i=0;$i < count($str); $i++) { $re.="document.writeln("".$str[$i]."");rn"; //加上js输出 } $re = str_replace(""); document.writeln("","",$re); return $re; } $cache_file = "file.js"; if(file_exists($cache_file)) { $info = file_get_contents($cache_file); show_script($cache_file); $time2 = microtime(true); echo $time2 -$time1; exit(); } ob_start(); for($i = 0;$i < 9999;$i++) { //echo $i; } echo "<br />"; $info = ob_get_contents(); $info = htmltojs($info); file_put_contents($cache_file ,$info); $time2 = microtime(true); echo $time2 -$time1; ?>
只是简单地提供一个缓存的思路。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP에 로그인하는 것은 매우 쉬운 작업입니다. 한 가지 기능만 사용하면 됩니다. cronjob과 같은 백그라운드 프로세스에 대해 오류, 예외, 사용자 활동, 사용자가 취한 조치를 기록할 수 있습니다. CakePHP에 데이터를 기록하는 것은 쉽습니다. log() 함수는 다음과 같습니다.

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.
