gpt4 book ai didi

php - 是否可以动态生成 html5 缓存 list ?

转载 作者:可可西里 更新时间:2023-11-01 00:09:17 25 4
gpt4 key购买 nike

是否可以动态生成 html5 缓存 list ?我已经尝试过 php(遵循本教程等 http://grinninggecko.com/dynamic-cache-manifest/),但完全没有成功。

最佳答案

很确定,但让我告诉你:让 HTML5 离线内容与 JavaScript applicationCache.update() 等一起很好地工作。阿尔。如果您是新手,它会有些困惑。最后一切都按...记录的那样工作!但请注意 LECTOR...

无论如何,这是一个(希望如此) self 解释的纯 PHP 示例,为此您需要一个 .htaccess 文件。这将告诉您的服务器将 cache.manifest 解释为 PHP 代码(需要,因为没有 .php 扩展名)。

如果您使用 FCGI Wrapper,您的 .htaccss 文件:

AddType text/cache-manifest .manifest

<FilesMatch "\.(manifest)$">
SetHandler fcgid-script
FcgidWrapper /folder/to/your/php-fcgi-starter .manifest
Options +ExecCGI
</FilesMatch>

如果您使用 apache php 模块,您的 .htaccess 文件(大多数情况下,这将是默认情况):

AddType text/cache-manifest .manifest

<FilesMatch "\.(manifest)$">
SetHandler application/x-httpd-php
</FilesMatch>

您的cache.manifest 文件:

<?php

// only cache files in the following folders (avoids other stuff like "app/")
$folders = array('js', 'lib', 'views', 'styles');
$files = array('index.html');

// recursive function
function append_filelist(&$files, $folder) {
if ($dh = opendir($folder)) {
while (($file = readdir($dh)) !== false) {
if ( ! in_array($file, array('.', '..', '.svn')) &&
(substr($file, -4) != ".swp")) {
if (is_dir($folder."/".$file))
append_filelist($files, $folder."/".$file);
else
//$files[] = $folder."/".$file."?hash=".md5_file($folder."/".$file);
$files[] = $folder."/".$file;
} // if
} // while
} // if
}

// init
foreach ($folders as $folder)
if (is_dir($folder))
append_filelist($files, $folder);

// generate output
$body = "CACHE MANIFEST\n\nCACHE:\n";
foreach ($files as $file)
$body .= $file."\n";
$body .= "\nNETWORK:\n*\n";

// render output (the 'Content-length' header avoids the automatic creation of a 'Transfer-Encoding: chunked' header)
header('Content-type: text/cache-manifest');
header('Content-length: '.strlen($body));
echo $body;

祝你好运!

关于php - 是否可以动态生成 html5 缓存 list ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20872063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com