【发布时间】:2014-07-22 05:45:05
【问题描述】:
我正在使用 PHP 编写博客网络应用程序,我希望博客能够向观众展示一些代码 sn-ps
我使用 Markdown 文件将新文章发布到博客,所以在从 Markdown 转换为 HTML 后,结果应该是这样的
<h3>This is sample HTML Coding</h3>
<pre><code>
<html>
<body>
Hello World
</body>
</html>
</code></pre>
<h3>This is another sample HTML Coding</h3>
<pre><code>
<html>
<body>
Another Hello World
</body>
</html>
</code></pre>
我不能简单地使用像 htmlspecialchars() 这样的 PHP 函数,因为我需要这些函数,例如要呈现的标题和代码块。事实上,我应该只需要转换 在 <code></code>
现在我唯一能想到的就是使用 RegEx,我想出了 2 个方向选择,我认为这是可能的。
-
仅在
李><code></code>之间匹配所有<、>、</,并在每个preg_replace()上使用特殊字符。 匹配每个
<code></code>之间的所有字符(因为我会在每篇文章中使用多个代码块)然后使用preg_replace()和htmlspecialchars()
请指教
- 我应该使用哪个选项?
- 什么是正则表达式来完成这项工作?
附言
我将 Markdown 的 HTML 结果放在regex101.com 我尝试了一些正则表达式,例如(?<=<code>)[<](?=<\/code>)/g 用于选项 1,(?<=<code>)[\s\S]*(?=<\/code>)/g 用于选项 2,但它们都不起作用。
已编辑
这是我希望的结果。
<h3>This is sample HTML Coding</h3>
<pre><code>
<html>
<body>
Hello World
</body>
</html>
</code></pre>
<h3>This is another sample HTML Coding</h3>
<pre><code>
<html>
<body>
Another Hello World
</body>
</html>
</code></pre>
【问题讨论】:
-
上述 html 代码的预期输出是什么?
-
我在编辑部分写了预期的结果,谢谢。
-
@Wyzard,我正在使用 Fat-Free 框架的内置 markdown,我得到了与给定示例一样的转换结果。
标签: php regex htmlspecialchars