PHP:我需要像split()这样的东西,但是
发布时间:2020-12-13 17:12:14 所属栏目:PHP教程 来源:网络整理
导读:所以我实际上存储了一个html字段,但是我想添加一些伪标签以便于发布. I.E.我想将标题/标题包装到此标记中: ... 例如. 我的标题 然后我会枚举它们,格式化并显示下面的文本. 例如.: NewsBreaking news on Sunday.Have been taking hostages.General Informat
所以我实际上存储了一个html字段,但是我想添加一些伪标签以便于发布.
I.E.我想将标题/标题包装到此标记中:<< ...>> 例如. <<我的标题>> 然后我会枚举它们,格式化并显示下面的文本. 例如.: <<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并没有返回regexp匹配本身,所以我对如何提取它感到困惑.也许我需要编写一些自定义函数来返回一个文本和标题数组,而不是常规拆分,但我不知道从哪里开始…… 请帮忙. 解决方法
只是用
$text_a = preg_split('/<<([^>]+)>>/',$text,-1,PREG_SPLIT_DELIM_CAPTURE); 你会在$text_a的奇数索引处找到你的标题标签.假设您要忽略第一个标头之前的内容: $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()? } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |