typecho全站静态化方案

我若为王 • 2020 年 03 月 30 日

Loading...

## 方案

利用wget全站保存为html,然后再修改文件中的链接

## 脚本

```

$url = 'https://ifking.cn'; //网址,不能以"/"结尾

$rurl=''; //要替换成路径或网址,可为空,不能以"/"结尾

$dir = __DIR__ . "/" . str_replace('https://', '', str_replace('http://', "", $url));

exec("clear",$clc);

echo $clc[0];

echo "开始下载文件\r\n";

exec("rm -rf {$dir}",$return);

exec("wget -r -p -np {$url}",$return);

$dirs = get_filenamesbydir($dir);

//不处理非html文件

for ($i = 0; $i < count($dirs); $i++) {

$file=str_replace(__DIR__, "", $dirs[$i]['file']);

if (!preg_match("/html/",$file) ) {

//删除对应的元素

unset($dirs[$i]);

}

}

array_filter($dirs);

sort($dirs);//重新生成索引下标

//网址处理

$count=count($dirs);

for ($i = 0; $i < $count; $i++) {

$content=str_replace($url,$rurl,file_get_contents($dirs[$i]['file']));

file_put_contents($dirs[$i]['file'],$content);

$n=$i+1;

exec("clear",$clc);

echo $clc[0];

echo "文件下载完毕\r\n";

echo "开始处理文件,共{$count}个文件需要处理,已处理{$n}个\r\n";

}

echo "处理完毕,文件目录:{$dir}\r\n";

function get_allfiles($path, &$files)

{

if (is_dir($path)) {

$dp = dir($path);

while ($file = $dp->read()) {

if ($file !== "." && $file !== "..") {

get_allfiles($path . "/" . $file, $files);

}

}

$dp->close();

}

if (is_file($path)) {

$files[] = ['file' => $path];

}

}

function get_filenamesbydir($dir)

{

$files = array();

get_allfiles($dir, $files);

return $files;

}

```

保存上述代码为html.php并修改,运行 `php html.php`

需要系统安装有wget(一般都有)并且启用php的exec函数

思路来源于 [https://blog.5v5.lol/archives/88/][1]

## 预览

[https://blog.ifking.cn][2]

[1]: https://blog.5v5.lol/archives/88/

[2]: https://blog.ifking.cn

typecho 全站ajax,typecho全站静态化方案相关推荐

  1. 淘淘商城第86讲——实现商品详情页面静态化方案时,你没遇到过java.lang.IllegalArgumentException或者java.lang.NullPointerException这种异常

    问题描述 今儿个,我在实现商品详情页面静态化方案时,遇到了一个蛮奇怪的异常,为什么说蛮奇怪呢?因为它只在第一次测试的时候出现过,后面就再也没出现过了. 我先描述一下这个异常是怎么出现的,我在淘淘商城后 ...

  2. typecho模板ajax,Typecho实现全站式Ajax的方法

    我相信不懂jQuery和Ajax的朋友看到这篇文应该会挺高兴的,因为目前网络上关于Typecho的Ajax关键字全是willin kan做的AjaxComments插件.如果你对Typecho的全站化 ...

  3. java网站页面静态化方案

    要生活得漂亮,需要付出极大的忍耐,一不抱怨,二不解释,绝对是个人才.--<变形记> 1.概述 在大型网站中,如京东和当当商品详情界面,看到的页面基本上是静态页面.为什么都要把页面静态化呢? ...

  4. 动态页面静态化之页面静态化方案

    动态页面静态化之页面静态化方案 --------- 在大型网站中,访问者看到的页面基本上是静态页面.为什么都要把页面静态化呢? 把页面静态化,好处有很多.例如:访问速度快,更有利于搜索引擎收录等.目前 ...

  5. typecho 全站ajax,Typecho全站启用HTTPS教程

    全站启用HTTPS已经成为趋势,搜索引擎也在不断重视,今天就分享下Typecho设置HTTPS的过程. 申请SSL证书 如果您还没有域名SSL证书,请自行申请沃通免费SSL证书和Let's Encry ...

  6. typecho模板ajax,typecho ajax登陆

    typecho ajax登陆 反回responseText返回的为html代码! 帐户密码为admin/123456 $.ajax({ url: "<?php $this->op ...

  7. zblog 全站ajax,ZBlog全站缓存

    ZBlog是一个动态的内容管理系统,所以每次用户访问网站时,ZBlog都会从数据库中提取信息,然后在将网页发送到用户的浏览器. 当同时访问网站的用户过多时,这会使网站加载速度变慢.缓存能使网站跳过很多 ...

  8. 项目性能优化(页面静态化2)

    对于商品详情页,因查询数据量大,而且是用户频繁访问的页面,为了减少数据库查询次数,提升页面响应效率,也要对详情页进行静态化处理. 对于首页广告的数据,因变化非常的频繁,可以使用定时任务进行静态化.对于 ...

  9. [Apache]网站页面静态化与Apache调优(图)

    ---------------------------------------------------------------------------------------------------- ...

最新文章

  1. Java输入输出(io)流详解、图解
  2. Linux系统服务器如何禁ping
  3. mysql数据库表的基本操作
  4. CentOS5安装Nginx1.4+PHP5.5 FastCGI
  5. R plot图片背景设置为透明_R语言入门第十二讲:基础绘图(二)------plot与par函数(1)...
  6. 我也有了博客了,呵呵~~
  7. 教你高效管理CrossOver容器
  8. android studio for android learning (十三) 一个简单的图片查看器示例
  9. 【vijos】在vijos的自己的域中创建题目
  10. 【学习笔记-1】- 非线性规划的最优性一阶/二阶必要条件之例题(12道)
  11. 超详细html5登录注册页面总结
  12. Android各种模拟器使用笔记
  13. Android Service保活方法总结
  14. 安徽省计算机考试准考证查询
  15. 基于Xposed框架截取安卓手机应用数据信息
  16. python特征选择relieff图像特征优选_python 3.x实现特征选择ReliefF算法
  17. 脑电波也能卖萌 这样的传感器好特别
  18. 【易通慧谷】供应链金融主要模式及对商业银行的影响
  19. 论文|翻译——行为数据挖掘(持续更新!)
  20. 华为S6700交换机配置

热门文章

  1. 做微信营销你知道男女用微信的习惯吗?
  2. Extjs 4.x 得到form CheckBox的值
  3. SQL 2008镜像配置
  4. C 语言的数据类型宽度扩展
  5. 去除QQ打/之后会出现的表情
  6. Linux如何查看所有的用户和组信息
  7. 假期七天实习参观有感
  8. document.onreadystatechange()来判断页面加载完
  9. Linux 配置本地yum源步骤
  10. 64. 合并排序数组 II