替换smarty模板中的php文件内容?
我需要在smarty tpl文件中使用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
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我会看看我是否能想到如何在模板中实现它。