微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从PHP中的.docx文件删除邮件合并字段?

如何解决如何从PHP中的.docx文件删除邮件合并字段?

当前,我正在使用以下内容替换docx文件中的“邮件合并”字段。这会将邮件合并字段 «Address_1» «Address_2» 等替换为数据库中的值,然后将其输出为新的文档文件

此刻我遇到的问题是,如果数据库中的值为空,则邮件合并字段将被替换为空白值,这又使空白行保持在原处,从而导致我输出文件

enter image description here

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);
    }

该怎么办?当数据库中的值为空时,有一种更好的方法可以删除合并字段,以消除输出doc文件中的空行/段落。

解决方法

这是您可以通过使用字段规则在Word中轻松解决的问题。您将它们全部放在一行中并定义规则。

如果该字段不为空,则打印换行符。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。