Saya memiliki blok kode PHP yang menghasilkan file sitemap.xml saya. Masalahnya adalah, ini menghasilkan file setiap kali halaman situs dimuat. Kodenya ada di file template utama saya.
Bagaimana saya bisa memberitahu PHP untuk hanya mengeksekusi kode ini, katakanlah, sekali sehari, bukan setiap kali template dimuat?
Saya tidak ingin menggunakan tab cron karena kodenya harus ada di file template. File template ditarik untuk beberapa domain di akun yang sama. Jadi saya perlu memberi syarat pada blok kode yang mengatakan only run this code when a page is loaded but only during a certain time frame each day, like from 12 noon to 4pm or something like that
.
Saya tahu itulah gunanya cron, tetapi perlu dilakukan di PHP.
PEMBARUAN
Jadi inilah yang saya buat berdasarkan Travesty3
jawaban.
$time = time();
$sitemap = $_SERVER['DOCUMENT_ROOT'].'/sitemap.xml';
if ($time - filemtime($sitemap) >= 1*24*60*60) { // 1 days
(generate sitemap code here)
}
Ini berfungsi dengan baik. Peta situs sekarang hanya dibuat sekali sehari hanya jika situs tersebut memiliki setidaknya 1 pengunjung per hari.
Namun jika situs tersebut memiliki banyak lalu lintas yang menjadi perhatian awal saya untuk melakukan hal ini, bukankah memeriksa filemtime
file peta situs.xml akan menyebabkan jumlah overhead yang hampir sama di server dengan pembuatan file peta situs di setiap permintaan?