目前,我正在使用以下内容替换 docx 文件中的邮件合并字段。这会将邮件合并字段等替换«Address_1»
为«Address_2»
数据库中的值,并将其输出为新的文档文件。
我目前遇到的问题是,如果数据库中的值是空的,邮件合并字段将被替换为空白值,这反过来又使空白行保持在原位,从而在我的输出文件中产生如下内容:
private function __parseFile($thefile)
{
$this->_multicount++;
$content = file_get_contents($thefile); ///this is document.xml extracted from the docx file
foreach ($this->searchlist as $placeholder => $val) {
if($val=='' || empty($val)){
$content = str_replace('«'.$placeholder.'»', '', $content); ;
}else{
$content = str_replace('«'.$placeholder.'»', htmlspecialchars($val), $content);
}
}
$newfile = $thefile.'.new'.($this->_multicount);
$fh = fopen($newfile, 'wb');
fwrite($fh, $content);
fclose($fh);
}
可以做什么,有没有更好的方法可以在数据库中的值为空时删除合并字段以消除输出文档文件中的空白行/段落。