亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜尋
Smarty模板編譯引擎 I.開始 第一章. 什么是Smarty? 第二章. 安裝 要求 基本安裝 擴展設置 II.模板設計者篇 第三章.基本語法 注釋 函數(shù) 屬性 第四章.變量 從PHP分配的變量 Associative arrays Array indexes Objects 從配置文件讀取的變量 {$smarty}保留變量 Request variables {$smarty.now} {$smarty.const} {$smarty.capture} {$smarty.config} {$smarty.section} {$smarty.template} 第五章.變量調(diào)節(jié)器 capitalize count_characters cat count_paragraphs count_sentences count_words date_format default escape indent lower nl2br regex_replace replace spacify string_format strip strip_tags truncate upper wordwrap 第六章.組合修改器 第七章.內(nèi)建函數(shù) capture config_load foreach include include_php insert if ldelim literal php section index index_prev index_next iteration first last rownum loop show total strip 第八章.自定義函數(shù) assign counter cycle debug eval fetch html_checkboxes html_image html_options html_radios html_select_date html_select_time html_table math mailto popup_init popup textformat 第九章.配置文件 第十章.調(diào)試控制臺 III.模板程序員篇 第十一章 常量 SMARTY_DIR 第十二章 變量 $template_dir $compile_dir $config_dir $plugins_dir $debugging $debug_tpl $debugging_ctrl $global_assign $undefined $autoload_filters $compile_check $force_compile $caching $cache_dir $cache_lifetime $cache_handler_func $cache_modified_check $config_overwrite $config_booleanize $config_read_hidden $config_fix_newlines $default_template_handler_func $php_handling $security $secure_dir $security_settings $trusted_dir $left_delimiter $right_delimiter $compiler_class $request_vars_order $compile_id $use_sub_dirs $default_modifiers $default_resource_type 第十三章.方法 append append_by_ref assign assign_by_ref clear_all_assign clear_all_cache clear_assign clear_cache clear_compiled_tpl clear_config config_load display fetch get_config_vars get_registered_object get_template_vars is_cached load_filter register_block register_compiler_function register_function register_modifier register_object register_outputfilter register_postfilter register_prefilter register_resource trigger_error template_exists unregister_block unregister_compiler_function unregister_function unregister_modifier unregister_object unregister_outputfilter unregister_postfilter unregister_prefilter unregister_resource 第十四章.緩存 Setting Up Caching Multiple Caches Per Page Cache Groups Controlling Cacheability of Plugins' Output 第十五章.高級特點 Objects Prefilters Postfilters Output Filters Cache Handler Function Resources Templates from $template_dir Templates from any directory Templates from other sources Default template handler function 第十六章.以插件擴展Smarty How Plugins Work Naming Conventions Writing Plugins Template Functions Modifiers Block Functions Compiler Functions Prefilters/Postfilters Output Filters Resources Inserts Ⅳ.高級特點 第十七章.疑難解答 Smarty/PHP errors 第18章.使用技巧和經(jīng)驗 Blank Variable Handling Default Variable Handling Passing variable title to header template Dates WAP/WML Componentized Templates Obfuscating E-mail Addresses 第十九章. 相關資源 第二十章. 漏洞
文字

Multiple Caches Per Page 每頁多個緩存

You can have multiple cache files for a single call to display() or fetch(). Let's say that a call to display('index.tpl') may have several different output contents depending on some condition, and you want separate caches for each one. You can do this by passing a cache_id as the second parameter to the function call.
你可以用單個函數(shù)display()或fetch()來輸出多個緩存文檔。display('index.tpl')在多種條件下會有不同的輸出內(nèi)容,要單獨的把緩存分開。可以通過函數(shù)的第二參數(shù)cache_id來達到效果。

Example 14-6. passing a cache_id to display()
例14-6.傳給display()一個cache_id

require('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching = true;

$my_cache_id = $_GET['article_id'];

$smarty->display('index.tpl',$my_cache_id);

Above, we are passing the variable $my_cache_id to display() as the cache_id. For each unique value of $my_cache_id, a separate cache will be generated for index.tpl. In this example, "article_id" was passed in the URL and is used as the cache_id.
上面,我們通過變量$my_cache_id作為cache_id來display()。在index.tpl里$my_cache_id的每個唯一值,會建立單獨的緩存。在這個例子里,"article_id"在URL傳送,并用作cache_id。

Technical Note: Be very cautious when passing values from a client (web browser) into Smarty (or any PHP application.) Although the above example of using the article_id from the URL looks handy, it could have bad consequences. The cache_id is used to create a directory on the file system, so if the user decided to pass an extremely large value for article_id, or write a script that sends random article_ids at a rapid pace, this could possibly cause problems at the server level. Be sure to sanitize any data passed in before using it. In this instance, maybe you know the article_id has a length of 10 characters and is made up of alpha-numerics only, and must be a valid article_id in the database. Check for this!
技術提示:要注意從客戶端(web瀏覽器)傳值到Smarty(或任何PHP應用程序)的過程。盡管上面的例子用article_id從URL傳值看起來很方便,卻可能有糟糕的后果[安全問題]。cache_id被用來在文件系統(tǒng)里創(chuàng)建目錄,如果用戶想為article_id賦一個很大的值,或?qū)懸恍┐a來快速發(fā)送隨機的article_ids,就有可能會使服務器出現(xiàn)問題。確定在使用它之前清空已存在的數(shù)據(jù)。在這個例子,可能你知道article_id的長度(值吧?!)是10字符,并只由字符-數(shù)字組成,在數(shù)據(jù)庫里是個可用的article_id。Check for this!要注意檢查這個問題!〔要注意這個提示!不用再說了吧?〕

Be sure to pass the same cache_id as the second parameter to is_cached() and clear_cache().
確定傳給is_cached()和clear_cache()的第二參數(shù)是同一個cache_id。

Example 14-7. passing a cache_id to is_cached()
例14-7.傳給is_cached()一個cache_id

require('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching = true;

$my_cache_id = $_GET['article_id'];

if(!$smarty->is_cached('index.tpl',$my_cache_id)) {
	// No cache available, do variable assignments here.
	$contents = get_database_contents();
	$smarty->assign($contents);
}

$smarty->display('index.tpl',$my_cache_id);

You can clear all caches for a particular cache_id by passing null as the first parameter to clear_cache().
你可以通過把clear_cache()的第一參數(shù)設為null來為特定的cache_id清除所有緩存。

Example 14-8. clearing all caches for a particular cache_id
例14-8.為特定的cache_id清除所有緩存

require('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching = true;

// clear all caches with "sports" as the cache_id
$smarty->clear_cache(null,"sports");

$smarty->display('index.tpl',"sports");

In this manner, you can "group" your caches together by giving them the same cache_id.
通過這種方式,你可以用相同的cache_id來把你的緩存集合起來。

上一篇: 下一篇: