PHP代码:HTML转markdown

目前网上的Markdown相关的转换器和编辑器都是markdown转html。对于web程序已经保存到数据库的html数据如果反解析为markdown则需要一点点小技巧。

我是将保存文章内容的字段分为了content_html和content_text两个字段,content_html存储html数据。content_text存储markdown原始数据。

前端我采用了stackoverflow的pagedown编辑器,可以将markdown转为html。保存的时候两种数据同时存入数据库。修改的时候在前端将修改好的markdown数据也同时更新了html数据。

我们就差一步,如果将以前老的html数据一次性保存到数据库的另外一个content_text字段呢?我用的是Dom Christie哥的to-markdown,一个html转markdown的PHP class。我用如下代码批量的把文章的内容添加上了markdown数据:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
    mysql_connect("localhost", "test", "111111") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("test");
    mysql_query("set names utf8");
    require_once(dirname(__FILE__) . '/HTML_To_Markdown.php');
    //连接数据库
    require_once 'conn.php';
    $query = sprintf("select * from posts");
    $r = mysql_query($query);
    $i=0;
    while($row = mysql_fetch_assoc($r))
    {
        $markdown = new HTML_To_Markdown($row['content_html']);
        $markdown = addslashes($markdown);
        $result = mysql_query($q = sprintf("update posts set content_text='%s' where id=%s",$markdown, $row["id"]));
        if($result)
        {
            echo '保存成功'.$row["id"];
        }
        else
        {
            echo '保存失败'.$row["id"];
        }
    }

F3小保养

109974KM

在亮洁小保养

换:壳牌(Shell) 10W-40 HX5黄喜力 ¥129 机油滤 汽油滤 工时:¥50

F3提速肉

109300

高高兴兴去上班,走到半道突然发现车子无法提速,最大油门不加速了。

换缸线x1x100(成本80)

点火线圈x2x135(成本80)

清洗油路220

共580

换空调滤芯、空气滤芯

其中清洗油路是冤枉钱