用php将markdown转html代码_使用PHP编译Markdown成为HTML代码的基本思路

Github Reference:传送门

1.从前端获得Markdown原始数据:

$s_markdown = $this->input->expectType('p:markdown', 'string', '');

2.将原文中的水平制表符\t替换成空格,去除换行符\r:

private function initText($text) { $text = str_replace(array("\t", "\r"), array(' ', ''), $text); return $text; }

3.处理所有的Mark符号,转变为HTML标签(例):

$text = preg_replace_callback( "/!\[((?:[^\]]|\\\\\]|\\\\\[)*?)\]\(((?:[^\)]|\\\\\)|\\\\\()+?)\)/",

function ($matches) use ($self)

{ $escaped = $self->escapeBracket($matches[1]);

$url = $self->escapeBracket($matches[2]);

$url = $self->cleanUrl($url);

return $self->makeHolder( "\"{$escaped}\"" ); },

$text );

4.添加脚注:

$html .= '


  1. ';

$index = 1;

while ($val = array_shift($this->_footnotes))

{

if (is_string($val))

{

$val .= " ";

}

else

{

$val[count($val) - 1] .= " ";

$val = count($val) > 1 ? $this->parse(implode("\n", $val)) : $this->parseInline($val[0]);

}

$html .= "

{$val}"; $index ++; }

$html .= '

';

5.将以上转换方法声明为重载函数,递归调用:

public function makeHtml($text)

{ $text = $this->initText($text);

$html = $this->parse($text);

$html = $this->makeFootnotes($html);

return $this->call('makeHtml', $html);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值