替换smarty模板中的php文件内容?

替换smarty模板中的php文件内容?,php,youtube-api,smarty,file-get-contents,smarty2,Php,Youtube Api,Smarty,File Get Contents,Smarty2,我需要在smarty tpl文件中使用PHPfile\u get\u contents()。我不能在PHP中使用它并将其分配给smarty模板。因为URL是通过smarty模板文件中的循环动态生成的。所以我使用smarty插件函数来完成这个任务。但我想知道是否有任何方法可以直接在模板文件中使用它,而不是从插件文件中解析它 我已经附上了我用来实现这个功能的插件代码。请任何人让我知道如何在smarty tpl文件中直接使用它 function smarty_function_getTitle($pa

我需要在smarty tpl文件中使用PHP
file\u get\u contents()
。我不能在PHP中使用它并将其分配给smarty模板。因为URL是通过smarty模板文件中的循环动态生成的。所以我使用smarty插件函数来完成这个任务。但我想知道是否有任何方法可以直接在模板文件中使用它,而不是从插件文件中解析它

我已经附上了我用来实现这个功能的插件代码。请任何人让我知道如何在smarty tpl文件中直接使用它

function smarty_function_getTitle($params)
{
if ($params['id']) {
    $content = file_get_contents("http://youtube.com/get_video_info?video_id=".$params['id']);
    parse_str($content, $ytarr);
    return $ytarr['title'];
}
}
我使用以下代码在smarty模板中调用它:

{getTitle id=$videoId}

欢迎提出建议

对于那些没有阅读上述评论的读者,我和OP都知道这不是使用模板引擎的方式。他似乎有自己的理由希望直接在模板中完成这项工作,而不是在代码中使用插件或提前完成。所以,请不要因为我演示了如何做而责备我:)

以下是如何在Smarty中完成此操作

{"http://youtube.com/get_video_info?video_id=`$videoId`"|file_get_contents|parse_str:$result}
{$result.title}

我在一个电话中完成了第一部分,但是如果你想小心的话,你可以通过检查将它分成多个电话。但是我在本地进行了测试,效果很好。

对于那些没有阅读上述评论的读者,我和OP都知道这不是使用模板引擎的方式。他似乎有自己的理由希望直接在模板中完成这项工作,而不是在代码中使用插件或提前完成。所以,请不要因为我演示了如何做而责备我:)

以下是如何在Smarty中完成此操作

{"http://youtube.com/get_video_info?video_id=`$videoId`"|file_get_contents|parse_str:$result}
{$result.title}

我在一个电话中完成了第一部分,但是如果你想小心的话,你可以通过检查将它分成多个电话。但是我在本地进行了测试,效果很好。

为什么要在模板中执行此操作?Smarty的要点是将模板代码与PHP代码分开。Smarty插件的存在就是为了完成上面粘贴的内容。这就是模板引擎的美妙之处。我知道。但是我的老板拒绝使用插件文件。他要我做tpl文件中的所有事情。当一名程序员真是太疯狂了。我知道你不需要听我说,但是,如果你的老板不是开发人员,他没有地方告诉你如何编码。如果他是一个开发者。。。他要么不知道Smarty是怎么工作的。。。或者他不是一个很好的人;我会看看我是否能想到如何在模板中完成。你为什么要在模板中完成这项工作?Smarty的要点是将模板代码与PHP代码分开。Smarty插件的存在就是为了完成上面粘贴的内容。这就是模板引擎的美妙之处。我知道。但是我的老板拒绝使用插件文件。他要我做tpl文件中的所有事情。当一名程序员真是太疯狂了。我知道你不需要听我说,但是,如果你的老板不是开发人员,他没有地方告诉你如何编码。如果他是一个开发者。。。他要么不知道Smarty是怎么工作的。。。或者他不是一个很好的人;P我会看看我是否能想到如何在模板中实现它。