search
HomeBackend DevelopmentPHP TutorialUsing Smarty in PHP Part 6: Smarty built-in functions_PHP tutorial

Using Smarty in PHP Part 6: Smarty built-in functions_PHP tutorial

Jul 13, 2016 pm 05:46 PM
phpsmartyusefunctionyestemplateuserofBring your ownlanguage

Smarty’s built-in functions: Smarty comes with some built-in functions. Built-in functions are part of the template language. Users cannot create custom functions with the same name as built-in functions, nor can they modify built-in functions.

​​​​The built-in functions in Smarty are explained below and given examples:

The Smarty template engine initialization file init.inc.php and the main file index.php used in the example

init.inc.php

Define('ROOT_PATH', dirname(__FILE__)); //Set the website root directory

​ require ROOT_PATH.'/libs/Smarty.class.php'; //Load Smarty template engine

$_tpl = new Smarty(); //Create an instance object

$_tpl->template_dir = ROOT_PATH.'/tpl/'; //Respecify the template directory

$_tpl->compile_dir = ROOT_PATH.'./com/'; //Respecify the compilation directory

$_tpl->left_delimiter = '

$_tpl->right_delimiter = '}>'; //Respecify the right delimiter

?>

index.php

require 'init.inc.php'; //Introduce template initialization file

global $_tpl;

$_tpl->display('index.tpl'); //Introduce template

?>


                                                                                                                                                             capture

Properties Type Is it necessary Default value Description
name string no default Data collection area name
assign string No n/a Where is the data collection area assigned to the variable name [to be tested]

The function of the capture function is to capture the data output by the template and store it in a variable instead of outputting them to the page. Any data between {capture name="foo"} and {/capture} will be stored in In the variable $foo, the variable is specified by the name attribute and is accessed through $smarty.capture.foo in the template. If the name attribute is not specified, the function will use "default" as the parameter by default. {capture} must appear in pairs, that is, end with {/capture}. The function cannot be nested. Please see the example template file below.

/tpl/index.tpl

Capture

​​​​​ This is the content in the capture function, which is not displayed by default.

         

2. config_load

Properties Type Is it necessary Default value Description
file string Yes n/a The name of the configuration file to include
section string No n/a The name of the part to be loaded in the configuration file
scope string no local The scope of loading data, the value must be local, parent or global. local indicates that the scope of the variable is the current template. parent indicates that the scope of the variable is the current template and the parent template of the current template (the template that calls the current template) .global indicates that the scope of this variable is all templates.
global boolean No No Indicates whether the loaded variable is globally visible, equivalent to scope=parent. Note: When the scope attribute is specified, this attribute can be set, but the template ignores the attribute value and the scope attribute prevails.

The config_load function is used to load variables from the configuration file. Regarding the use of the config_load function, please see my "Using Smarty in PHP Part 2: The use of configuration files in template variables."

                               3. include

Properties Type Is it necessary Default value Description
file string Yes n/a Template file name to be included
assign string No n/a This attribute specifies a variable to hold the output of the template to be included
[var ...] [var type] No n/a Local parameters passed to the template to be included are only valid in the template to be included

The include function is used to include other templates in the current template. The variables in the current template are available in the included template. The file attribute must be specified, which specifies the location of the template resource. If the assign attribute is set, the variable name corresponding to this attribute is used to save the output of the template to be included, so that the output of the template to be included will not be displayed directly. See the example below:

/tpl/index.tpl

{include file="header.tpl"}

{* body of template goes here *}

{include file="footer.tpl"}

4. if,elseif,else 

The if statement in Smarty is as flexible and easy to use as the if statement in PHP, and has added several features to suit the template engine. if must appear in pairs with /if. Else and elseif clauses can be used.

The following conditional modifiers can be used: eq, ne, neq, gt, lt, lte, le, gte, ge, is even, is odd, is not even, is not odd, not, mod, div by, even by, odd by, ==, !=, >, =. When using these modifiers, they must be separated from variables or constants by spaces.

The meaning of these modifiers is explained below:
                         

条件修饰符 作用描述
eq ==
ne !=
neq !=
gt >
lt
lte
le
gte >=
ge >=
is even Is it an even number
is odd Is it an odd number
is not even Is it not an even number
is not odd Is it not an odd number
not !=
mod Find the model
div by Is it divisible
even by Is the quotient an even number
odd by Whether the quotient is an odd number
&& with
|| or
() Parentheses change priority

 


​ ​   5. ldelim and rdelim  
Used for output delimiters, which are braces "{" and "}". The template engine always tries to interpret the content inside the braces, so if you need to output braces, use this method. See the example below:

/tpl/index.tpl

ldelim and rdelim

       

funcname is a function in Smarty.

       

​ ​ 6. literal

