简体   繁体   中英

Generate HTML Static Pages from Dynamic Php Pages

I am looking for a script to generate static HTML pages from dynamic content at runtime.

What I basically want to do is to save those cache those html generated pages for offline browsing.

Could anyone please point me in the right direction?

Thanks

If you want to do this manually, you can use output buffering. For example:

File static.php :

Hello, <a href="profile.php"><?php echo htmlspecialchars($username); ?></a>!

File functions.php :

/**
 * Renders cached page.
 *
 * @param string $template The dynamic page to cache.
 * @param integer $uid The user ID (security precaution to prevent collisions).
 * @param array $vars Set of variables passed to dynamic page.
 */
function cache_page($template, $uid, $vars)
{
    $cache = 'cache/' . $uid . '-' . md5(@json_encode($vars)) . '.cache';

    if (!file_exists($cache)) { // <- also maybe check creation time?
        // set up template variables
        extract($template_vars, EXTR_SKIP);

        // start output buffering and render page
        ob_start();
        include $template;

        // end output buffering and save data to cache file
        file_put_contents($cache, ob_get_clean());
    }

    readfile($cache);
}

File index.php :

require_once 'functions.php';

cache_page(
    'static.php',
    getUser()->id,
    ['username' => getUser()->username]
);

使用fopen并保存页面以进行离线阅读,但听起来很简单

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM