Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan kod caching statik halaman dalam php

Bagaimana untuk melaksanakan kod caching statik halaman dalam php

PHPz
PHPzasal
2023-04-05 10:30:27556semak imbas

PHP ialah bahasa skrip popular yang digunakan untuk membuat halaman web dinamik dan memproses data borang. Dalam kebanyakan kes, kod PHP perlu melakukan sejumlah pengiraan dan pemprosesan data untuk menjana kandungan dinamik halaman web. Halaman web yang dijana secara dinamik ini perlu mengira semula data dalam halaman apabila pengguna mengakses halaman yang sama, yang menyebabkan masa pemuatan halaman web menjadi lebih lama dan menjejaskan pengalaman pengguna. Untuk menyelesaikan masalah ini, teknologi caching statik halaman boleh digunakan.

Caching statik halaman merujuk kepada caching halaman web yang dijana secara dinamik supaya kandungan cache boleh dikembalikan terus dalam lawatan berikutnya tanpa perlu melakukan pengiraan dan operasi pemprosesan data. Ini boleh meningkatkan kelajuan tindak balas halaman web dan mengurangkan beban pelayan dan penggunaan jalur lebar rangkaian. Terdapat banyak cara untuk melaksanakan caching statik halaman dalam PHP Berikut adalah salah satu kaedah pelaksanaan yang mudah.

Langkah satu: Tentukan sama ada cache wujud

Dalam kod PHP, anda boleh menilai sama ada fail perlu dijana semula mengikut masa pengubahsuaian fail. Jika fail sudah wujud dan masa pengubahsuaian berada dalam julat masa tertentu, kandungan cache boleh dibaca terus, jika tidak, cache perlu dijana semula. Berikut ialah kod untuk menentukan sama ada cache wujud:

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

Kod di atas mula-mula mentakrifkan nama fail cache sebagai cache.html, dan kemudian menetapkan masa tamat tempoh cache kepada 1 jam yang lalu. Seterusnya, gunakan fungsi file_exists() untuk menyemak sama ada fail cache wujud Jika ia wujud, dapatkan masa pengubahsuaian fail melalui fungsi filemtime() dan bandingkan sama ada masa itu berada dalam masa tamat tempoh yang ditetapkan. Jika syarat dipenuhi, kandungan fail cache terus dibaca dan dikeluarkan ke penyemak imbas dan pelaksanaan program berakhir.

Langkah 2: Jana kandungan cache

Jika cache tidak wujud atau telah tamat tempoh, anda perlu menjana kandungan cache baharu. Proses menjana cache boleh dengan memanggil fungsi lain atau melaksanakan pertanyaan pangkalan data, atau dengan menyimpan kod HTML halaman web dinamik ke fail. Berikut ialah contoh menjana kandungan cache:

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

Kod di atas menggunakan fungsi penimbalan output PHP ob_start() dan ob_get_clean(). Selepas memanggil fungsi ob_start(), semua kandungan output akan dicache dalam memori Cache tidak akan dikosongkan sehingga fungsi ob_get_clean() dipanggil untuk mendapatkan data cache. Dengan cara ini, kita boleh menulis kod HTML halaman web dinamik antara ob_start() dan ob_get_clean(), simpan dalam pembolehubah $content, dan kemudian simpan kandungan dalam pembolehubah $content sebagai fail cache. Akhir sekali, kandungan pembolehubah $content adalah output kepada penyemak imbas dan pelaksanaan program berakhir. Pengguna akan melihat kod HTML cache yang dijana.

Langkah 3: Lengkapkan kod

Di atas ialah contoh melaksanakan caching statik halaman Berikut ialah kod lengkap:

// 缓存文件名
$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();
}

Dalam kod di atas, melalui jika Pernyataan menentukan sama ada fail cache wujud Jika ia wujud dan masa pengubahsuaian adalah sebelum masa tamat tempoh, kandungan fail cache terus dibaca dan dikeluarkan kepada penyemak imbas. Jika tidak, panggil fungsi ob_start() untuk memulakan penimbal keluaran, tulis kod penjanaan kandungan halaman web dinamik, dapatkan kandungan cache melalui fungsi ob_get_clean() dan simpan ke pembolehubah $content, dan kemudian panggil file_put_contents(). ) berfungsi untuk menyimpan kandungan dalam pembolehubah $content ke dalam fail cache. Akhir sekali, kandungan dalam pembolehubah $content adalah output kepada penyemak imbas dan pelaksanaan program berakhir.

Ringkasan

Teknologi caching statik halaman dengan ketara boleh meningkatkan kelajuan tindak balas dan pengalaman pengguna halaman web, dan mengurangkan beban pelayan dan penggunaan lebar jalur rangkaian. Terdapat banyak cara untuk melaksanakan caching statik halaman dalam PHP Kami boleh mengurangkan pengiraan dan pemprosesan halaman dinamik dengan menentukan sama ada fail cache wujud dan belum tamat tempoh, dan meningkatkan kecekapan dengan menjana cache fail HTML statik.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kod caching statik halaman dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn