在 PHPWord 中嵌套部分或重新排序部分
Nesting sections or reordering sections in PHPWord
我是这个 PHPWord 库的新手,到目前为止我很喜欢它。
如果有人能帮我解决这个问题或为我确认这是否可能,我将不胜感激。
似乎需要按照您希望它们出现在页面上的顺序创建这些部分,但我正在寻找一种重新排序它们的方法,或者更好的是,甚至将它们嵌套在彼此。
$pSectionPointer = $oPHPWord->addSection();
$pAnotherSectionPointer = $oPHPWord->addSection();
$pFirstSectionPointer = $oPHPWord->addSection();
它们以我构造它们的顺序出现在文档中,这在某些时候很好,但在我的代码后面,我可能希望也可能不想根据一些新数据更改部分的顺序在我的代码中。所以我想将 $pFirstSectionPointer
移到 $pSectionPointer
之前。
我该怎么做?
我已经尝试 setting/changing 使用 API 中提供的 setter 的部分的 elementId 和其他属性来尝试更改顺序,但没有对每种方法的解释和 none 他们似乎在做我想做的事。
稍微研究一下 PhpWord 代码后,这些(嵌套或重新排序)似乎都不可能:部分只允许在主级别(而不是在另一个部分内)并且库不提供任何方法用于更改部分顺序(生成的部分顺序看起来基于附加新部分的 $sections 数组 - 在 addSection 函数调用时 - 在 PhpWord.php 中,并且无法通过 API 修改该数组调用)。
如果您真的需要对这些部分进行一些重新排序的可能性,您可以尝试自己修改 PhpWord.php 文件,使用您需要的功能:我用简单的内容和简单的函数只是反转现有的部分数组。有了这些,我得到了一个没有问题的颠倒部分顺序的结果文档...
使用最新的 dev-develop 版本(或版本 0.15),您可以通过将可调用项传递给 $phpWord->sortSections(...) 来对部分进行排序
在内部它将使用 uasort 对数组进行排序。
我是这个 PHPWord 库的新手,到目前为止我很喜欢它。
如果有人能帮我解决这个问题或为我确认这是否可能,我将不胜感激。
似乎需要按照您希望它们出现在页面上的顺序创建这些部分,但我正在寻找一种重新排序它们的方法,或者更好的是,甚至将它们嵌套在彼此。
$pSectionPointer = $oPHPWord->addSection();
$pAnotherSectionPointer = $oPHPWord->addSection();
$pFirstSectionPointer = $oPHPWord->addSection();
它们以我构造它们的顺序出现在文档中,这在某些时候很好,但在我的代码后面,我可能希望也可能不想根据一些新数据更改部分的顺序在我的代码中。所以我想将 $pFirstSectionPointer
移到 $pSectionPointer
之前。
我该怎么做?
我已经尝试 setting/changing 使用 API 中提供的 setter 的部分的 elementId 和其他属性来尝试更改顺序,但没有对每种方法的解释和 none 他们似乎在做我想做的事。
稍微研究一下 PhpWord 代码后,这些(嵌套或重新排序)似乎都不可能:部分只允许在主级别(而不是在另一个部分内)并且库不提供任何方法用于更改部分顺序(生成的部分顺序看起来基于附加新部分的 $sections 数组 - 在 addSection 函数调用时 - 在 PhpWord.php 中,并且无法通过 API 修改该数组调用)。
如果您真的需要对这些部分进行一些重新排序的可能性,您可以尝试自己修改 PhpWord.php 文件,使用您需要的功能:我用简单的内容和简单的函数只是反转现有的部分数组。有了这些,我得到了一个没有问题的颠倒部分顺序的结果文档...
使用最新的 dev-develop 版本(或版本 0.15),您可以通过将可调用项传递给 $phpWord->sortSections(...) 来对部分进行排序 在内部它将使用 uasort 对数组进行排序。