Php 回声&x27;ing a";{论坛名称}”;而忽略了",;{};

Php 回声&x27;ing a";{论坛名称}”;而忽略了",;{};,php,tags,phpbb,Php,Tags,Phpbb,我在找一件对我来说很难做的事。。我真的试着在网上到处寻找解决方案,但似乎找不到任何解决方案。我也试了好几个小时 我正在做的是:为PHPBB2创建一个主题,安装一个可以在主题中包含PHP的MOD。 问题是:当我在php中做{}标记时,它就是不能回显这些标记。 假设我有一个函数,可以为我创建一个表,如下所示: CreateMyTable(Name,Size,Color); 我将这些字符串放入函数中: CreateMyTable("{FORUM_NAME}",1000,red); 标题保持空白,

我在找一件对我来说很难做的事。。我真的试着在网上到处寻找解决方案,但似乎找不到任何解决方案。我也试了好几个小时


我正在做的是:为PHPBB2创建一个主题,安装一个可以在主题中包含PHP的MOD。 问题是:当我在php中做{}标记时,它就是不能回显这些标记。 假设我有一个函数,可以为我创建一个表,如下所示:

CreateMyTable(Name,Size,Color);
我将这些字符串放入函数中:

CreateMyTable("{FORUM_NAME}",1000,red);
标题保持空白,实际上我希望它与{FORUM_NAME}相呼应。 我该怎么做

我不能这么做

CreateMyTable(?>{FORUM_NAME}<?php , 1000, red);
CreateMyTable(?>{FORUM\u NAME}这将起作用:

CreateMyTable(FORUM_NAME,1000,red);
我还注意到,
red
不带引号使用-这也是一个常量吗?如果它是一个变量,它前面需要有一个
$
。如果它是一个字符串,它应该在引号之间

CreateMyTable(FORUM_NAME,1000,"red");

如果查看PHPbb2 template类,您会发现该模板只是使用eval()函数计算的一组PHP。您可以在使用eval()解析PHP之前打印PHP的内容,然后使用模板提供的变量名,例如(这可能不起作用,取决于模板的设置方式):

请注意,为了与上面的方法类似,您实际上必须将其插入到模板类中


一个更好的解决方案是避免在模板中使用允许PHP的mod,并在模板中使用JavaScript来创建函数,然后打印对该JavaScript函数的调用。

尝试使用单引号?也许会有帮助。你不能只写
“论坛名”
论坛名
(如果
FORUM\u NAME
是一个常量)或
{FORUM\u NAME}
(如果您真的想输出
{FORUM\u NAME}
)?不,它将回显FORUM\u NAME,而不是实际的论坛名称。如果我在html中回显{FORUM\u NAME},它将回显论坛名称。
{FORUM\u NAME}
解析是由模板引擎完成的,所以你可能不能简单地这么做(或者有另一种方法。尝试任何组合,直到你运气不好)?@fred2-我很确定这是一个PHPBB2格式的标记,它将被模板解析器所取代。我想
{FORUM\u NAME}
应该是解析器解释的一个变量,而不是实际的表名或常量。如果是这样,那就相当糟糕了-使用视图语法创建表…TBH我不知道这里发生了什么。@WesleyMurch观点很好。@user1557994如果这应该是一个变量,去掉ALL-CAPS名称,将其更改为$forumName或$forum_name(您使用的命名约定由您决定)并尝试
CreateMyTable($forum_name,1000,$red);
它也不是变量。它是PHPBB解析器使用的标记,因此不能在PHP代码中使用。是的。我刚才给出了一个示例。真正的函数是:CreateTable(“{forum_name}”,1000,randomcolor());
CreateMyTable(((isset($this->_tpldata['.'][0]['FORUM_NAME'])) ? $this->_tpldata['.'][0]['FORUM_NAME'] : '' ),1000,randomcolor());