Several often overlooked but useful tags in the php smarty template engine are organized, including the capture tag, config_load tag, php tag, strip tag, fetch tag, and how to use define directly in the smarty template. constants, this article will analyze them one by one with specific examples:
capture tag
The Chinese meaning of capture is capture. Its function is to capture the data output by the template. When we need it, call it to get the purpose of capturing the data. Examples below:
{capture name="test"} <img src="testimg.jpg"> {/capture} <div class="image"> {$smarty.capture.test} </div>
Note: The content between {capture name="test"} and {/capture} is stored in the variable $test, which is specified by the name attribute. Access this in the template through $smarty.capture.test Variable. If the name attribute is not specified, the function will use "default" as the parameter by default, which is similar to the clone method in jquery.
config_load tag
config_load can directly read the contents of the file, which can save the assign step. The following usage example:
test.csv file:
pageTitle = "config_load_test" bodyBgColor = "#eeeeee" img = "girl.jpg" width="100" height="100"
Then the template index.tpl file can reference the above test.csv file as follows:
{config_load file="test.csv"} <html> <title>{#pageTitle#}</title> <body bgcolor="{#bodyBgColor#}"> <img src="{#img#}" width="{#width#}" height="{#height#}"> </body> </html>
Note: If a problem like Warning: Smarty error: unable to read resource occurs during the above process, please check whether your test.csv is placed in the smarty configuration directory. The default configuration directory is configs Table of contents.
php tag
When you are used to assigning, have you ever thought about writing PHP code directly in the template file? Although it is highly not recommended, but sometimes you have to do this due to business needs. What should I do? What to do? Take a look at this example:
{php} global $result; foreach($result as $key=>$value){ echo "key=$key,value=>$value<br>"; } {/php}
strip tag
The function of thestrip tag is to remove spaces and carriage returns within tags. I personally feel that this tag is quite useful. It can compress the final output HTML format. If you want to see the effect, just look at the source code of this website. Yes, isn’t it cool, haha:
{strip} <div> <font color="red">strip</font> <span> <div>php smarty strip 压缩html输出,www.phpernote.com 看源码效果</div> </span> </div> {/strip}
fetch tag
The fetch tag has similar functions to the function file_get_contents in PHP. Both can read the contents of the file, and the read result can be assigned to a variable in the form of a string, as shown in the following use case:
{fetch file="./aaaa.txt" assign="result"} {if is_array($result)} <b>is array</b> {else if} <b>not array</b> {/if}
Constants defined using define in php can be used directly in smarty templates
How to use it:
{$smarty.const.你定义的常量名}