制作 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中的枚举类型enum的使用
这篇文章主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作数据库时的实例,需要的朋友可以参考下 关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始sw ...
- 洛谷 P1209 [USACO1.3]修理牛棚 Barn Repair
P1209 [USACO1.3]修理牛棚 Barn Repair 题目描述 在一个夜黑风高,下着暴风雨的夜晚,farmer John的牛棚的屋顶.门被吹飞了. 好在许多牛正在度假,所以牛棚没有住满. ...
- NYOJ_77 开灯问题
题目地址 分析: 用一个数组来保存每盏灯的操作的次数.推断奇偶就可以推断灯的状态. 最后的输出格式须要注意一下空格的位置,思路就是现输出一个.剩下来的输出在前面加一个空格. 空格用_表示: 1_3_5 ...
- C# Winform利用POST传值方式模拟表单提交数据(Winform与网页交互)
其原理是,利用winfrom模拟表单提交数据.将要提交的參数提交给网页,网页运行代码.得到数据.然后Winform程序将网页的全部源码读取下来.这样就达到windows应用程序和web应用程序之间传參 ...
- java中string与json互相转化
在Java中socket数据传输时,数据类型往往比較难选择.可能要考虑带宽.跨语言.版本号的兼容等问题. 比較常见的做法有两种:一是把对象包装成JSON字符串传输,二是採用java对象的序列化和反序列 ...
- 123.static静态函数和函数模板
#include <iostream> using namespace std; //static成员,每个类型都会实例化,创建一个变量,类型一致则共享,否则不共享 template &l ...
- Day2代码
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #defi ...
- Linux系统消息队列框架Kafka单机安装配置
http://www.ithao123.cn/content-11128587.html
- [React] Write Compound Components
Compound component gives more rendering control to the user. The functionality of the component stay ...
- 菜鸟nginx源代码剖析数据结构篇(七) 哈希表 ngx_hash_t(下)
菜鸟nginx源代码剖析数据结构篇(七) 哈希表 ngx_hash_t(下) Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:B ...