Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie Seiten-Static-Caching-Code in PHP

So implementieren Sie Seiten-Static-Caching-Code in PHP

PHPz
PHPzOriginal
2023-04-05 10:30:27503Durchsuche

PHP ist eine beliebte Skriptsprache, die zum Erstellen dynamischer Webseiten und zum Verarbeiten von Formulardaten verwendet wird. In vielen Fällen muss PHP-Code eine gewisse Menge an Berechnungen und Datenverarbeitung durchführen, um den dynamischen Inhalt einer Webseite zu generieren. Diese Art von dynamisch generierter Webseite muss die Daten auf der Seite neu berechnen, wenn der Benutzer auf dieselbe Seite zugreift, was dazu führt, dass die Ladezeit der Webseite länger wird und sich auf die Benutzererfahrung auswirkt. Um dieses Problem zu lösen, kann die statische Caching-Technologie von Seiten verwendet werden.

Statisches Seiten-Caching bezieht sich auf das Zwischenspeichern dynamisch generierter Webseiten, sodass der zwischengespeicherte Inhalt bei nachfolgenden Besuchen direkt zurückgegeben werden kann, ohne dass Berechnungen und Datenverarbeitungsvorgänge durchgeführt werden müssen. Dies kann die Reaktionsgeschwindigkeit von Webseiten erheblich verbessern und die Serverlast sowie die Netzwerkbandbreitennutzung reduzieren. Es gibt viele Möglichkeiten, statisches Seiten-Caching in PHP zu implementieren. Das Folgende ist eine der einfachen Implementierungsmethoden.

Schritt eins: Bestimmen Sie, ob der Cache vorhanden ist.

Im PHP-Code können Sie anhand der Änderungszeit der Datei beurteilen, ob eine Datei neu generiert werden muss. Wenn die Datei bereits vorhanden ist und die Änderungszeit innerhalb eines bestimmten Zeitbereichs liegt, kann der zwischengespeicherte Inhalt direkt gelesen werden, andernfalls muss der Cache neu generiert werden. Der folgende Code ermittelt, ob der Cache vorhanden ist:

$cache_file = 'cache.html'; // 缓存文件名
$expiry = time() - 60 * 60; // 缓存过期时间,这里设置为1小时前
if (file_exists($cache_file) && filemtime($cache_file) > $expiry) {
    // 直接读取缓存文件内容
    readfile($cache_file);
    exit();
}

Der obige Code definiert zunächst den Namen der Cache-Datei als „cache.html“ und setzt dann die Cache-Ablaufzeit auf „vor 1 Stunde“. Verwenden Sie als Nächstes die Funktion file_exists(), um zu überprüfen, ob die Cache-Datei vorhanden ist. Ermitteln Sie die Änderungszeit der Datei über die Funktion filemtime() und vergleichen Sie, ob die Zeit innerhalb der angegebenen Ablaufzeit liegt. Sind die Bedingungen erfüllt, wird der Inhalt der Cache-Datei direkt gelesen und an den Browser ausgegeben und die Programmausführung beendet.

Schritt 2: Cache-Inhalt generieren

Wenn der Cache nicht existiert oder abgelaufen ist, müssen Sie neuen Cache-Inhalt generieren. Der Prozess der Cache-Erzeugung kann darin bestehen, andere Funktionen aufzurufen oder Datenbankabfragen durchzuführen oder den HTML-Code dynamischer Webseiten in einer Datei zu speichern. Das Folgende ist ein Beispiel für die Generierung zwischengespeicherter Inhalte:

// 生成新的缓存内容
ob_start(); // 开始输出缓冲
// 在这里写你的动态内容生成代码
echo '<h1>Welcome to my website!</h1>';
// 结束输出缓冲,获取缓冲区的内容
$content = ob_get_clean();
// 把缓冲区的内容保存到缓存文件中
file_put_contents($cache_file, $content);
// 输出缓存内容到浏览器并结束程序执行
echo $content;
exit();

Der obige Code verwendet die Ausgabepufferungsfunktionen ob_start() und ob_get_clean() von PHP. Nach dem Aufruf der Funktion ob_start() wird der gesamte Ausgabeinhalt im Speicher zwischengespeichert. Der Cache wird erst geleert, wenn die Funktion ob_get_clean() aufgerufen wird, um die zwischengespeicherten Daten abzurufen. Auf diese Weise können wir den HTML-Code der dynamischen Webseite zwischen ob_start() und ob_get_clean() schreiben, ihn in der Variablen $content speichern und dann den Inhalt in der Variablen $content als Cache-Datei speichern. Abschließend wird der Inhalt der Variablen $content an den Browser ausgegeben und die Programmausführung beendet. Der Benutzer sieht den generierten zwischengespeicherten HTML-Code.

Schritt 3: Vollständiger Code

Das Obige ist ein Beispiel für die einfache Implementierung des statischen Seiten-Cachings. Das Folgende ist der vollständige Code:

// 缓存文件名
$cache_file = 'cache.html';
// 缓存过期时间,这里设置为1小时前
$expiry = time() - 60 * 60;
// 判断缓存是否存在
if (file_exists($cache_file) && filemtime($cache_file) > $expiry) {
    // 直接读取缓存文件内容
    readfile($cache_file);
    exit();
} else {
    // 开始输出缓冲
    ob_start();
    // 在这里写你的动态内容生成代码
    echo '<h1>Welcome to my website!</h1>';
    // 结束输出缓冲,获取缓冲区的内容
    $content = ob_get_clean();
    // 把缓冲区的内容保存到缓存文件中
    file_put_contents($cache_file, $content);
    // 输出缓存内容到浏览器并结束程序执行
    echo $content;
    exit();
}

Im obigen Code wird die if-Anweisung verwendet, um festzustellen, ob die Cache-Datei vorhanden ist Es existiert und die Änderungszeit läuft ab. Zeit, lesen Sie direkt den Inhalt der Cache-Datei und geben Sie ihn an den Browser aus. Rufen Sie andernfalls die Funktion ob_start() auf, um den Ausgabepuffer zu starten, schreiben Sie den Inhaltsgenerierungscode der dynamischen Webseite, rufen Sie den Cache-Inhalt über die Funktion ob_get_clean() ab, speichern Sie ihn in der Variablen $content und rufen Sie dann file_put_contents( auf. )-Funktion, um den Inhalt der Variablen $content in der Cache-Datei zu speichern. Abschließend wird der Inhalt der Variablen $content an den Browser ausgegeben und die Programmausführung beendet.

Zusammenfassung

Die statische Caching-Technologie von Seiten kann die Reaktionsgeschwindigkeit und das Benutzererlebnis von Webseiten erheblich verbessern sowie die Serverlast und die Netzwerkbandbreitennutzung reduzieren. Es gibt viele Möglichkeiten, statisches Seiten-Caching in PHP zu implementieren. Wir können die Berechnung und Verarbeitung dynamischer Seiten reduzieren, indem wir feststellen, ob Cache-Dateien vorhanden und nicht abgelaufen sind, und die Effizienz verbessern, indem wir statische HTML-Datei-Caches generieren.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Seiten-Static-Caching-Code in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn