如果没有合并任何内容,您可以使用OpenTBS删除PHP中的文本行吗

如果没有合并任何内容,您可以使用OpenTBS删除PHP中的文本行吗,php,yii,docx,opentbs,Php,Yii,Docx,Opentbs,我一直在使用OpenTBS修改DOCX文件。当我将我的数据库信息与DOCX文件合并时,它总是为数据库中丢失的任何信息保留空白数据 左边是我的“源”文档的图像,右边是我的合并 如何删除多余的换行符 下面是生成此合并的代码(如果有帮助的话) public function mergeFields($template_file, Array $user, Array $lead){ require_once('components/tbs_class_php5.php');

我一直在使用OpenTBS修改DOCX文件。当我将我的数据库信息与DOCX文件合并时,它总是为数据库中丢失的任何信息保留空白数据

左边是我的“源”文档的图像,右边是我的合并

如何删除多余的换行符

下面是生成此合并的代码(如果有帮助的话)

    public function mergeFields($template_file, Array $user, Array $lead){
        require_once('components/tbs_class_php5.php');
        require_once('components/tbs_plugin_opentbs.php');

        //Instantiate new class
        $tbs = new clsTinyButStrong;
        $tbs->NoErr = true;
        $tbs->Plugin(TBS_INSTALL,OPENTBS_PLUGIN);

        $tbs->LoadTemplate($template_file);
        $tbs->MergeBlock('l',$lead);
        $tbs->MergeBlock('u',$user);
        $mergeFile = dirname(Yii::app()->basePath).DIRECTORY_SEPARATOR.'components/merge.docx';

        $tbs->Show(OPENTBS_FILE, $mergeFile);
        chmod($mergeFile,0755);
        return $mergeFile;
    }

无论您认为哪个字段不是强制性的,或者可以有空值,都应包含如下磁铁标签:

[l.co;磁铁=w:p]

这里的magnet是一个条件,如果值为null或空,它将删除标记。它的值为“w:p”,因为DOCX的XML文件包含标记中的所有新值,如:-

<w:p>...</w:p>
。。。

因此,它将删除标签,并删除空白。

[l.co;magnet=tbs:p]
也会这样做,但更聪明。我不知道这一点。我读了这个问题,研究了一下,直到找到了答案:P谢谢!这将是一个救命稻草。我现在正在核实这一点@Skrol29我喜欢扩展,但在文档中不清楚该怎么做。很高兴你能帮忙!你也是Parry@Skrol29与
w:p
相比,
tbs:p
有什么作用?@CGSmith105 tbs:p是磁铁的智能选择器。它会自动检测哪个文件类型被用作磁铁,并选择段落并将其删除。请参阅此链接