{"id":1437,"date":"2022-07-12T02:16:47","date_gmt":"2022-07-11T17:16:47","guid":{"rendered":"https:\/\/hi3103.net\/notes\/?p=1437"},"modified":"2022-07-12T02:39:31","modified_gmt":"2022-07-11T17:39:31","slug":"%e3%81%af%e3%81%a6%e3%81%aa%e8%a8%98%e6%b3%95%e3%81%a7%e6%9b%b8%e3%81%8b%e3%82%8c%e3%81%9f%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92-markdown-%e3%81%ab%e5%a4%89","status":"publish","type":"post","link":"https:\/\/hi3103.net\/notes\/web\/1437","title":{"rendered":"\u306f\u3066\u306a\u8a18\u6cd5\u3067\u66f8\u304b\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092 Markdown \u306b\u5909\u63db\u3059\u308bPHP\u30b9\u30af\u30ea\u30d7\u30c8"},"content":{"rendered":"<h3>\u76ee\u7684\u30fb\u80cc\u666f<\/h3>\n<ul>\n<li>\u4eca\u307e\u3067 WordPress \u306e\u6295\u7a3f\u672c\u6587\u3067\u300c\u306f\u3066\u306a\u8a18\u6cd5\u300d\u3092\u4f7f\u3063\u3066\u3044\u305f\u304c\u3001\u4eca\u5f8c\u306f\u300cMarkdown\u300d\u3067\u66f8\u3044\u3066\u3044\u304f\u3053\u3068\u306b\u3057\u305f\n<ul>\n<li><a href=\"https:\/\/hi3103.net\/notes\/web\/1434\">WordPress Classic Editor \u3067 Markdown \u8a18\u6cd5\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u3059\u308b<\/a><\/li>\n<\/ul>\n<\/li>\n<li>\u305d\u308c\u306b\u3042\u305f\u308a\u3001\u65e2\u5b58\u306e\u8a18\u4e8b\u3082\u300cMarkdown\u300d\u306b\u5909\u63db\u3057\u3066\u4e2d\u8eab\u3092\u7f6e\u304d\u63db\u3048\u305f\u3044\n<ul>\n<li>\u304c\u3001\u3044\u3044\u611f\u3058\u306e\u30d1\u30fc\u30b5\u30fc\u304c\u898b\u3064\u304b\u3089\u305a<\/li>\n<li>\u624b\u4f5c\u696d\u306f\u30a4\u30e4\u306a\u306e\u3067\u3001\u81ea\u5bb6\u88fd\u30b4\u30ea\u62bc\u3057\u7f6e\u63db\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4f5c\u308b\u3053\u3068\u306b\u3057\u305f<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<h3>\u524d\u63d0\u6761\u4ef6<\/h3>\n<h4>\u7528\u610f\u3059\u308b\u3082\u306e<\/h4>\n<p>\u306f\u3066\u306a\u8a18\u6cd5\u3067\u66f8\u304b\u308c\u305f .txt \u30d5\u30a1\u30a4\u30eb<\/p>\n<h4>\u4f5c\u6210\u3059\u308b\u3082\u306e<\/h4>\n<p>Markdown\u8a18\u6cd5\u3067\u66f8\u304b\u308c\u305f .md \u30d5\u30a1\u30a4\u30eb<\/p>\n<h4>\u5b9f\u884c\u74b0\u5883<\/h4>\n<p>VirtualBox \u4e0a\u306b\u7acb\u3066\u305f\u4eee\u60f3\u30b5\u30fc\u30d0\u30fc\uff08\u672c\u30b5\u30a4\u30c8\u306e\u30c6\u30b9\u30c8\u74b0\u5883\uff09<\/p>\n<ul>\n<li>CentOS 7<\/li>\n<li>PHP8<\/li>\n<\/ul>\n<h3>\u514d\u8cac\u4e8b\u9805<\/h3>\n<ul>\n<li>\u672c\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u4f5c\u6210\u306b\u3042\u305f\u3063\u3066\u306f\u3001\u4ee5\u4e0b\u306e\u30de\u30a4\u30f3\u30c9\u3067\u81e8\u3093\u3067\u3044\u307e\u3059\u3002\n<ul>\n<li>1\u56de\u304d\u308a\u3057\u304b\u4f7f\u308f\u306a\u3044\u306e\u3067\u3001\u3068\u306b\u304b\u304f\u5909\u63db\u3067\u304d\u308a\u3083\u3044\u3044<\/li>\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u304b\u52d5\u4f5c\u306e\u8ca0\u8377\u3068\u304b\u8003\u3048\u306a\u3044<\/li>\n<li>PHP \u306e\u66f8\u304d\u65b9\u30a4\u30de\u30a4\u30c1\u304b\u3082\u3057\u308c\u3093\u3051\u3069\u30a8\u30e9\u30fc\u5410\u3044\u3066\u306a\u304d\u3083\u3048\u3048\u3084\u308d\n<ul>\n<li>\u4eca\u56de\u521d\u3081\u3066 Class \u5ba3\u8a00\u3092\u66f8\u304d\u307e\u3057\u305f<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\u3088\u3063\u3066\u3001\u672c\u30b9\u30af\u30ea\u30d7\u30c8\u306b\u3064\u3044\u3066\u306f\u4e00\u5207\u306e\u52d5\u4f5c\u4fdd\u8a3c\u3092\u3057\u307e\u305b\u3093\u3002<\/li>\n<li>\u307e\u305f\u3001\u672c\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u4f7f\u7528\u306b\u4f34\u3044\u4e0d\u5229\u76ca\u30fb\u4e0d\u90fd\u5408\u7b49\u304c\u751f\u3058\u305f\u5834\u5408\u3082\u3001\u4e00\u5207\u306e\u8cac\u4efb\u3092\u8ca0\u3044\u307e\u305b\u3093\u3002<\/li>\n<\/ul>\n<h3>\u5bfe\u5fdc\u7bc4\u56f2<\/h3>\n<h4>\u81ea\u52d5\u7f6e\u63db\u3059\u308b\u3082\u306e<\/h4>\n<table>\n<thead>\n<tr>\n<th>\u7a2e\u985e<\/th>\n<th>\u306f\u3066\u306a\u8a18\u6cd5<\/th>\n<th>Markdown<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u898b\u51fa\u3057<\/td>\n<td><code>*\u898b\u51fa\u3057<\/code><\/td>\n<td><code># \u898b\u51fa\u3057<\/code><\/td>\n<\/tr>\n<tr>\n<td>\u7b87\u6761\u30ea\u30b9\u30c8<\/td>\n<td><code>-\u30ea\u30b9\u30c8<\/code><\/td>\n<td><code>- \u30ea\u30b9\u30c8<\/code><\/td>\n<\/tr>\n<tr>\n<td>\u6570\u5b57\u30ea\u30b9\u30c8<\/td>\n<td><code>+\u30ea\u30b9\u30c8<\/code><\/td>\n<td><code>1. \u30ea\u30b9\u30c8<\/code><\/td>\n<\/tr>\n<tr>\n<td>\u8907\u6570\u884c\u30b3\u30fc\u30c9<\/td>\n<td><code>&gt;||<\/code> \uff5e <code>||&lt;<\/code><\/td>\n<td><code>&#96;&#96;&#96;<\/code> \uff5e <code>&#96;&#96;&#96;<\/code><\/td>\n<\/tr>\n<tr>\n<td>\u5358\u4e00\u884c\u30b3\u30fc\u30c9<\/td>\n<td><code>&lt;code&gt;\u3042\u3044\u3046\u3048\u304a&lt;\/code&gt;<\/code><\/td>\n<td><code><code>\u3042\u3044\u3046\u3048\u304a<\/code><\/code><\/td>\n<\/tr>\n<tr>\n<td>\u5f15\u7528<\/td>\n<td><code>&gt;&gt;<\/code> \uff5e <code>&lt;&lt;<\/code><\/td>\n<td><code>&gt; 1\u884c\u5206\u306e\u6587\u7ae0<\/code><\/td>\n<\/tr>\n<tr>\n<td>\u5f37\u8abf<\/td>\n<td><code>&lt;strong&gt;\u3042\u3044\u3046\u3048\u304a&lt;\/strong&gt;<\/code><\/td>\n<td><code>**\u3042\u3044\u3046\u3048\u304a**<\/code><\/td>\n<\/tr>\n<tr>\n<td>\u30ea\u30f3\u30af<\/td>\n<td><code>[https:\/\/\uff5e:title=\u3042\u3044\u3046\u3048\u304a]<\/code><\/td>\n<td><code>[\u3042\u3044\u3046\u3048\u304a](https:\/\/\uff5e)<\/code><\/td>\n<\/tr>\n<tr>\n<td>\u30ea\u30f3\u30af\uff08URL\u306e\u307f\uff09<\/td>\n<td><code>[https:\/\/\uff5e]<\/code><\/td>\n<td><code>[https:\/\/\uff5e](https:\/\/\uff5e)<\/code><\/td>\n<\/tr>\n<tr>\n<td>\u7d9a\u304d\u3092\u8aad\u3080<\/td>\n<td><code>====<\/code><\/td>\n<td><code>&lt;!--more--&gt;<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>\u624b\u4f5c\u696d\u3067\u5bfe\u5fdc\u3059\u308b\u3082\u306e<\/h4>\n<ul>\n<li>\u8868\u8a18\u6cd5\n<ul>\n<li>\u30b3\u30c4\u30b3\u30c4\u76f4\u3057\u305f\u307b\u3046\u304c\u65e9\u3044\u3068\u5224\u65ad<\/li>\n<\/ul>\n<\/li>\n<li>\u811a\u6ce8\u8a18\u6cd5\n<ul>\n<li>\u5bfe\u5fdc\u3059\u308b\u8a18\u6cd5\u304c\u306a\u3044\u306e\u3067\u3001\u5185\u5bb9\u306b\u5fdc\u3058\u3066\u6587\u4e2d\u306b\u843d\u3068\u3057\u3053\u307f<\/li>\n<\/ul>\n<\/li>\n<li>\u6539\u884c\u306e\u8abf\u6574\n<ul>\n<li>\u30ea\u30b9\u30c8\u306e\u76f4\u5f8c\u306b\u898b\u51fa\u3057\u306a\u3069\u304c\u6539\u884c\u306a\u3057\u3067\u7d9a\u304f\u3068 li \u8981\u7d20\u306e\u4e2d\u306b\u5165\u3063\u3066\u3057\u307e\u3046\u306a\u3069\u3001\u5fae\u5999\u306b\u5d29\u308c\u308b\u90e8\u5206\u3092\u9069\u5b9c\u8abf\u6574<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>\u6210\u679c\u7269<\/h3>\n<h4>\u30d5\u30a1\u30a4\u30eb\u4e00\u89a7<\/h4>\n<ul>\n<li><code>md<\/code> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n<ul>\n<li>\u5909\u63db\u5f8c\u306e .md \u30d5\u30a1\u30a4\u30eb\u304c\u4fdd\u5b58\u3055\u308c\u308b\u5834\u6240<\/li>\n<\/ul>\n<\/li>\n<li><code>txt<\/code> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n<ul>\n<li>\u5909\u63db\u524d\u306e .txt \u30d5\u30a1\u30a4\u30eb\u3092\u914d\u7f6e\u3059\u308b\u5834\u6240<\/li>\n<\/ul>\n<\/li>\n<li><code>index.php<\/code>\n<ul>\n<li>\u5b9f\u884c\u30d5\u30a1\u30a4\u30eb\u672c\u4f53<\/li>\n<\/ul>\n<\/li>\n<li><code>txt_import.php<\/code>\n<ul>\n<li>.txt \u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080<\/li>\n<\/ul>\n<\/li>\n<li><code>hatena_md.php<\/code>\n<ul>\n<li>\u306f\u3066\u306a\u8a18\u6cd5\u304b\u3089Markdown\u3078\u5909\u63db\u3059\u308b<\/li>\n<\/ul>\n<\/li>\n<li><code>md_export.php<\/code>\n<ul>\n<li>.md \u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304d\u51fa\u3059<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>\u4f7f\u3044\u65b9<\/h4>\n<ol>\n<li><code>txt<\/code> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b .txt \u30d5\u30a1\u30a4\u30eb\u3092\u8a2d\u7f6e<\/li>\n<li><code>index.php<\/code> \u3067\u914d\u7f6e\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3092\u914d\u5217\u306b\u683c\u7d0d<\/li>\n<li>\u30d6\u30e9\u30a6\u30b6\u304b\u3089 <code>index.php<\/code> \u306b\u30a2\u30af\u30bb\u30b9<\/li>\n<li><code>md<\/code> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b .md \u30d5\u30a1\u30a4\u30eb\u304c\u51fa\u529b\u3055\u308c\u308b<\/li>\n<\/ol>\n<h4>\u30c7\u30e2\u52d5\u753b<\/h4>\n<p>Premiere Pro \u306e\u7fd2\u4f5c\u304c\u3066\u3089\u30c7\u30e2\u52d5\u753b\u4f5c\u3063\u3066\u307f\u307e\u3057\u305f\u3002\u7d041\u5206\u3002<br \/>\n\u97f3\u58f0\u8aad\u307f\u4e0a\u3052\u306f\u300c<a href=\"https:\/\/ondoku3.com\/ja\/\">\u97f3\u8aad\u3055\u3093<\/a>\u300d\u3092\u5229\u7528\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<div class=\"embed-responsive\"><iframe loading=\"lazy\" title=\"\u306f\u3066\u306a\u8a18\u6cd5\u3067\u66f8\u304b\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092 Markdown \u306b\u5909\u63db\u3059\u308bPHP\u30b9\u30af\u30ea\u30d7\u30c8\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/iGFqXSFVMgU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<h4>\u30bd\u30fc\u30b9<\/h4>\n<h5>index.php<\/h5>\n<pre><code class=\"language-php\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"ja\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;2201-\u306f\u3066\u306a\u8a18\u6cd5\u3092Markdown\u306b\u5909\u63db&lt;\/title&gt;\n    &lt;style&gt;\n        pre{\n            background-color: #EEF;\n            padding: 1em;\n        }\n    &lt;\/style&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n&lt;h1&gt;2201-\u306f\u3066\u306a\u8a18\u6cd5\u3092Markdown\u306b\u5909\u63db&lt;\/h1&gt;\n&lt;?php\n\/\/\u5404\u30d5\u30a1\u30a4\u30eb\u306e\u547c\u3073\u51fa\u3057\nrequire_once 'txt_import.php';\nrequire_once 'hatena_md.php';\nrequire_once 'md_export.php';\n\n\/\/\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u751f\u6210\n$ti = new txt_import();\n$hm = new hatena_md();\n$me = new md_export();\n\n\/\/\u5165\u51fa\u529b\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3092\u914d\u5217\u306b\u683c\u7d0d\uff08\u4f8b\uff1a123.txt \u2192 123.md\uff09\n$ids=array(123,456,789);\n\n\/\/1\u30d5\u30a1\u30a4\u30eb\u305a\u3064\u5b9f\u884c\nforeach ($ids as $id) {\n    \/\/\u5165\u529b\u5143\u30d5\u30a1\u30a4\u30eb\n    $ti-&gt;file_dir='txt\/';\/\/\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n    $ti-&gt;file_name=$id;\/\/\u540d\u524d\n    $ti-&gt;file_ex='.txt';\/\/\u62e1\u5f35\u5b50\n\n    \/\/\u51fa\u529b\u5148\u30d5\u30a1\u30a4\u30eb\n    $me-&gt;file_dir='md\/';\/\/\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n    $me-&gt;file_name=$id;\/\/\u540d\u524d\n    $me-&gt;file_ex='.md';\/\/\u62e1\u5f35\u5b50\n\n    \/\/\u8aad\u307f\u8fbc\u307f\u3092\u5b9f\u884c\n    $htn_obj=$ti-&gt;get_txtObj();\n\n    \/\/\u306f\u3066\u306a-&gt;Markdown\u5909\u63db\u3092\u5b9f\u884c\n    $md_obj=$hm-&gt;get_mdObj($htn_obj);\n\n    \/\/\u66f8\u304d\u51fa\u3057\u3092\u5b9f\u884c\n    $me-&gt;data=$md_obj;\n    $me-&gt;save();\n}\n\n\/\/\u78ba\u8a8d\u7528\necho '&lt;pre&gt;';\nvar_dump(array_map('htmlspecialchars', $md_obj));\necho '&lt;\/pre&gt;';\n?&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h5>txt_import.php<\/h5>\n<pre><code class=\"language-php\">&lt;?php\n\/\/\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3093\u3067\u914d\u5217\u306b\u5909\u63db\u3059\u308b\nclass txt_import{\n\n    \/\/variable-----------------------------------------------------------\/\/\n\n    \/\/\u8aad\u307f\u8fbc\u3080\u30d5\u30a1\u30a4\u30eb\n    public $file='';\n    public $file_dir='';\/\/\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n    public $file_name='';\/\/\u540d\u524d\n    public $file_ex='';\/\/\u62e1\u5f35\u5b50\n\n    \/\/\u51fa\u529b\u3059\u308b\u914d\u5217\n    private $txt_obj=array();\n\n    \/\/public-----------------------------------------------------------\/\/\n\n    \/\/\u914d\u5217\u3092\u8fd4\u3059\n    public function get_txtObj(){\n        \/\/\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u53d6\u5f97\n        $this-&gt;get_file();\n\n        \/\/\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3093\u3067\u914d\u5217\u306b\u5909\u63db\n        $this-&gt;import();\n\n        \/\/\u7d50\u679c\u3092\u8fd4\u3059\n        return $this-&gt;txt_obj;\n    }\n\n    \/\/private-----------------------------------------------------------\/\/\n\n    \/*\n    \u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u3092\u4f5c\u6210\n    *\/\n    private function get_file(){\n        $str=$this-&gt;file_dir.$this-&gt;file_name.$this-&gt;file_ex;\n        $this-&gt;file=$str;\n        return;\n    }\n\n    \/*\n    \u30c6\u30ad\u30b9\u30c8\u3092\u914d\u5217\u306b\u5909\u63db\n    *\/\n    private function convert_txtToArr($text,$letter){\n        if($letter=='\\n'){\n            $lines=explode(\"\\n\", $text);\/\/\u884c\u3067\u5206\u5272\n        }else{\n            $lines=explode($letter, $text);\/\/\u6587\u5b57\u3067\u5206\u5272\n        }\n        \/\/ $lines=array_map('trim', $lines); \/\/ \u5404\u884c\u306btrim()\u3092\u304b\u3051\u308b\n        \/\/ $lines=array_filter($lines, 'strlen'); \/\/ \u6587\u5b57\u6570\u304c0\u306e\u884c\u3092\u53d6\u308a\u9664\u304f\n        \/\/ $lines=array_values($lines); \/\/ \u3053\u308c\u306f\u30ad\u30fc\u3092\u9023\u756a\u306b\u632f\u308a\u306a\u304a\u3057\u3066\u308b\u3060\u3051\n        return $lines;\n    }\n\n    \/*\n    \u30d5\u30a1\u30a4\u30eb\u304b\u3089\u30c6\u30ad\u30b9\u30c8\u3092\u53d6\u5f97\uff06\u914d\u5217\u306b\u683c\u7d0d\n    *\/\n    private function import(){\n        $text='';\n        if(file_exists($this-&gt;file)){\n            $text=file_get_contents($this-&gt;file);\n        }\n        $this-&gt;txt_obj=$this-&gt;convert_txtToArr($text,'\\n');\n        return;\n    }\n\n}<\/code><\/pre>\n<h5>hatena_md.php<\/h5>\n<pre><code class=\"language-php\">&lt;?php\n\/\/\u914d\u5217\u306b\u683c\u7d0d\u3055\u308c\u305f\u306f\u3066\u306a\u8a18\u6cd5\u306e\u30c6\u30ad\u30b9\u30c8\u3092Markdown\u306b\u5909\u63db\nclass hatena_md{\n\n    \/\/variable-----------------------------------------------------------\/\/\n\n    \/\/\u5909\u63db\u524d\u30c7\u30fc\u30bf\n    public $htn_obj=array();\n\n    \/\/\u5909\u63db\u5f8c\u30c7\u30fc\u30bf\n    public $md_obj=array();\n\n    \/\/\u30de\u30c3\u30c1\u30f3\u30b0\u7528\u6b63\u898f\u8868\u73fe\n    private $reg_hl='\/^(\\*{1,3})([^\\*]+.+)$\/';\/\/\u898b\u51fa\u3057\n    private $reg_ul='\/^(\\-{1,3})([^\\-]+.+)$\/';\/\/\u7b87\u6761\u30ea\u30b9\u30c8\n    private $reg_ol='\/^(\\+{1,3})([^\\+]+.+)$\/';\/\/\u6570\u5b57\u30ea\u30b9\u30c8\n    private $reg_more='\/^\\={4,}$\/';\/\/\u3082\u3063\u3068\u8aad\u3080\u533a\u5207\u308a\n    private $reg_preStart='\/^&gt;\\|([a-z]+)?\\|$\/';\/\/\u8907\u6570\u884c\u30b3\u30fc\u30c9\u958b\u59cb\n    private $reg_preEnd='\/^\\|{2}&lt;$\/';\/\/\u8907\u6570\u884c\u30b3\u30fc\u30c9\u7d42\u4e86\n    private $reg_quoteStart='\/^&gt;{2}$\/';\/\/\u5f15\u7528\u30d6\u30ed\u30c3\u30af\u958b\u59cb\n    private $reg_quoteEnd='\/^&lt;{2}$\/';\/\/\u5f15\u7528\u30d6\u30ed\u30c3\u30af\u7d42\u4e86\n\n    \/\/\u30de\u30c3\u30c1\u30f3\u30b0\u7528\u6b63\u898f\u8868\u73fe\uff08\u30a4\u30f3\u30e9\u30a4\u30f3\uff09\n    private $reg_th='\/[^\\|]*(\\|\\*)[^\\|]+\\|\/';\/\/\u8868\u898b\u51fa\u3057\u30bb\u30eb\n    private $reg_strong='\/&lt;\\\/?strong&gt;\/';\/\/\u5f37\u8abf\n    private $reg_code='\/&lt;\\\/?code&gt;\/';\/\/\u5358\u4e00\u884c\u30b3\u30fc\u30c9\n    private $reg_link='\/\\[(https?:\\\/\\\/)?([^:]+)(:{1,2})title=([^\\]]+)\\]\/';\/\/\u30c6\u30ad\u30b9\u30c8\u30ea\u30f3\u30af\n    private $reg_link_url='\/\\[(https?:\\\/\\\/[^\\]]+)\\]$\/';\/\/\u30c6\u30ad\u30b9\u30c8\u30ea\u30f3\u30af\uff08URL\u306e\u307f\uff09\n\n    \/\/\u4e00\u6642\u4fdd\u5b58\u60c5\u5831\n    private $tmp_text='';\/\/\u5909\u63db\u3059\u308b\u30c6\u30ad\u30b9\u30c8\n    private $tmp_matches='';\/\/\u30de\u30c3\u30c1\u3057\u305f\u7d50\u679c\n    private $tmp_flg=0;\/\/\u6b63\u898f\u8868\u73fe\u306b\u30de\u30c3\u30c1\u3059\u308b\u304b\u3069\u3046\u304b\n    private $tmp_tag='';\/\/\u30de\u30c3\u30c1\u3057\u305f\u30bf\u30b0\u306e\u7a2e\u985e\n    private $tmp_isPre=0;\/\/pre\u306e\u4e2d\u8eab\u304b\u3069\u3046\u304b\n    private $tmp_isQuote=0;\/\/blockquote\u306e\u4e2d\u8eab\u304b\u3069\u3046\u304b\n\n    \/\/public-----------------------------------------------------------\/\/\n\n    \/\/\u914d\u5217\u3092\u8fd4\u3059\n    public function get_mdObj($obj){\n        $this-&gt;htn_obj=$obj;\n\n        $this-&gt;process();\n\n        return $this-&gt;md_obj;\n    }\n\n    \/\/private-----------------------------------------------------------\/\/\n\n    \/*\n    \u306f\u3066\u306a\u8a18\u6cd5\u3092Markdown\u306b\u5909\u63db\n    *\/\n    private function process(){\n        $result=array();\n        foreach ($this-&gt;htn_obj as $key =&gt; $text) {\n            $this-&gt;tmp_text=$text;\n            $result[$key]=$this-&gt;convert($text);\n        }\n        $this-&gt;md_obj=$result;\n        return;\n    }\n\n    \/*\n    \u6b63\u898f\u8868\u73fe\u30d1\u30bf\u30fc\u30f3\u30ea\u30b9\u30c8\u3092\u4f5c\u6210\n    *\/\n    private function set_patterns($num){\n        $patterns=array();\n        if($num===1){\/\/\u30d1\u30bf\u30fc\u30f31\n            $patterns=array(\n                'hl' =&gt; $this-&gt;reg_hl,\n                'ul' =&gt; $this-&gt;reg_ul,\n                'ol' =&gt; $this-&gt;reg_ol,\n                'more' =&gt; $this-&gt;reg_more,\n                'preStart' =&gt; $this-&gt;reg_preStart,\n                'preEnd' =&gt; $this-&gt;reg_preEnd,\n                'quoteStart' =&gt; $this-&gt;reg_quoteStart,\n                'quoteEnd' =&gt; $this-&gt;reg_quoteEnd,\n            );\n        }elseif($num===2){\/\/\u30d1\u30bf\u30fc\u30f32\n            $patterns=array(\n                'th' =&gt; $this-&gt;reg_th,\n                'strong' =&gt; $this-&gt;reg_strong,\n                'code' =&gt; $this-&gt;reg_code,\n                'link' =&gt; $this-&gt;reg_link,\n                'link_url' =&gt; $this-&gt;reg_link_url,\n            );\n        }\n        return $patterns;\n    }\n\n    \/*\n    1\u884c\u5358\u4f4d\u3067\u5909\u63db\u5b9f\u884c\n    *\/\n    private function convert(){\n        \/\/\u30d1\u30bf\u30fc\u30f31\u3067\u30c1\u30a7\u30c3\u30af\u2192\u7f6e\u63db\u5b9f\u884c\n        $this-&gt;check_all(1);\n        $this-&gt;tmp_text=$this-&gt;run_replace();\n\n        \/\/\u30d1\u30bf\u30fc\u30f32\u3067\u30c1\u30a7\u30c3\u30af\u2192\u7f6e\u63db\u5b9f\u884c\n        \/\/\u30d1\u30bf\u30fc\u30f32\u306b\u95a2\u3057\u3066\u306f1\u884c\u306b\u5bfe\u3057\u3066\u5168\u90e8\u30c1\u30a7\u30c3\u30af\u30af\u30ea\u30a2\u3059\u308b\u307e\u3067\u7e70\u308a\u8fd4\u3057\u51e6\u7406\u3057\u7d9a\u3051\u308b\n        $this-&gt;check_all(2);\n        if($this-&gt;tmp_flg){\n            while($this-&gt;tmp_flg==2){\n                $this-&gt;check_all(2);\n                $this-&gt;tmp_text=$this-&gt;run_replace();\n            }\n        }\n\n        if($this-&gt;tmp_isQuote &amp;&amp; !empty($this-&gt;tmp_text)){\n            $this-&gt;tmp_text='&gt; '. $this-&gt;tmp_text;\n        }\n\n        return $this-&gt;tmp_text;\n    }\n\n    \/*\n    \u6b63\u898f\u8868\u73fe\u3067\u30c1\u30a7\u30c3\u30af\n    *\/\n    private function check($pattern){\n        preg_match($pattern, $this-&gt;tmp_text, $matches);\n        $this-&gt;tmp_matches=$matches;\n        return;\n    }\n    \/\/\u8907\u6570\u30d1\u30bf\u30fc\u30f3\u3092\u4e00\u6c17\u306b\u30c1\u30a7\u30c3\u30af\n    private function check_all($num){\n        $patterns=$this-&gt;set_patterns($num);\n        $this-&gt;tmp_flg=0;\n        foreach ($patterns as $key =&gt; $pattern) {\n            if(!$this-&gt;tmp_flg){\n                $this-&gt;check($pattern);\n                if($this-&gt;tmp_matches){\n                    $this-&gt;tmp_flg=$num;\n                    $this-&gt;tmp_tag=$key;\n                }\n            }\n        }\n        return;\n    }\n\n    \/*\n    \u6b63\u898f\u8868\u73fe\u3067\u7f6e\u63db\n    *\/\n    \/\/\u7f6e\u63db\u5b9f\u884c\n    private function run_replace(){\n        $str='';\n        if($this-&gt;tmp_flg){\n            $str=$this-&gt;replace($this-&gt;tmp_matches);\n        }else{\n            $str=$this-&gt;tmp_text;\n        }\n        return $str;\n    }\n    \/\/\u5bfe\u5fdc\u30d1\u30bf\u30fc\u30f3\u767b\u9332\n    private function replace($matches){\n        if($this-&gt;tmp_flg==1){\n            if($this-&gt;tmp_tag==='hl') return $this-&gt;replace_hl($matches[1],$matches[2]);\n            if($this-&gt;tmp_tag==='ul') return $this-&gt;replace_ul($matches[1],$matches[2]);\n            if($this-&gt;tmp_tag==='ol') return $this-&gt;replace_ol($matches[1],$matches[2]);\n            if($this-&gt;tmp_tag==='more') return $this-&gt;replace_more();\n            if($this-&gt;tmp_tag==='preStart') return $this-&gt;replace_preStart($matches);\n            if($this-&gt;tmp_tag==='preEnd') return $this-&gt;replace_preEnd();\n            if($this-&gt;tmp_tag==='quoteStart') return $this-&gt;replace_quoteStart($matches);\n            if($this-&gt;tmp_tag==='quoteEnd') return $this-&gt;replace_quoteEnd();\n        }elseif($this-&gt;tmp_flg==2){\n            if($this-&gt;tmp_tag==='th') return $this-&gt;replace_th();\n            if($this-&gt;tmp_tag==='strong') return $this-&gt;replace_strong();\n            if($this-&gt;tmp_tag==='code') return $this-&gt;replace_code();\n            if($this-&gt;tmp_tag==='link') return $this-&gt;replace_link($matches);\n            if($this-&gt;tmp_tag==='link_url') return $this-&gt;replace_link_url($matches);\n        }\n    }\n    \/\/\u898b\u51fa\u3057\n    private function replace_hl($m1,$m2){\n        $str=str_replace('*','#',$m1).' '.$m2;\n        return $str;\n    }\n    \/\/\u7b87\u6761\u30ea\u30b9\u30c8\n    private function replace_ul($m1,$m2){\n        $str='';\n        if($m1==='-'){\n            $str='- '.$m2;\n        }elseif($m1==='--'){\n            $str='    - '.$m2;\n        }elseif($m1==='---'){\n            $str='        - '.$m2;\n        }\n        return $str;\n    }\n    \/\/\u6570\u5b57\u30ea\u30b9\u30c8\n    private function replace_ol($m1,$m2){\n        $str='';\n        if($m1==='+'){\n            $str='1. '.$m2;\n        }elseif($m1==='++'){\n            $str='    1. '.$m2;\n        }elseif($m1==='+++'){\n            $str='        1. '.$m2;\n        }\n        return $str;\n    }\n    \/\/\u7b87\u6761\u30ea\u30b9\u30c8\n    private function replace_more(){\n        $str='&lt;!--more--&gt;';\n        return $str;\n    }\n    \/\/\u8907\u6570\u884c\u30b3\u30fc\u30c9\u958b\u59cb\n    private function replace_preStart($m){\n        $str='';\n        if(!$this-&gt;tmp_isPre){\n            if(array_key_exists(1,$m)){\n                $str='```'.$m[1];\n            }else{\n                $str='```';\n            }\n        }else{\n            $str=$this-&gt;tmp_text;\n        }\n        $this-&gt;tmp_isPre=1;\n        return $str;\n    }\n    \/\/\u8907\u6570\u884c\u30b3\u30fc\u30c9\u7d42\u4e86\n    private function replace_preEnd(){\n        $str='';\n        $this-&gt;tmp_isPre=0;\n        if(!$this-&gt;tmp_isPre){\n            $str='```';\n        }else{\n            $str=$this-&gt;tmp_text;\n        }\n        return $str;\n    }\n    \/\/\u5f15\u7528\u30d6\u30ed\u30c3\u30af\u958b\u59cb\n    private function replace_quoteStart($m){\n        $str='';\n        if(!$this-&gt;tmp_isQuote){\n            $str='';\n        }else{\n            $str=$this-&gt;tmp_text;\n        }\n        $this-&gt;tmp_isQuote=1;\n        return $str;\n    }\n    \/\/\u5f15\u7528\u30d6\u30ed\u30c3\u30af\u7d42\u4e86\n    private function replace_quoteEnd(){\n        $str='';\n        $this-&gt;tmp_isQuote=0;\n        if(!$this-&gt;tmp_isQuote){\n            $str='';\n        }else{\n            $str=$this-&gt;tmp_text;\n        }\n        return $str;\n    }\n    \/\/\u8868\u898b\u51fa\u3057\u30bb\u30eb\n    private function replace_th(){\n        $str=$this-&gt;tmp_text;\n        $str=str_replace('|*','|',$str);\n        $str=str_replace('|',' | ',$str);\n        $str=preg_replace('\/^\\s\\|\/', '|', $str);\n        $str=preg_replace('\/\\|\\s$\/', '|', $str);\n        return $str;\n    }\n    \/\/\u5f37\u8abf\n    private function replace_strong(){\n        $str=$this-&gt;tmp_text;\n        $str=str_replace('&lt;strong&gt;','**',$str);\n        $str=str_replace('&lt;\/strong&gt;','**',$str);\n        return $str;\n    }\n    \/\/\u5358\u4e00\u884c\u30b3\u30fc\u30c9\n    private function replace_code(){\n        $str=$this-&gt;tmp_text;\n        $str=str_replace('&lt;code&gt;','`',$str);\n        $str=str_replace('&lt;\/code&gt;','`',$str);\n        return $str;\n    }\n    \/\/\u30c6\u30ad\u30b9\u30c8\u30ea\u30f3\u30af\n    private function replace_link($m){\n        $str=$this-&gt;tmp_text;\n        $str=preg_replace($this-&gt;reg_link, '[$4]($1$2)', $str);\n        return $str;\n    }\n    \/\/\u30c6\u30ad\u30b9\u30c8\u30ea\u30f3\u30af\uff08URL\u306e\u307f\uff09\n    private function replace_link_url($m){\n        $str=$this-&gt;tmp_text;\n        $str=preg_replace($this-&gt;reg_link_url, '[$1]($1)', $str);\n        return $str;\n    }\n}<\/code><\/pre>\n<h5>md_export.php<\/h5>\n<pre><code class=\"language-php\">&lt;?php\n\/\/\u914d\u5217\u3092.md\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u51fa\u3059\nclass md_export{\n    \/\/variable-----------------------------------------------------------\/\/\n\n    \/\/\u8aad\u307f\u8fbc\u3080\u30c7\u30fc\u30bf\n    public $data=array();\n\n    \/\/\u51fa\u529b\u5148\u30d5\u30a1\u30a4\u30eb\n    public $file='';\n    public $file_dir='';\/\/\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n    public $file_name='';\/\/\u540d\u524d\n    public $file_ex='';\/\/\u62e1\u5f35\u5b50\n\n    \/\/public-----------------------------------------------------------\/\/\n\n    \/\/\u306f\u3066\u306a\u8a18\u6cd5\u3092Markdown\u8a18\u6cd5\u306b\u5909\u63db\u3059\u308b\n    public function save(){\n        $this-&gt;get_file();\n        $this-&gt;export();\n    }\n\n    \/\/private-----------------------------------------------------------\/\/\n    \/*\n    \u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u3092\u4f5c\u6210\n    *\/\n    private function get_file(){\n        $str=$this-&gt;file_dir.$this-&gt;file_name.$this-&gt;file_ex;\n        $this-&gt;file=$str;\n        return;\n    }\n\n    \/*\n    \u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304d\u51fa\u3059\n    *\/\n    private function export(){\n        file_put_contents($this-&gt;file,implode(PHP_EOL,$this-&gt;data));\n        echo '&lt;p&gt;'.$this-&gt;file.' \u3092\u4fdd\u5b58\u3057\u307e\u3057\u305f\u3002&lt;\/p&gt;';\n        return;\n    }\n\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u76ee\u7684\u30fb\u80cc\u666f \u4eca\u307e\u3067 WordPress \u306e\u6295\u7a3f\u672c\u6587\u3067\u300c\u306f\u3066\u306a\u8a18\u6cd5\u300d\u3092\u4f7f\u3063\u3066\u3044\u305f\u304c\u3001\u4eca\u5f8c\u306f\u300cMarkdown\u300d\u3067\u66f8\u3044\u3066\u3044\u304f\u3053\u3068\u306b\u3057\u305f WordPress Classic Editor \u3067 Markdown \u8a18\u6cd5\u3092\u4f7f\u3048\u308b\u3088\u3046 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53],"tags":[84,21],"class_list":["post-1437","post","type-post","status-publish","format-standard","hentry","category-web","tag-markdown","tag-php"],"_links":{"self":[{"href":"https:\/\/hi3103.net\/notes\/wp-json\/wp\/v2\/posts\/1437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hi3103.net\/notes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hi3103.net\/notes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hi3103.net\/notes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hi3103.net\/notes\/wp-json\/wp\/v2\/comments?post=1437"}],"version-history":[{"count":0,"href":"https:\/\/hi3103.net\/notes\/wp-json\/wp\/v2\/posts\/1437\/revisions"}],"wp:attachment":[{"href":"https:\/\/hi3103.net\/notes\/wp-json\/wp\/v2\/media?parent=1437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hi3103.net\/notes\/wp-json\/wp\/v2\/categories?post=1437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hi3103.net\/notes\/wp-json\/wp\/v2\/tags?post=1437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}