分离富文本可以通过以下步骤实现:
- 首先,将富文本内容按照换行符分割成多行字符串。
- 然后,遍历每一行字符串,判断是否包含代码块。如果包含,则将该行字符串及其后续所有字符串合并为一个代码块字符串,并将其添加到代码块数组中,否则将该行字符串添加到普通文本数组中。
- 最后,将普通文本数组和代码块数组返回。
需要注意的是,在判断是否包含代码块时,可以通过正则表达式来匹配代码块的开始和结束标记,例如:
// 匹配代码块开始标记
preg_match("/<pre.*?>/i", $line, $matches);
if (!empty($matches)) {
$is_code_block = true;
$code_block = $line;
}
// 匹配代码块结束标记
if ($is_code_block) {
$code_block .= $line;
preg_match("/</pre>/i", $line, $matches);
if (!empty($matches)) {
$is_code_block = false;
$code_blocks[] = $code_block;
$code_block = "";
}
}