首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PhpDocx Gettemplatevariable不起作用

PhpDocx Gettemplatevariable不起作用
EN

Stack Overflow用户
提问于 2022-08-25 05:48:21
回答 1查看 59关注 0票数 0

我正在使用phpdocx-premium-12.5-ns。我用像%%variable%%这样的变量创建了一个文档,然后我尝试了下面的代码:

代码语言:javascript
复制
 require_once 'classes/CreateDocx.php';

 $docx = new CreateDocxFromTemplate('document.docx');

 $docx->setTemplateSymbol('%%', '%%');

 print_r($docx->getTemplateVariables());          

但是它不返回任何内容,如果我添加一个像${variable}这样的变量,它将作为${variable}返回。

如果设置符号$docx->setTemplateSymbol('${', '}'),它将正常工作,并返回variable

我的问题是:如何使用这个变量%%variable%%并使用%%作为模板符号来获取所有现有变量?

当我在“CreateDocxFromTemplate.php”类的代码中签入时,他们将extractVariablesDistinctSymbols称为extractVariablesDistinctSymbols,其中只preg_match这个模式:\$(?:\{|[^{$]*\>\{)[^}$]*\}

EN

回答 1

Stack Overflow用户

发布于 2022-08-25 06:54:59

我从phpdocx那里得到了答案

用于包装模板变量的字符或符号可能是:

相同的开始和结束(只设置$templateSymbolStart):$VAR$,#VAR#.一个1字节的字符。在开头和结尾不同:${VAR}。请求使用${ }包装不使用相同符号的占位符。

开始和结束时,要使用其他符号,必须自定义公共静态变量CreateDocxFromTemplate::$regExprVariableSymbols。

如果模板使用符号将占位符包装为大于1字节字符(%为%),或者在开头和结尾不同,则需要自定义公共静态变量CreateDocxFromTemplate::$regExprVariableSymbols.一个简单的样本:

CreateDocxFromTemplate::$regExprVariableSymbols =‘%(.*)%;$docx-setTemplateSymbol(’%%‘);

我们建议使用单个1字节字符或${}来包装占位符,因此不需要生成自定义的CreateDocxFromTemplate::$regExprVariableSymbols.这使用正则表达式,因此在使用受保护字符时必须转义.。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73482457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档