首頁 後端開發 php教程 smarty config_load 和 自定义函数 报错解决方法

smarty config_load 和 自定义函数 报错解决方法

Jun 13, 2016 am 10:23 AM
config quot smarty

smarty config_load 和 自定义函数 报错
temp.tpl

HTML code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->{config_load file="../configs/a.conf"}{#s#}
登入後複製

a.conf
HTML code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->s='测试测试'
登入後複製

报错
Fatal error: Uncaught exception 'SmartyException' with message 'Unable to read config file '../configs/a.conf'' in C:\wamp\www\smarty\libs\sysplugins\smarty_internal_resource_file.php:68 Stack trace: #0 C:\wamp\www\smarty\libs\sysplugins\smarty_config_source.php(86): Smarty_Internal_Resource_File->getContent(Object(Smarty_Config_Source)) #1 C:\wamp\www\smarty\libs\sysplugins\smarty_internal_config_file_compiler.php(81): Smarty_Config_Source->__get('content') #2 C:\wamp\www\smarty\libs\sysplugins\smarty_internal_config.php(189): Smarty_Internal_Config_File_Compiler->compileSource(Object(Smarty_Internal_Config)) #3 C:\wamp\www\smarty\libs\sysplugins\smarty_internal_config.php(214): Smarty_Internal_Config->compileConfigSource() #4 C:\wamp\www\smarty\templates_c\187938f6ec55068ed23f0f2de8d126b1ae3149c7.file.temp.tpl.php(36): Smarty_Internal_Config->loadConfigVars(NULL, 'local') #5 C:\wamp\www\smarty\libs\sysplugins\smarty_internal_templatebase.php(180): content_4fb7f6591b8ab2_26457252(Object(Smarty_Internal_Template)) #6 C:\w in C:\wamp\www\smarty\libs\sysplugins\smarty_internal_resource_file.php on line 68


自定义函数
PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php require_once './libs/Smarty.class.php';    $smarty=new Smarty;        function myfun($args){        $str="";        for($i=0;$i<$args['times'];$i++){            $str.="测试";        }        return $str;    }    $smarty->register_function("doloop","myfun");    $smarty->display("temp.tpl");?>
登入後複製


temp.tpl
HTML code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->{doloop times="5"}
登入後複製


报错
Fatal error: Uncaught exception 'SmartyException' with message 'Call of unknown method 'register_function'.' in C:\wamp\www\smarty\libs\sysplugins\smarty_internal_templatebase.php:806 Stack trace: #0 [internal function]: Smarty_Internal_TemplateBase->__call('register_functi...', Array) #1 C:\wamp\www\smarty\smarty.php(62): Smarty->register_function('doloop', 'myfun') #2 {main} thrown in C:\wamp\www\smarty\libs\sysplugins\smarty_internal_templatebase.php on line 806

我从smarty官方网站上下载了Smarty 3.1.8 [Smarty-stable.zip] Feb 20th, 2012文件啊
stable这个单词是稳定的意思 我就下了这个包 解压后 我把里面的libs文件夹拷贝到我的www/smarty目录下,
其它像在temp.tpl模板里运行{$smarty.server.SERVER_ADDR}这个语句可以正常显示啊,为什么就运行上面的config_load和自定义函数就不行啊


------解决方案--------------------
google了一下,原来是这样的啊。
3.0以前是用register_function来实现,现在的是新方法registerPlugin。
$smarty->registerPlugin(“function”,”demo”, “demotest”);;//制定类型,这里制定是函数调用,指定模板函数名称和php函数名称
function demotest($params) {
extract($params);//获取参数a与b了
echo $a.$b;//输出
}

模板写法:
{demo a=”2″ b=”test”}
输出:2test

可是模板中使用{config_load}还是要出错啊,怎么解决?
------解决方案--------------------
啊,config_load出错也解决了
我在temp.tpl模板中直接写出{config_load file="a.conf"}
在temp.tpl文件中新建了configs文件夹,并把a.conf放在文件夹里面,
奇怪是的,我没指定a.conf在configs文件夹里啊,它是怎么找到的?
总因该在temp.tpl写成{config_load file="../configs/a.conf"}这对啊,可这样要报错
怎么回事?
smarty3.0是怎么找到它的?
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何修復 .NET 解析器傳回的錯誤 0xC00CE556 如何修復 .NET 解析器傳回的錯誤 0xC00CE556 Apr 25, 2023 am 08:34 AM

在安裝應用程式的新版本時,Windows可能會顯示此錯誤訊息「解析C:\\Windows\Microsoft.Net\Framework\v2.0.50727\Config\machine.configParser傳回錯誤0xC00CE556時發生錯誤」。當您的系統啟動時,這個問題也會出現。無論您在何種情況下遇到此問題,.NETFramework都是幕後真正的罪魁禍首。您可以使用一些非常簡單的修復程序來阻止此錯誤代碼再次出現。修復1–替換損壞的檔案您可以輕鬆地從原始目錄中替換損壞的ma

php如何使用ThinkPHP\Config進行組態管理? php如何使用ThinkPHP\Config進行組態管理? May 31, 2023 pm 02:31 PM

隨著PHP語言的不斷發展,做為PHP後端框架中廣泛使用的ThinkPHP也在不斷改進。隨著業務場景的逐漸複雜,ThinkPHP中對於組態管理的需求也越來越大。在這種背景下,ThinkPHP提供了豐富的組態管理功能,今天我們就來介紹如何透過ThinkPHPConfig實現組態管理。一、ThinkPHPConfig的介紹ThinkPHPConfig是Thin

php如何使用CodeIgniter\Config進行組態管理? php如何使用CodeIgniter\Config進行組態管理? Jun 02, 2023 pm 06:01 PM

一、CodeIgniter簡介CodeIgniter是一個輕量級且全面的PHP開發框架,旨在為Web開發人員提供快速且強大的工具來建立Web應用程式。它是一個開源的框架,使用MVC架構模式來實現快速開發和基礎功能,同時支援多種資料庫。二、Config庫簡介Config庫是CodeIgniter框架中的一個元件,用於對程式碼進行組態管理。 Config庫包含了很多

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

PHP中的模板引擎Smarty初探 PHP中的模板引擎Smarty初探 May 11, 2023 pm 05:15 PM

現如今,網站的開發離不了一個重要的組成部分——模板引擎。模板引擎是指一種將頁面模板和資料結合起來產生具有特定格式的html程式碼的工具。在各種網站開發框架中,模板引擎是一個必不可少的元件,因為模板引擎可以大量減少程式碼的重複性和提高頁面的動態性。其中一個最常見且流行的模板引擎是Smarty。 Smarty是基於PHP語言開發的DSL(DomainSpecif

如何使用PHP和Smarty實現前後端分離開發 如何使用PHP和Smarty實現前後端分離開發 Jun 25, 2023 pm 01:46 PM

在現代web開發中,前後端分離已經成為了一個非常流行的趨勢,它能夠讓開發者更好地組織專案並且提高了專案開發的效率。 PHP和Smarty是兩個非常常用的技術,它們可以用來實現前後端分離的開發方式。本文將會介紹如何使用PHP和Smarty來實現前後端分離開發。什麼是前後端分離開發在傳統的web開發中,前端主要負責頁面的呈現以及與後端互動的邏輯。後端則主要負責業

PHP開發中如何使用Smarty模板引擎 PHP開發中如何使用Smarty模板引擎 Jun 27, 2023 pm 01:28 PM

身為PHP開發者,使用模板引擎是理所當然的選擇。 Smarty是一種流行的模板引擎,它提供了一種將HTML/CSS/JavaScript與PHP程式碼分開的方式,使開發人員能夠更好地組織和管理專案。在本文中,我們將學習PHP開發過程中如何使用Smarty模板引擎。一、安裝Smarty在之前,我們必須安裝Smarty。在本文中,我們將使用Composer安裝

如何使用PHP和Smarty模板引擎 如何使用PHP和Smarty模板引擎 May 11, 2023 pm 03:33 PM

PHP是一種強大的伺服器端腳本語言,可用於開發網頁應用程式。在Web開發的早期階段,程式設計師使用了許多HTML和JavaScript程式碼來開發Web應用程式。但是,這種方法很難維護和管理,因為HTML和JavaScript程式碼可能會變得非常複雜。為了解決這個問題,Smarty模板引擎被創建出來。 Smarty是一種基於PHP開發的模板引擎,用於管理和生成W

See all articles