所以我实际上存储了一个 html 字段,但我想添加一些伪标签以使其更易于发布。IE 我想将标题/标题包装到这个标签中: << ... >> EG << My Header >> 然后我会枚举它们,格式化并显示下面的文本。
例如:
<<News>>
Breaking news on Sunday.
Have been taking hostages.
<<General Information>>
We would want to recieve our blabla.
And you want it.
<<User Suggestions>>
Yeah we want it so much...
实际应该显示:
<H1 class="whatever" ID="Product_Header_1">News<H1>
Breaking news on Sunday.
Have been taking hostages.
<H1 class="whatever" ID="Product_Header_2">General Information</H1>
We would want to recieve our blabla.
And you want it.
<H1 class="whatever" ID="Product_Header_3">User Suggestion</H1>
Yeah we want it so much...
然后应该返回一个包含实际标题及其编号的数组,这样我就可以在页面的其他地方使用它来进行引用。
所以看起来我们可以直接替换它们,但这可能会在枚举和返回值时出现问题,并且在未关闭标签的情况下可能会失败。
或者,将它们分成一个数组,然后手动进行,这似乎是一种更好的方法。
这是我到目前为止所尝试的:
$TEXT_A=preg_split('/<<([^>]+)>>/', $TEXT);
foreach($TEXT_A as $key => $val){
if ($key>0) echo "<br>-!-";
echo $val;
}
其中 $TEXT 是带有伪标签的 HTML 文本。
但是问题是, split 本身并不返回正则表达式匹配,所以我对如何提取它感到困惑。也许我需要编写一些自定义函数来返回一组文本和标题,而不是常规拆分,但我不知道从哪里开始......
请帮忙。