示例:
删除块时开始标签、结束标签、删除内容不能再同一个行
${block1}
123123213123213
${/block1}
deleteBlock的文档可能会出现office无法打开的问题
原因是源码中匹配的正则出现了问题,导致xml的标签混乱
修改源码:
public function replaceBlock($blockname, $replacement)
{
$matches = array();
preg_match(
'/(<\?xml.*)(<w:p.*>\${' . $blockname . '}<\/w:.*?p>)(.*)(<w:p.*\${\/' . $blockname . '}<\/w:.*?p>)/is',
$this->tempDocumentMainPart,
$matches
);
if (isset($matches[3])) {
$this->tempDocumentMainPart = str_replace(
$matches[2] . $matches[3] . $matches[4],
$replacement,
$this->tempDocumentMainPart
);
}
}
/*
源正则:<w:p.*>会导致匹配的起始位置错误
'/(<\?xml.*)(<w:p.*>\${' . $blockname . '}<\/w:.*?p>)(.*)(<w:p.*\${\/' . $blockname . '}<\/w:.*?p>)/is',
修改后的正则:
'/(<\?xml.*)(<w:p>.*\${' . $blockname . '}<\/w:.*?p>)(.*)(<w:p.*\${\/' . $blockname . '}<\/w:.*?p>)/is',
*/