【发布时间】:2019-10-30 09:18:21
【问题描述】:
我有一个 word 模板,其中有 php 代码中定义的值: 在php代码中:
$document->setValue('Value1', $value1);
在word模板中:
${Value1}
如何包含一个包含两个值之间的断线的值以包含在单词的值中?
【问题讨论】:
我有一个 word 模板,其中有 php 代码中定义的值: 在php代码中:
$document->setValue('Value1', $value1);
在word模板中:
${Value1}
如何包含一个包含两个值之间的断线的值以包含在单词的值中?
【问题讨论】:
这是因为您既没有像建议 nl2br() 的人们所想的那样生成 HTML,也没有生成 ASCII 文本,而 \n 可能会帮助您。
您正在编写 PHPWord 模板。
所以你的“换行符”实际上是添加一个段落,这比简单地插入一个<br>标签要复杂得多。
文档states clearly,你想要的东西是不可能的:
您可以创建一个包含搜索模式(宏)的 OOXML 文档模板,该模板可以替换为您希望的任何值。 只能替换单行值。
您也许可以更改模板,使其具有由换行符分隔的两个值(因此实际上您在一个段落中有一个值,在另一个段落中有一个值)。然后,分别设置这两个值。如果您不希望它显示,请将其留空(它仍然是一个空段落)。
或者您可以使用一个可重复的块并再次在两个子块中添加这两个值。或者准备两个子块,如果不需要,删除一个。看到这个效果sample 23。
一般来说,PHPWord 模板仅适用于非常简单的文档(即,彼此之间仅略有不同的文档组:例如群发邮件,其中只有名称和地址发生变化)。对于更复杂的操作,您需要使用完整的 PHPWord API,在这种情况下,发出两个 addText() 调用,或者只发出一个调用,具体取决于换行符是否存在。
【讨论】:
将\n 替换为</w:t><w:br/><w:t>
$value1 = str_replace("\n", '</w:t><w:br/><w:t>', $value1);
$document->setValue('Value1', $value1);
【讨论】:
在字符串中,换行符由“/n”表示,但我不确定这是否是您要搜索的内容。
blabla = "hello /n whats up"
print(blabla)
//output : hello
//whats up
【讨论】:
\n,而不是/n。
我上面的答案不正确
您可以在 php 值中使用 HTML 标记,以便将<br> 用于换行
<?php
$comment = "hello <br> whats up";
echo $comment;
?>
将输出:
hello
whats up
【讨论】: