写博客其实已经好久了,但一直没找到舒服的写博方式,今天在转CSDN,看到CSDN的博客也可以用MARKDOWN下了,瞬间想要把以前的博客转过来的冲动,所以就花了些时间写了个程序自动搬迁了,程序很简单,只是为了记录下来,日后还会搬迁一些其他的博客内容不是?

解决方案
先看下目录结构

HTTRequest.php 用于网络数据请求、抓取等的封装类(做过模拟请求的应该都知道)
CSDN.php 用于自动发布 csdn markdown 博客
demo.php 执行程序,可在 cli 下执行 php demo.php 测试(这里以 gitblog 的博客为例)

接下来看 CSDN.php

<?php
class csdn
{public function publish($data, $type = 'original'){$uri = '/mdeditor/setArticle';// 发布博客的URI$data['type'] = $type;// 类型,原创(original),转载,翻译$data['status'] = 0;$data['level'] = 0;$data['channel'] = 17;$data['type'] = 'original';$data['articleedittype'] = 1;return $this->request($uri, $data);}private function request($uri, $data = null){$httpRequest = new HTTPRequest('write.blog.csdn.net');$httpRequest->setRequestUri($uri);if($data) {$httpRequest->setType('POST');$httpRequest->setData($data);}       $httpRequest->setHeader('Referer', 'http://write.blog.csdn.net/mdeditor');$httpRequest->setHeader('cookie', '这里保证是你自己的博客COOKIE');$httpRequest->execute();return $httpRequest->getResponseText();}
}

调用方式

include_once('HTTPRequest.php'); include_once('csdn.php'); $csdn = new csdn; $post['title'] = urlencode('this is title'); $post['markdowncontent'] = urlencode('this is markdowncontent'); $post['content'] = urlencode('this is content'); $post['tags'] = urlencode('this is tags'); $post['description'] = urlencode('this is description'); $post['categories'] = urlencode('this is categories'); $result = $csdn->publish($post);

然后就可以根据 result 来判断是否发布成功了,比如如下方式

$result = json_decode($csdn->publish($post), 1);
if($result['status'] == 'success') {echo 'publish success' . PHP_EOL;
} else {echo 'publish failed' . PHP_EOL;file_put_contents('log.txt', $val, FILE_APPEND);
}

将 gitblog 的博客内容搬迁到 CSDN相关推荐

  1. python爬虫爬取csdn博客专家所有博客内容

    python爬虫爬取csdn博客专家所有博客内容: 全部过程采取自动识别与抓取,抓取结果是将一个博主的所有 文章存放在以其名字命名的文件内,代码如下 #coding:utf-8import urlli ...

  2. 关于hexo更新到GitHub后博客内容未变问题

    网站修改和更新文章后,在本地用 hexo s 预览也没有问题,但部署到了GitHub后却发现自己的博客网站内容仍然没有变化.找了一中午终于找到了原因所在. 最开始更新完毕确认检查后,使用 hexo d ...

  3. 声明:博客内容不得用于商业用途,仅做学习交流。

    博客内容非原创,是博主自身在学习linux过程中收集和整理的优秀案例.

  4. 已经不再这里更新博客了,更多博客内容可以去gayhub看看

    已经不再这里更新博客了,更多博客内容可以去gayhub看看

  5. 如何原封不动地转载他人博客内容

      对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面, ...

  6. 菊子曰备份Wordpress网站的博客内容出错的解决办法(原创)

    今天用菊子曰备份Wordpress网站的博客内容出错,我采用的wordpress是最新的3.2.1版本,出现如下的错误信息: 1. Access violation at address 1471C1 ...

  7. 第100篇博客——用Python爬取我前99篇博客内容,分词并生成词云图

    这是我的第100篇博客,从2016年7月1日发表第一篇博客至今,也有两个多年头了. 回首自己前99篇博客,各种类型都有,有技术总结,有随感,有读书笔记,也有BUG修改.内容千奇百怪,质量参差不齐,篇幅 ...

  8. csdn博客内容首行缩进

    csdn首行缩进   在使用markdown语法编写博客时,就算敲了多个空格或者制表符,也会当作一个空格处理,无法达到缩进的效果.可以使用html中的特殊空格字符达到缩进的效果. 1. 空格符   N ...

  9. 如何用 Windows Live Writer 和 Word 2013 分别发表博客到Cnblog 和CSDN

    ps CSDN 老是505错误,放弃了 为什么会写这篇 最近写博客在 Cnblog 上面写博客, 发现图片不能复制了直接粘贴上,这对于把博客当随手笔记的人来说无疑非常痛苦.求助于博客园,他们让我用 W ...

最新文章

  1. 计算机组成原理——I/O设备(外部设备)、I/O接口
  2. Go进阶(6): uuid生成及其作用
  3. 线性代数---向量问题的求解方法
  4. 随机化快速排序+快速选择 复杂度证明+运行测试
  5. SQL数据库相关 FMDB框架的使用
  6. 使用plsql管理oracle数据库连接,使用PLSQL连接远程oracle数据库
  7. 什么是计算机病毒?中国黑客教父告诉你
  8. MMORPG游戏框架图
  9. JSP和Servlet传值中文乱码解决
  10. proteus仿真电路连线
  11. 《大数据之路:阿里巴巴大数据实践》-第3篇 数据管理篇 -第14章 存储和成本管理
  12. Vision Transformer模型/论文详解
  13. IOS TalkingData实现数据监控
  14. Unity 基础 之 使用 Display 简单的实现 多屏幕显示的效果
  15. Polish calculation
  16. 玩转Jetson AGX Orin官方套件
  17. matlab中匿名(Anonymous)函数及bsxfun函数
  18. 如何keil4下面创建工程?
  19. 1.3 万亿条数据查询,如何做到毫秒级响应?
  20. PG用户default privileges授权不生效?

热门文章

  1. c语言考试题及答案 大一,大一C语言期末考试试题
  2. .net 怎么在控制器action中返回一个试图_一个view事件分发,面试官6连问直击灵魂,我被虐的体无完肤...
  3. tp5 日期范围查询_VB实战应用 | 如何巧妙解决日期范围查询问题
  4. input date保存值_涛哥文集(36):R keras保存和还原模型
  5. cmd c语言 文件,DSP,如何编写CMD文件!(转)
  6. java项目使用mybatis
  7. Nginx开启/关闭Core文件及调试
  8. 《深入理解Nginx 模块开发与架构解析》之高级数据结构摘录
  9. 玩转Linux必备知识(二)
  10. (三)协同过滤算法之基于物品的推荐算法python实现