gpt4 book ai didi

PHP:我需要像 split() 这样的东西,但是

转载 作者:可可西里 更新时间:2023-10-31 23:08:30 24 4
gpt4 key购买 nike

所以我实际上存储了一个html字段,但是我想添加一些伪标签以便于发布。IE。我想将标题/标题包装到这个标签中:<< ... >>例如。 <<我的标题>>然后我会枚举它们、格式化并显示下面的文本。

例如:

<<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...

然后应该返回一个包含实际 header 及其编号的数组,这样我就可以在页面的其他地方使用它来进行引用。

所以看起来我们可以直接替换它们,但这可能会在枚举和返回值时出现问题,并且在没有关闭标签的情况下可能会失败。

或者,将它们拆分成一个数组,然后手动进行,这似乎是更好的方法。

这是我到目前为止尝试过的:

$TEXT_A=preg_split('/<<([^>]+)>>/', $TEXT);

foreach($TEXT_A as $key => $val){
if ($key>0) echo "<br>-!-";
echo $val;
}

其中 $TEXT 是带有伪标签的 HTML 文本。

但问题是,split 本身不返回正则表达式匹配项,所以我对如何提取它感到困惑。也许我需要编写一些自定义函数来返回一组文本和标题,而不是常规拆分,但我不知道从哪里开始......

请帮忙。

最佳答案

就用

$text_a = preg_split('/<<([^>]+)>>/', $text, -1, PREG_SPLIT_DELIM_CAPTURE);

您会在 $text_a 的奇数索引处找到标题标签。假设您想忽略第一个 header 之前的内容:

$n = count($text_a);
$head_a = array();
$body_a = array();
for ($i = 1; $i < $n; $i += 2) {
$head_a[] = $text_a[$i];
$body_a[] = $text_a[$i + 1]; // trim()?
}

关于PHP:我需要像 split() 这样的东西,但是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10988029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com