我目前正在使用带有 ci-Smarty 的 codeigniter 2。只是试图添加一个聪明的输出过滤器,但运气不佳。好像找不到功能还是什么?
我使用插件作为输出过滤器功能,并具有以下代码:
位置: /libraries/Smarty.php
// Set email output filter
$this->loadFilter('output', 'protect_email');
位置: /third_party/Smarty/plugins/function.protect_email.php
function smarty_function_protect_email($tpl_output, Smarty_Internal_Template $template)
{
$tpl_output =
preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!',
'$1%40$2', $tpl_output);
return $tpl_output;
}
以上似乎引发了以下聪明错误:
致命错误:在 /home/something/public_html/application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php:717 中包含消息“outputfilter“protect_email”不可调用的未捕获异常“SmartyException”:717 堆栈跟踪:#0 /home/something/public_html /application/libraries/Smarty.php(46): Smarty_Internal_TemplateBase->loadFilter('output', 'protect_email') #1 /home/something/public_html/system/core/Loader.php(1095): CI_Smarty->__construct(数组)#2 /home/something/public_html/system/core/Loader.php(975): CI_Loader->_ci_init_class('Smarty', '', NULL, NULL) #3 /home/something/public_html/system/core /Loader.php(216): CI_Loader->_ci_load_class('smarty', NULL, NULL) #4 /home/something/public_html/application/libraries/MY_Parser.php(29):CI_Loader->library('smarty') #5 /home/something/public_html/system/core/Loader.php(1099): MY_Parser->__construct() #6 /home/something/public_html/system/core/Loader. php(938): CI_Loader->_ci_init_class('Parser', 'MY_', NULL, NULL) #7 /home/something/public_html/system/core/Loader.php(216): CI_Loa in /home/something/public_html /application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php 在第 717 行/home/something/public_html/application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php 中的 CI_Loa 位于第 717 行/home/something/public_html/application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php 中的 CI_Loa 位于第 717 行
抱歉拖了这么久!只是认为看到整个错误可能会有所帮助。
非常感谢阅读,希望有人能提供帮助。
--> EDIT 还尝试使用以下命令显式设置插件目录位置:
$this->setPluginsDir(config_item('plugin_directory'));
回显出正确的位置但仍然遇到同样的问题:(