PHP中如何实现Markdown的实时预览

avatar
作者
筋斗云
阅读量:0

在 PHP 中实现 Markdown 的实时预览,可以使用 JavaScript 库(例如:marked.js)和 PHP 解析库(例如:ParsedownMichelf PHP Markdown)结合来实现。

这里是一个简单的示例,展示了如何使用 Parsedown 和 marked.js 实现实时预览:

  1. 首先,下载并包含 Parsedown 库。你可以从这里下载:Parsedown。将 Parsedown.php 文件放入你的项目文件夹中。

  2. 创建一个名为 index.php 的文件,然后添加以下内容:

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Markdown Real-time Preview</title>    <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script> </head> <body>    <textarea id="markdown-input" style="width: 48%; height: 300px;" oninput="updatePreview();" placeholder="Type your markdown here..."></textarea>     <div id="preview" style="width: 48%; height: 300px; border: 1px solid #ccc; padding: 10px; overflow-y: scroll;"></div>      <?php         require_once 'Parsedown.php';         $parsedown = new Parsedown();                  if (isset($_POST['markdown'])) {             echo<script>document.getElementById("markdown-input").value = ' . json_encode($_POST['markdown']) . '; updatePreview();</script>';         }     ?>      <form method="post">        <input type="hidden" name="markdown" id="markdown-hidden">        <button type="submit">Submit</button>     </form>     <script>         function updatePreview() {             const markdownInput = document.getElementById('markdown-input');             const preview = document.getElementById('preview');             const markdownHidden = document.getElementById('markdown-hidden');                          const markdownText = markdownInput.value;             const html = marked(markdownText);                          preview.innerHTML = html;             markdownHidden.value = markdownText;         }     </script> </body> </html> 

这个示例中,我们使用了一个文本区域(<textarea>)来输入 Markdown 文本,并在输入时实时更新预览。我们使用 marked.js 库将 Markdown 转换为 HTML,并将其显示在名为 “preview” 的 <div> 元素中。

当用户单击 “Submit” 按钮时,表单将提交到 PHP 脚本,你可以在其中处理 Markdown 数据(例如将其保存到数据库中)。在这个示例中,我们只是将 Markdown 文本存储在一个隐藏的输入字段中,以便在页面重新加载时保留它。

请注意,这个示例仅用于演示目的。在生产环境中,你需要对用户输入进行验证和清理,以确保安全性。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!