PHP中的简单标记子集功能

PHP中的简单标记子集功能,php,regex,markdown,Php,Regex,Markdown,我只允许使用段落和列表 实际上,我想使用输入创建一个开放文档格式的文档。因此,我用ODF中正确的标记替换标记。但首先,我正在尝试学习如何将降价格式转换为我可以使用的格式 我可以使用MarkdownPHP的输出并将html中的标记替换为ODF标记,但是我只想使用段落和列表。降价产生的利润远远超过我的需要。如果我错过了任何html标记,ODF文档将中断,因为它不理解html标记 我相信可以使用简单的RegExp。但我不知道怎么做 例如: My first line. * My first i

我只允许使用段落和列表

实际上,我想使用输入创建一个开放文档格式的文档。因此,我用ODF中正确的标记替换标记
。但首先,我正在尝试学习如何将降价格式转换为我可以使用的格式

我可以使用MarkdownPHP的输出并将html中的标记替换为ODF标记,但是我只想使用段落和列表。降价产生的利润远远超过我的需要。如果我错过了任何html标记,ODF文档将中断,因为它不理解html标记

我相信可以使用简单的RegExp。但我不知道怎么做

例如:

My first line.

*    My first item.
*    My second item.

More text...
输出:

我的第一行

  • 我的第一项
  • 我的第二项
更多文本

您可以使用删除除所需标记以外的所有标记。它们的内容将保留,但标签本身将被删除

试试这个:

$output = strip_tags($output, "<p><ul><ol><li>");
$output=strip_标签($output,
  • );

从那里,您可以使用将剩余的标记更改为它们的ODF对应项。(如果标记解析器中的标记格式不一致,那么您可以根据具体的输出使用来处理差异)。

根据agentconuntrum的回答,我可以解决这个问题。 但是我需要运行解析器2次,因为在第一次之后,我将有块没有包装

$output = Markdown($output);
$output = strip_tags($output, '<p><ul><ol><li>');
$output = Markdown($output);
$output = strip_tags($output, '<p><ul><ol><li>');
在此之后:

$output = Markdown($output);
$output = strip_tags($output, '<p><ul><ol><li>');
echo $output;
$output=降价($output);
$output=strip_标签($output,
  • ); echo$输出;
我将有以下内容:(注意h1标题)

这是一个H1
这里的段落

  • 列表项
因此,我再次解析输出:

<p>This is an H1</p>

<p>Paragraph here...</p>

<ul>
    <li>List item.</li>
</ul>
这是一个H1

这里的段落

  • 列表项

@Danilo不客气。如果这解决了您的问题,请单击此答案上的复选标记以接受它。:)
This is an H1

<p>Paragraph here...</p>

<ul>
    <li>List item.</li>
</ul>
<p>This is an H1</p>

<p>Paragraph here...</p>

<ul>
    <li>List item.</li>
</ul>