The data in the literal tag area will be treated as text, and the template will ignore all character information inside it. This feature is used to display JavaScript scripts that may contain character information such as braces. When this information is in {literal}{ /literal} tags, the template engine will not analyze them and display them directly. In fact, according to the tag style in all my examples (because the left delimiter and right delimiter have been reset in the init.inc.php initialization file delimiter) instead of Smarty's default style, this situation will basically not occur. Regarding the use of this function, please see the example below

/tpl/index.tpl

literal

       

         


                                                                                                      

Web developers have many times encountered situations where spaces and carriage returns affect the HTML output, so that in order to get a specific result, you have to run all the tags in the template. This problem is usually encountered in templates that are difficult to understand or process. Smarty will remove any leading and trailing spaces and carriage returns from the data in {strip}{/strip} tags before displaying. This ensures that the template is easy to understand and you don’t have to worry about extra spaces causing problems.

                                                                                                   The built-in functions in the Smarty template engine will be summarized first. The use of the two most important functions (foreach, foreachelse, section, sectionelse) among the built-in functions will be sorted out below.

Excerpted from: Lee.’s column

http://www.bkjia.com/PHPjc/478569.html

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/478569.htmlTechArticleSmarty’s built-in functions: Smarty comes with some built-in functions, which are part of the template language. Users You cannot create a custom function with the same name as a built-in function, nor can you modify the built-in function...
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How can you protect against Cross-Site Scripting (XSS) attacks related to sessions?How can you protect against Cross-Site Scripting (XSS) attacks related to sessions?Apr 23, 2025 am 12:16 AM

To protect the application from session-related XSS attacks, the following measures are required: 1. Set the HttpOnly and Secure flags to protect the session cookies. 2. Export codes for all user inputs. 3. Implement content security policy (CSP) to limit script sources. Through these policies, session-related XSS attacks can be effectively protected and user data can be ensured.

How can you optimize PHP session performance?How can you optimize PHP session performance?Apr 23, 2025 am 12:13 AM

Methods to optimize PHP session performance include: 1. Delay session start, 2. Use database to store sessions, 3. Compress session data, 4. Manage session life cycle, and 5. Implement session sharing. These strategies can significantly improve the efficiency of applications in high concurrency environments.

What is the session.gc_maxlifetime configuration setting?What is the session.gc_maxlifetime configuration setting?Apr 23, 2025 am 12:10 AM

Thesession.gc_maxlifetimesettinginPHPdeterminesthelifespanofsessiondata,setinseconds.1)It'sconfiguredinphp.iniorviaini_set().2)Abalanceisneededtoavoidperformanceissuesandunexpectedlogouts.3)PHP'sgarbagecollectionisprobabilistic,influencedbygc_probabi

How do you configure the session name in PHP?How do you configure the session name in PHP?Apr 23, 2025 am 12:08 AM

In PHP, you can use the session_name() function to configure the session name. The specific steps are as follows: 1. Use the session_name() function to set the session name, such as session_name("my_session"). 2. After setting the session name, call session_start() to start the session. Configuring session names can avoid session data conflicts between multiple applications and enhance security, but pay attention to the uniqueness, security, length and setting timing of session names.

How often should you regenerate session IDs?How often should you regenerate session IDs?Apr 23, 2025 am 12:03 AM

The session ID should be regenerated regularly at login, before sensitive operations, and every 30 minutes. 1. Regenerate the session ID when logging in to prevent session fixed attacks. 2. Regenerate before sensitive operations to improve safety. 3. Regular regeneration reduces long-term utilization risks, but the user experience needs to be weighed.

How do you set the session cookie parameters in PHP?How do you set the session cookie parameters in PHP?Apr 22, 2025 pm 05:33 PM

Setting session cookie parameters in PHP can be achieved through the session_set_cookie_params() function. 1) Use this function to set parameters, such as expiration time, path, domain name, security flag, etc.; 2) Call session_start() to make the parameters take effect; 3) Dynamically adjust parameters according to needs, such as user login status; 4) Pay attention to setting secure and httponly flags to improve security.

What is the main purpose of using sessions in PHP?What is the main purpose of using sessions in PHP?Apr 22, 2025 pm 05:25 PM

The main purpose of using sessions in PHP is to maintain the status of the user between different pages. 1) The session is started through the session_start() function, creating a unique session ID and storing it in the user cookie. 2) Session data is saved on the server, allowing data to be passed between different requests, such as login status and shopping cart content.

How can you share sessions across subdomains?How can you share sessions across subdomains?Apr 22, 2025 pm 05:21 PM

How to share a session between subdomains? Implemented by setting session cookies for common domain names. 1. Set the domain of the session cookie to .example.com on the server side. 2. Choose the appropriate session storage method, such as memory, database or distributed cache. 3. Pass the session ID through cookies, and the server retrieves and updates the session data based on the ID.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),