制作 wordpress 博客静态化到本地
wget 克隆 wordpress 博客镜像
wget -e robots=off -w 1 -xq -np -nH -pk -m -t 1 -P "./wordpress.org" "http://wordpress.org"
用wget做站点镜像 wget -r -p -np -k http://ys138.win
批量替换文本内容
sed -i "s/index.html?p=/index.php?p=/g" `grep -rl "index.html?p=" ./`
批量删除当前目录包括子目录的 .bak 文件
find ./ -name "*.bak" -exec rm -rf {} \;
批量替换文件名 http://blog.csdn.net/wangjichen_1/article/details/14124517
使用【 】 做分割符, -F'\\\[|]' ,如果是其他的分隔符,-F'[ 1 | a | c ]'
#!/bin/bash
find . -type f -name "*.css?*" |
while read name; do
echo $name
newName=$(echo $name | awk -F'[|?]' '{print $1}')
echo $newName
mv $name $newName
done
抓取的文件有时候是 index.html?p=555 这个种格式的,index.html 中的超链接也是这种格式的。如果不批量更改的话,用这个 php 文件做个跳转也方便。
需要wordpress的备份文件,从备份文件中分析得到 id 和 url 的关系
<?php
/* *
* 从 wordpress 的备份数据中提取 id 和 url
* 适用于 wget 提取的 wordpress 静态镜像
*
*/
$xmlfile = 'wordpress.2017-05-10.xml'; # wordpress备份文件
$host = 'ys138.win'; # 不带http或者https,最后边不加 /
if(file_exists('url.txt') == false){
if(file_exists($xmlfile) == false)die('backupfileisnotexists');
$c = file_get_contents($xmlfile);
$line = explode("\n", $c);
$ny = count($line);
$item = '';
$url = '';
for($y = 0;$y < $ny;$y++){
if(strpos($line[$y], '<item>'))$item .= "<itemline=$y>\r\n";
if(strpos($line[$y], '<wp:post_id>')){
$item .= $line[$y] . "\r\n";
$postid = str_replace(array('<wp:post_id>', '</wp:post_id>', '<![CDATA[', ']]>'), '', $line[$y]);
$url .= trim($postid) . ' ';
}
if(strpos($line[$y], '<wp:post_date>')){
$item .= $line[$y] . "\r\n";
$date = str_replace(array('<wp:post_date>', '</wp:post_date>', '<![CDATA[', ']]>'), '', $line[$y]);
$postdate = explode(' ', $date);
$date = str_replace('-', '/', $postdate['0']) . '/';
$url .= trim($date);
}
if(strpos($line[$y], '<wp:post_name>')){
$item .= $line[$y] . "\r\n";
$postname = str_replace(array('<wp:post_name>', '</wp:post_name>', '<![CDATA[', ']]>'), '', $line[$y]);
$url .= trim($postname) . "/\r\n";
}
if(strpos($line[$y], '</item>'))$item .= "</item>\r\n";
}
// file_put_contents('item.txt',$item); # 精简的 item
file_put_contents('url.txt', $url); # 包含 id 和 url
}
$url = file_get_contents('url.txt');
$arr_url = array();
$array = explode("\r\n", $url);
$nz = count($array)-1;
for($z = 0;$z < $nz;$z++){
$array_url = explode(' ', $array[$z]);
$arr_url = $arr_url + array($array_url['0'] => $array_url['1']);
}
// print_r($arr_url); # $arr_url 是 $url 的数组格式
if(isset($_GET['p'])){
$scheme = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'))?'https://':'http://';
$url = $scheme . $host . '/' . $arr_url[$_GET['p']];
echo $url;
header('Location:' . $url);
}
制作 wordpress 博客静态化到本地的更多相关文章
- 怎样搭建一个自有域名的 WORDPRESS 博客?
博客搭建并不复杂,只是过程有点繁琐,适合喜欢折腾的人,主要有下面几个步骤: 新建一个博客文件 购买域名(Domain Name) 注册一个主机空间(Web Host) 域名解析(DNSPod) 安装W ...
- MWeb 1.3.7 发布!增加发布到 Wordpress 等支持 MetaWeblog API 的服务,如:Wordpress 博客、新浪博客、cnblogs、oschina。
MWeb 1.3.7 版的新功能 增加发布到 Wordpress 等支持 Metaweblog API 的服务,目前经测试过的有: Wordpress 博客.新浪博客.cnblogs.oschina. ...
- LNMP环境搭建之php安装,wordpress博客搭建
LNMP环境搭建之php安装,wordpress博客搭建 一.介绍: 1.什么是CGI CGI全称是"通用网关接口"(Common Gateway Interface),HTTP服 ...
- 搭建WordPress博客程序库
搭建WordPress博客程序库 wordpress简介 wordpress是一套利用PHP语言和Mysql数据库开发的开源免费的Blog(博客,网站)程序,用户可以在支持PHP环境和Mysql数据库 ...
- Coding.net代码托管空间申请与使用-安装并运行WordPress博客
参考: http://www.freehao123.com/coding-net/ Coding.net这是一个国内新兴的代码托管平台,功能主要包括:代码托管.在线运行环境.监控代码质量,兼有一定的社 ...
- 如何有规律的备份 WordPress 博客(转)
转自:http://blog.wpjam.com/m/backup-your-blog-regularly/ 我们都知道备份 WordPress 博客应该是规律性的操作,但是事实上往往我们都会因为 ...
- 怎么在阿里云搭建一个WordPress博客(超详细教程)
想以正确的方式启动一个 WordPress 博客吗?我知道,这可能是一个令人恐惧的想法 -- 其实你并不孤单.但是,在帮助很多用户创建博客之后,我决定编写一份详细的指南,让任何没有技术知识的人都能拥有 ...
- 【docker构建】基于docker构建wordpress博客网站平台
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. WordPre ...
- 巨杉Tech | 十分钟快速搭建 Wordpress 博客系统
介绍 很多互联网应用程序开发人员第一个接触到的网站项目就是博客系统.而全球使用最广的Wordpress常常被用户用来快速搭建个人博客网站.默认情况下,Wordpress一般在后台使用MySQL关系型数 ...
随机推荐
- java调用com组件将office文件转换成pdf
在非常多企业级应用中都涉及到将office图片转换成pdf进行保存或者公布的场景,由于pdf格式的文档方便进行加密和权限控制(类似于百度文库).总结起来眼下将office文件转换 成pdf的方法主要有 ...
- Servlet具体解释
Servlet具体解释 基本概述 Session在计算机中,尤其是在网络应用中,称为"会话控制".在计算机专业术语中.Session是指一个终端用户与交互系统进行通信的时间间隔,通 ...
- (WPF)XAML 过程式代码
当代码编译.x:Code 元素的内容将被放到.g.cs文件. <Window x:Class="WpfApplication7.MainWindow" xmlns=" ...
- Struts2 全局结果集
1.index,jsp <body> Result类型 <ol> <li><a href="user/user?type=1">返回 ...
- 记一次httpclient Connection reset问题定位
问题:某业务系统在运行一段时间后,某个API一定概率偶现Connection reset现象. 问题定位: 首先想到的是要本地复现出这个问题,但一直复现不出来. 1.根据线上问题相关日志判断应该是有部 ...
- 字典(dictionary)与映射(map)
1. 字典:key-value 键值对 反转字典:reverse_dict = dict(zip(D.values(), D.keys())) 前提要保证 D 的 value 不会出现重复,因为字典反 ...
- Domino服务器SSL的配置录像
Domino服务器SSL的配置录像 格式:avi, 大小:25M 时长: 6分钟 本文出自 "李晨光原创技术博客" 博客,转载请与作者联系!
- HTTP 各种特性应用(三)
一. 数据协商 分类: 客户端请求: Accept: Accept:表明 我想要什么样的数据 Accept-Encoding:数据是什么样的编码方式 进行传输.主要限制 服务端怎样进行数据的压缩. A ...
- Vue中对data的操作
1. {{a}} var vm = new Vue({ el: '#app', data: { a: { a: 1, b: 2 } } }) vm.a.c = 'sadoisad' // 按理说是 ...
- 参考分享《Python深度学习》高清中文版pdf+高清英文版pdf+源代码
学习深度学习时,我想<Python深度学习>应该是大多数机器学习爱好者必读的书.书最大的优点是框架性,能提供一个"整体视角",在脑中建立一个完整的地图,知道哪些常用哪些 ...